.fyi
SkillsMCPPluginsSubagents

Browse by category

DevOps & CI/CD SkillsProductivity & Workflow SkillsOther SkillsProduct & Project Management SkillsDocumentation & Knowledge SkillsCode Review & Refactor SkillsBackend & APIs SkillsAgent Meta & Communication SkillsResearch SkillsSecurity SkillsUX UI & Design SkillsTesting & QA SkillsSee all →

Every Claude Code skill, MCP server, plugin and subagent in one directory. Searchable, comparable, and one command from installed. Live stats from GitHub, npm and PyPI.

We're on Product HuntYour agent's app storeCheck it out →
Agent SkillsMCP ServersPluginsSubagentsCoding Agents
CollectionsOfficial publishersGlossaryFAQBlogSearchSavedFeedback
PrivacyTermsllms.txtSitemap

made with ♥ · © 2026 aaaa.fyi

Independent project · real data from public registries

…/opencli/opencli-usage
home/skills/jackwener/opencli/opencli-usage
jackwener avatar

opencli-usage

byjackwener· 9 skills

Installs

18k

Stars

27k

Forks

2.7k

Category

Research

View on GitHub

TL;DR

Use at the start of any OpenCLI session — this is the top-level map of what opencli can do, how to discover adapters, what flags and output formats are universal, and which specialized skill to load next. Point here when an agent asks "what can opencli do?" or "how do I find the right command?".

How to install opencli-usage?

jackwener/opencli/opencli-usage
$npx -y skills add jackwener/opencli --skill opencli-usage

Installs into the current project.

›Prefer a prompt? Paste this to your agent

Use this skill

Run `npx skills use "https://github.com/jackwener/opencli" --skill "jackwener/opencli/opencli-usage"` and follow the generated skill instructions now. Read its complete output, redirecting it to a temporary file first if necessary. Resolve relative paths from the supporting-files directory it provides.

Use the whole pack

Use the skills in "https://github.com/jackwener/opencli" that are relevant to the current task. Run `npx skills add "https://github.com/jackwener/opencli"` and select the relevant skills, then follow their instructions.

Files · 1

View on GitHub
SKILL.md
1# opencli-usage
2 
3OpenCLI turns any website, Electron desktop app, or external CLI into a uniform `opencli <site> <command>` surface that agents can drive without screen-scraping. This skill is the orientation layer — once you know what you want to do, load one of the specialized skills below.
4 
5## The three pillars
6 
7- **Adapter commands** — `opencli <site> <command> [...]`. Built-in adapters live in `clis/`, user adapters in `~/.opencli/clis/`. Each is backed by a strategy (`PUBLIC | COOKIE | INTERCEPT | UI | LOCAL`) that tells you whether a Chrome session is needed.
8- **Browser driving** — `opencli browser *` subcommands (`open`, `state`, `click`, `type`, `select`, `find`, `extract`, `network`, …) for ad-hoc interaction and scraping when no adapter covers the task. See `opencli-browser`.
9- **Current-tab binding** — `opencli browser <session> bind` attaches the Chrome tab the user already opened/logged into to that browser session. Follow-up commands use `opencli browser <session> ...`. See `opencli-browser` before using it; bound sessions still block tab mutation.
10- **External CLI passthrough** — `opencli gh`, `opencli docker`, `opencli vercel`, etc. Managed via `opencli external install <name>` (auto-install from `external-clis.yaml`) or `opencli external register <name>` (bring your own).
11 
12## Install
13 
14```bash
15# npm global
16npm install -g @jackwener/opencli # binary: opencli, requires Node >= 21
17opencli doctor # run before browser-dependent work (see below)
18 
19# From source
20git clone git@github.com:jackwener/OpenCLI.git
21cd OpenCLI && npm install
22npx tsx src/main.ts <command> # same surface, no global install
23```
24 
25`opencli doctor` prints a structured `DoctorReport` — daemon status, extension connection, version checks, and a live browser connectivity probe. Scope is narrow: it diagnoses the **browser bridge** (daemon + extension + Chrome wiring). `PUBLIC` / `LOCAL` adapters, `opencli list`, `validate`, `verify`, plugin commands, and external-CLI passthrough don't need it to be green — only `COOKIE` / `INTERCEPT` / `UI` adapters and the `opencli browser *` subcommands do. Flag: `-v` (verbose).
26 
27## Prerequisites by command type
28 
29| Strategy tag on `opencli list` | What it needs |
30|--------------------------------|---------------|
31| `PUBLIC` | Nothing — pure HTTP, no browser. |
32| `COOKIE` | Chrome logged into the target site + **OpenCLI** extension installed from the [Chrome Web Store](https://chromewebstore.google.com/detail/opencli/ildkmabpimmkaediidaifkhjpohdnifk). Command captures the credential from your live session — no re-login. |
33| `INTERCEPT` | Same as COOKIE, plus opencli opens an automation window to capture a signed request. |
34| `UI` | Same as COOKIE, full DOM interaction. |
35| `LOCAL` | No browser; talks to a local/dev endpoint. |
36 
37Electron desktop apps (cursor, codex, chatwise, discord-app, doubao-app, antigravity, chatgpt-app) route through CDP against the running app — same cookie-less flow as a logged-in browser. Make sure the app is running before invoking.
38 
39## Discover what's installed — don't read this file, run a command
40 
41```bash
42opencli list # table, grouped by site
43opencli list -f json # machine-readable; pipe to jq or your agent
44opencli list | grep -i twitter # find commands for a specific site
45opencli <site> --help # see that site's commands + flags
46opencli <site> <command> --help # see positional args and command-specific flags
47```
48 
49Do not hard-code adapter lists — there are 100+ sites and the count moves every week. `opencli list -f json` is the source of truth; it emits one entry per command with `{site, name, aliases, description, strategy, browser, args, columns, ...}`. For an agent, that is always better than grepping a doc.
50 
51Before falling back to raw `opencli browser` commands on high-change authenticated sites, check whether a site adapter already exposes the workflow. For example, ChatGPT web has higher-level commands for conversation reads and Deep Research result extraction; discover the current surface with `opencli chatgpt --help` or `opencli list -f json`.
52 
53## Universal flags (work on every adapter command)
54 
55| flag | effect |
56|------|--------|
57| `-f, --format <fmt>` | `table` (default in TTY) · `yaml` (default in non-TTY) · `json` · `plain` · `md` · `csv`. Pass explicitly when you want a specific shape; agents almost always want `-f json`. |
58| `-v, --verbose` | Debug logs + stack traces on failure; also sets `OPENCLI_VERBOSE=1` for the process. |
59 
60Command-specific flags (`--limit`, `--tab`, `--filter`, …) are not universal — consult `<site> <command> --help`.
61 
62## Output formats
63 
64- `json` — pretty-printed, 2-space indent. Default choice for agents.
65- `plain` — prints a single primary field for chat-style commands (`response`/`content`/`text`/`value`). Useful for piping to another tool.
66- `yaml` — fallback when output is not a TTY and `-f` is not explicit.
67- `table` — color-coded, site-grouped; meant for humans.
68- `md`, `csv` — straightforward tabular dumps.
69 
70A few commands override the default via `cmd.defaultFormat` (e.g. chat commands default to `plain`), so don't assume without reading `--help`.
71 
72## Environment variables
73 
74| variable | default | purpose |
75|----------|---------|---------|
76| `OPENCLI_BROWSER_CONNECT_TIMEOUT` | `45` | Seconds to wait for the browser bridge. |
77| `OPENCLI_BROWSER_COMMAND_TIMEOUT` | `60` | Per-command timeout. |
78| `OPENCLI_CDP_ENDPOINT` | — | Manual CDP endpoint override (dev / remote Chrome / Electron). |
79| `OPENCLI_CACHE_DIR` | `~/.opencli/cache` | Network capture + browser-state cache. |
80| `OPENCLI_WINDOW` | command-specific | `foreground` or `background` browser window mode. |
81| `OPENCLI_VERBOSE` | `false` | Verbose logging (also triggered by `-v`). |
82 
83## Self-repair
84 
85When an adapter command fails because the site changed (selectors drifted, API rotated, response schema shifted), re-run with `--trace retain-on-failure`. The error envelope includes a `trace` block pointing at `summary.md`; patch only the `adapterSourcePath` from that summary and retry. Max 3 repair rounds. The full flow is in `opencli-autofix`.
86 
87## Writing your own adapter
88 
89Two-path storage:
90 
91- **Private**: `~/.opencli/clis/<site>/<command>.js` — no build step, hot-available, not visible in the public package.
92- **Public / PR**: `clis/<site>/<command>.js` — for upstream contribution; requires build.
93 
94Scaffolding & verification:
95 
96```bash
97opencli browser init <site>/<command> # generates a skeleton
98opencli validate [target] # semantic checks on the loaded registry (description, domain, pipeline step names, func|pipeline|_lazy presence, arg duplicates) — no network, no browser
99opencli verify [target] [--smoke] # run the command with synthetic args
100opencli browser verify <site>/<command> # end-to-end smoke inside the bridge
101```
102 
103Adapters import only `@jackwener/opencli/registry` and `@jackwener/opencli/errors`. `columns` must align 1:1 (in name and order) with keys of the object returned by `func`. For the full workflow see `opencli-adapter-author`.
104 
105## Plugins
106 
107Plugins are third-party extensions pulled from git, separate from the main adapter registry:
108 
109```bash
110opencli plugin install github:user/repo # install
111opencli plugin list [-f json] # see installed
112opencli plugin update [name] | --all # keep current
113opencli plugin uninstall <name>
114opencli plugin create <name> # scaffold a new plugin
115```
116 
117## External CLI passthrough
118 
119Wraps external command-line tools so you can discover + invoke them through the same `opencli …` entrypoint:
120 
121```bash
122opencli external install gh # auto-install via brew/apt/npm per external-clis.yaml
123opencli external register my-tool \
124 --binary my-tool \
125 --install "npm i -g my-tool" \
126 --desc "My internal CLI"
127opencli external list
128opencli gh pr list --limit 5 # passthrough; stdio is inherited, exit code propagated
129opencli docker ps
130```
131 
132Built-in entries live in `src/external-clis.yaml`; user overrides and additions in `~/.opencli/external-clis.yaml`. Commonly shipped: `gh`, `docker`, `vercel`, `lark-cli`, `longbridge`, `dws`, `wecom-cli`, `obsidian`, `ntn`, `tg(tg-cli)`, `discord(discord-cli)`, `wx(wx-cli)`.
133 
134Some official CLIs use shell-script installers instead of a shell-free package-manager command. Entries without an `install` config, such as `ntn`, must be installed manually from their homepage before passthrough use.
135 
136## Shell completion
137 
138```bash
139opencli completion bash # also: zsh, fish
140# -> script on stdout; source or save per your shell's convention
141```
142 
143## Where to go next
144 
145| If you're about to… | Load this skill |
146|---------------------|-----------------|
147| Drive a live browser ad-hoc (no adapter available, or prototyping) | `opencli-browser` |
148| Write a new adapter, or add a command to an existing site | `opencli-adapter-author` |
149| Fix a broken adapter after a command failure | `opencli-autofix` |
150| Route a search / lookup / research request to the right adapter | `smart-search` |
151 
152## Commands that used to exist
153 
154The following were removed in the PR #1094 consolidation — don't try to invoke them:
155 
156- `opencli explore <url>` — superseded by `opencli browser network` + `opencli browser find` for live API discovery, and by the `opencli-adapter-author` workflow for capture.
157- `opencli record <url>` — removed; manual capture now lives in `opencli browser network --detail`.
158- `opencli web read` / `opencli desktop *` as top-level groups — folded into their respective adapters (`opencli web read` still exists as the `web` adapter's `read` command, but there is no standalone `web` / `desktop` top-level group command).
159 
160## Don't
161 
162- Don't paste this skill's command list into your plan; it will rot. Call `opencli list -f json` at the start of a task instead.
163- Don't assume every adapter needs a browser — strategy `PUBLIC` and `LOCAL` don't. Check the `strategy` field.
164- Don't silently fall back from a failing adapter to a hand-rolled `fetch` — `--trace retain-on-failure` gives you the browser evidence and adapter source path. Do that first.

Security

Review

  • Gen Agent Trust Hubwarn
  • Socketwarn
  • Snykwarn
  • ZeroLeakspass

Preview

jackwener/openclijackwener/opencli

$ npx -y skills add jackwener/opencli --skill opencli-usage

▸ installing to .claude/skills…

✓ opencli-usage ready

Repojackwener/opencli
TypeSkills
CategoryResearch
ForResearcherAnalyst
UpdatedJul 2026
License—
First seenJul 27, 2026

Tags

Skill

Related

6 picks
Type
  1. mattpocock avatarresearchInvestigate a question against high-trust primary sources and capture the findings as a Markdown file in the repo.SkillsJul 2026183k189k
  2. lllllllama avataranalyze-projectRigor Analyze / Rigor Audit read-only skill for deep learning research repositories.SkillsJul 2026176k512
  3. lllllllama avatarpaper-context-resolverRigor Paper Context helper for README-first deep learning repo reproduction.SkillsJul 2026176k512
  4. lllllllama avatarrepo-intake-and-planRigor Intake helper for README-first deep learning repo reproduction.SkillsJul 2026176k512
  5. firecrawl avatarfirecrawl-searchWeb search with full page content extraction. Use this skill whenever the user asks to search the web, find articles, research a topic, look something up, find…SkillsJul 202677k539
  6. coreyhaines31 avatarcustomer-researchWhen the user wants to conduct, analyze, or synthesize customer research.SkillsJul 202671k42k