@jakevin7: OpenCLI 2W star 了 ,https://github.com/jackwener/OpenCLI… 不过现在对 star 数已经没什么感觉了。 最开心的时候,还是和用户们交流使用&分享心得经验的时候。 后面还会持续改进,让 …
摘要
OpenCLI 项目 GitHub 星标突破 2 万,该工具可将网站、浏览器会话及 Electron 应用转化为确定性 CLI 接口,支持 AI Agent 直接操作浏览器并自动化工作流。
查看缓存全文
缓存时间: 2026/05/11 16:41
OpenCLI 2W star 了 🎉,https://t.co/UiH5TIKKFG
不过现在对 star 数已经没什么感觉了。 最开心的时候,还是和用户们交流使用&分享心得经验的时候。
后面还会持续改进,让 opencli 变得更好用。 https://t.co/NeZVdLOJ2D
jackwener/OpenCLI
Source: https://github.com/jackwener/OpenCLI
OpenCLI
Turn websites, browser sessions, Electron apps, and local tools into deterministic interfaces for humans and AI agents. Reuse your logged-in browser, automate live workflows, and crystallize repeated actions into reusable CLI commands.
OpenCLI gives you one surface for three different kinds of automation:
- Use built-in adapters for sites like Bilibili, Zhihu, Xiaohongshu, Reddit, HackerNews, Twitter/X, and many more.
- Let AI Agents operate any website — install the
opencli-adapter-authorskill in your AI agent (Claude Code, Cursor, etc.), and it can navigate, click, type/fill, extract, and inspect any page through your logged-in browser viaopencli browserprimitives. - Write new adapters end-to-end with
opencli browser+ theopencli-adapter-authorskill, which guides from first recon through field decoding, code, andopencli browser verify.
It also works as a CLI hub for local tools such as gh, docker, tg-cli, discord-cli, wx-cli, and other binaries you register yourself, plus desktop app adapters for Electron apps like Cursor, Codex, Antigravity, ChatGPT, and Notion.
Highlights
- Desktop App Control — Drive Electron apps (Cursor, Codex, ChatGPT, Notion, etc.) directly from the terminal via CDP.
- Browser Automation for AI Agents — Install the
opencli-adapter-authorskill, and your AI agent can operate any website: navigate, click, type/fill, extract, screenshot — all through your logged-in Chrome session. - Multi-profile Browser Bridge — Install the extension in each Chrome profile you want to use, then route commands with
--profile,OPENCLI_PROFILE, oropencli profile use. - Website → CLI — Turn any website into a deterministic CLI: 100+ site surfaces are already registered, or write your own with the
opencli-adapter-authorskill +opencli browser verify. - Account-safe — Reuses Chrome/Chromium logged-in state; your credentials never leave the browser.
- AI Agent ready — One skill takes you from site recon through API discovery, field decoding, adapter writing, and verification.
- CLI Hub — Discover, auto-install, and passthrough commands to any external CLI (gh, docker, obsidian, tg-cli, discord-cli, wx-cli, etc).
- Zero LLM cost — No tokens consumed at runtime. Run 10,000 times and pay nothing.
- Deterministic — Same command, same output schema, every time. Pipeable, scriptable, CI-friendly.
Quick Start
1. Install OpenCLI
OpenCLI requires Node.js >= 21.
node --version
npm install -g @jackwener/opencli
2. Install the Browser Bridge Extension
OpenCLI connects to Chrome/Chromium through a lightweight Browser Bridge extension plus a small local daemon. The daemon auto-starts when needed.
Option A — Chrome Web Store (recommended): Install OpenCLI from the Chrome Web Store.
Option B — Manual install:
- Download the latest
opencli-extension-v{version}.zipfrom the GitHub Releases page. - Unzip it, open
chrome://extensions, and enable Developer mode. - Click Load unpacked and select the unzipped folder.
3. Verify the setup
opencli doctor
4. Optional: name your Chrome profile
Each Chrome profile runs its own OpenCLI extension instance. If you use multiple Chrome profiles, list the connected profiles and assign local aliases:
opencli profile list
opencli profile rename <contextId> work
opencli profile use work
opencli --profile work browser state
With only one connected profile, OpenCLI uses it automatically. With multiple connected profiles and no default, OpenCLI asks you to choose instead of guessing.
5. Run your first commands
opencli list
opencli hackernews top --limit 5
opencli bilibili hot --limit 5
For Humans
Use OpenCLI directly when you want a reliable command instead of a live browser session:
opencli listshows every registered command.opencli <site> <command>runs a built-in or generated adapter.opencli external register mycliexposes a local CLI through the same discovery surface.opencli doctorhelps diagnose browser connectivity.
Extending OpenCLI
If you want to add your own commands, start with the Extending OpenCLI guide. README keeps this short; the guide covers the directory layout, source-control model, and install commands.
| Need | Recommended path |
|---|---|
| Keep personal website commands in your own Git repo | opencli plugin create + opencli plugin install file://... |
| Quickly draft a private local adapter | opencli browser init <site>/<command> in ~/.opencli/clis/ |
| Modify an official adapter locally | opencli adapter eject <site> + opencli adapter reset <site> |
| Publish or install third-party commands | opencli plugin install github:user/repo |
| Wrap an existing local binary | opencli external register <name> |
For AI Agents
OpenCLI’s browser commands are designed to be used by AI Agents — not run manually. Install skills into your AI agent (Claude Code, Cursor, etc.), and the agent operates websites on your behalf using your logged-in Chrome session.
Install skills
npx skills add jackwener/opencli
Or install only what you need:
npx skills add jackwener/opencli --skill opencli-adapter-author
npx skills add jackwener/opencli --skill opencli-autofix
npx skills add jackwener/opencli --skill opencli-browser
npx skills add jackwener/opencli --skill opencli-usage
npx skills add jackwener/opencli --skill smart-search
Which skill to use
| Skill | When to use | Example prompt to your AI agent |
|---|---|---|
| opencli-adapter-author | Operate a site in real time, or write a reusable adapter for a new site | “Help me check my Xiaohongshu notifications” / “Write an adapter for douyin trending” / “Make a command that grabs the top posts from this page” |
| opencli-autofix | Repair a broken adapter when a built-in command fails | “opencli zhihu hot is returning empty — fix it” |
| opencli-browser | Browser automation reference for AI agents | “Use browser commands to scrape this page” |
| opencli-usage | Quick reference for all OpenCLI commands and sites | “What commands does OpenCLI have for Twitter?” |
| smart-search | Search across existing OpenCLI capabilities | “Find me a Bilibili trending adapter” |
How it works
Once opencli-adapter-author is installed, your AI agent can:
- Navigate to any URL using your logged-in browser
- Read page content via structured DOM snapshots (not screenshots)
- Interact — click buttons, fill forms, select options, press keys
- Extract data from the page or intercept network API responses
- Wait for elements, text, or page transitions
The agent handles all the opencli browser commands internally — you just describe what you want done in natural language.
Skill references:
skills/opencli-adapter-author/SKILL.md— browser operation + adapter authoring, end-to-endskills/opencli-autofix/SKILL.md— repair broken adaptersskills/opencli-browser/SKILL.md— browser automation referenceskills/opencli-usage/SKILL.md— command and site referenceskills/smart-search/SKILL.md— capability search
Available browser commands include open, state, click, type, fill, select, keys, wait, get, find, extract, frames, screenshot, scroll, back, eval, network, tab list, tab new, tab select, tab close, init, verify, and close.
opencli browser commands require --session <name>. opencli browser --session work open <url> and opencli browser --session work tab new [url] both return a target ID. Use opencli browser --session work tab list to inspect target IDs, then pass --tab <targetId> to route a command to a specific tab. tab new creates a new tab without changing the default browser target; only tab select <targetId> promotes that tab to the default target for later untargeted commands in the same session.
Core Concepts
browser: AI Agent browser control
opencli browser commands are the low-level primitives that AI Agents use to operate websites. You don’t run these manually — instead, install the opencli-adapter-author skill into your AI agent, describe what you want in natural language, and the agent handles the browser operations.
For example, tell your agent: “Help me check my Xiaohongshu notifications” — the agent will use opencli browser --session <name> open, state, click, etc. under the hood.
Built-in adapters: stable commands
Use site-specific commands such as opencli hackernews top or opencli reddit hot when the capability already exists. These are deterministic and work without browser — ideal for both humans and AI agents.
Writing a new adapter
When the site you need is not yet covered, use the opencli-adapter-author skill. It takes the agent end-to-end:
- Recon the site and classify its pattern (SPA / SSR / JSONP / Token / Streaming).
- Discover the right endpoint — network inspection, initial state, bundle search, token trace, or interceptor fallback.
- Decide the auth strategy —
PUBLIC/COOKIE/INTERCEPT/UI/LOCAL. - Decode response fields and design output columns.
opencli browser --session recon analyze <url>for one-shot recon, thenopencli browser --session recon init <site>/<name>→ write adapter →opencli browser --session recon verify <site>/<name>.- Persist site knowledge to
~/.opencli/sites/<site>/so the next adapter for the same site is faster.
CLI Hub and desktop adapters
OpenCLI is not only for websites. It can also:
- expose local binaries like
gh,docker,obsidian,tg-cli,discord-cli,wx-cli, or custom tools throughopencli <tool> ... - control Electron desktop apps through dedicated adapters and CDP-backed integrations
Prerequisites
- Node.js: >= 21.0.0 (required for the standard npm install path)
- Bun: >= 1.0 (optional alternative runtime)
- Chrome or Chromium running and logged into the target site for browser-backed commands
Important: Browser-backed commands reuse your Chrome/Chromium login session. If you get empty data or permission-like failures, first confirm the site is already open and authenticated in Chrome/Chromium.
Configuration
| Variable | Default | Description |
|---|---|---|
OPENCLI_DAEMON_PORT | 19825 | HTTP port for the daemon-extension bridge |
OPENCLI_PROFILE | — | Browser Bridge profile alias/contextId to use when multiple Chrome profiles are connected |
OPENCLI_WINDOW | command default | Set to foreground or background to override Browser Bridge window placement. Browser-backed commands also accept --window <foreground|background>. |
OPENCLI_KEEP_TAB | command default | Set to true or false to keep or release the browser tab lease after a browser-backed adapter command. Browser-backed adapter commands also accept --keep-tab <true|false>. |
OPENCLI_BROWSER_CONNECT_TIMEOUT | 30 | Seconds to wait for browser connection |
OPENCLI_BROWSER_COMMAND_TIMEOUT | 60 | Seconds to wait for a single browser command |
OPENCLI_CDP_ENDPOINT | — | Chrome DevTools Protocol endpoint for remote browser or Electron apps |
OPENCLI_CDP_TARGET | — | Filter CDP targets by URL substring (e.g. detail.1688.com) |
OPENCLI_VERBOSE | false | Enable verbose logging (-v flag also works) |
DEBUG_SNAPSHOT | — | Set to 1 for DOM snapshot debug output |
opencli browser * requires an explicit --session <name>, uses a foreground browser window by default, and keeps that session’s tab lease until browser --session <name> close or idle cleanup. Browser-backed adapters use a background adapter window and release one-shot tab leases by default. Interactive adapters can declare siteSession: 'persistent' to keep a stable site tab for continuity; pass --site-session ephemeral for a one-shot tab.
Update
npm install -g @jackwener/opencli@latest
# If you use the packaged OpenCLI skills, refresh them too
npx skills add jackwener/opencli
Or refresh only the skills you actually use:
npx skills add jackwener/opencli --skill opencli-adapter-author
npx skills add jackwener/opencli --skill opencli-autofix
npx skills add jackwener/opencli --skill opencli-browser
npx skills add jackwener/opencli --skill opencli-usage
npx skills add jackwener/opencli --skill smart-search
For Developers
Install from source:
git clone [email protected]:jackwener/opencli.git
cd opencli
npm install
npm run build
npm link
To load the source Browser Bridge extension:
- Open
chrome://extensionsand enable Developer mode. - Click Load unpacked and select this repository’s
extension/directory.
Built-in Commands
| Site | Commands |
|---|---|
| xiaohongshu | search note comments feed user download publish notifications creator-notes creator-notes-summary creator-note-detail creator-profile creator-stats |
| bilibili | hot search history feed ranking download comments dynamic favorite following me subtitle video user-videos |
| tieba | hot posts search read |
| hupu | hot search detail mentions reply like unlike |
trending search timeline tweets lists list-tweets list-add list-remove bookmarks post download profile article like likes notifications reply reply-dm thread follow unfollow followers following block unblock bookmark unbookmark delete hide-reply accept | |
hot frontpage popular search subreddit read user user-posts user-comments upvote upvoted save saved comment subscribe | |
| zhihu | hot search question download follow like favorite comment answer |
| amazon | bestsellers search product offer discussion movers-shakers new-releases rankings |
| 1688 | search item assets download store |
| gitee | trending search user |
| gemini | new ask image deep-research deep-research-result |
| claude | ask send new status read history detail |
| yuanbao | new ask |
| notebooklm | status list open current get history summary note-list notes-get source-list source-get source-fulltext source-guide |
| spotify | auth status play pause next prev volume search queue shuffle repeat |
| xianyu | search item chat publish |
| xiaoe | courses detail catalog play-url content |
| quark | ls mkdir mv rename rm save share-tree |
| uiverse | code preview |
| baidu-scholar | search |
| google-scholar | search cite profile |
| gov-law | search recent |
| gov-policy | search recent |
| nowcoder | hot trending topics recommend creators companies jobs search suggest experience referral salary papers practice notifications detail |
| wanfang | search |
| hackernews | top new best ask show jobs search user |
| xiaoyuzhou | auth* podcast* podcast-episodes* episode* download* transcript* |
100+ site surfaces in total — → see all supported sites & commands
* opencli xiaoyuzhou podcast, podcast-episodes, episode, download, and transcript require local Xiaoyuzhou credentials in ~/.opencli/xiaoyuzhou.json.
CLI Hub
OpenCLI acts as a universal hub for your existing command-line tools — unified discovery, pure passthrough execution, and auto-install (if a tool isn’t installed, OpenCLI runs brew install <tool> automatically before re-running the command).
| External CLI | Description | Example |
|---|---|---|
| gh | GitHub CLI | opencli gh pr list --limit 5 |
| obsidian | Obsidian vault management | opencli obsidian search query="AI" |
| docker | Docker | opencli docker ps |
| lark-cli | Lark/Feishu — messages, docs, calendar, tasks, 200+ commands | opencli lark-cli calendar +agenda |
| dws | DingTalk — cross-platform CLI for DingTalk’s full suite, designed for humans and AI agents | opencli dws msg send --to user "hello" |
| wecom-cli | WeCom/企业微信 — CLI for WeCom open platform, for humans and AI agents | opencli wecom-cli msg send --to user "hello" |
| tg-cli | Telegram — local-first sync, search, and export via MTProto for AI agents | opencli tg search "AI news" -f json |
| discord-cli | Discord — local-first sync, search, and export via SQLite for AI agents | opencli discord recent --channel general |
| wx-cli | WeChat — query local WeChat data: sessions, messages, search, contacts, export | opencli wx search "OpenCLI" |
| vercel | Vercel — deploy projects, manage domains, env vars, logs | opencli vercel deploy --prod |
Register your own — add any local CLI so AI agents can discover it via opencli list:
opencli external register mycli
Desktop App Adapters
Control Electron desktop apps directly from the terminal. Each adapter has its own detailed documentation:
| App | Description | Doc |
|---|---|---|
| Cursor | Control Cursor IDE — Composer, chat, code extraction | Doc |
| Codex | Drive OpenAI Codex CLI agent headlessly | Doc |
| Antigravity | Control Antigravity Ultra from terminal | Doc |
| ChatGPT App | Automate ChatGPT macOS desktop app | Doc |
| ChatWise | Multi-LLM client (GPT-4, Claude, Gemini) | Doc |
| Notion | Search, read, write Notion pages | Doc |
| Discord | Discord Desktop — messages, channels, servers | Doc |
| Doubao | Control Doubao AI desktop app via CDP | Doc |
To add a new Electron app, start with docs/guide/electron-app-cli.md.
Download Support
OpenCLI supports downloading images, videos, and articles from supported platforms.
| Platform | Content Types | Notes |
|---|---|---|
| xiaohongshu | Images, Videos | Downloads all media from a note |
| bilibili | Videos | Requires yt-dlp installed |
| Images, Videos | From user media tab or single tweet | |
| douban | Images | Poster / still image lists |
| pixiv | Images | Original-quality illustrations, multi-page |
| 1688 | Images, Videos | Downloads page-visible product media from item pages |
| xiaoyuzhou | Audio, Transcript | Downloads episode audio and transcript JSON/text with local credentials |
| zhihu | Articles (Markdown) | Exports with optional image download |
| weixin | Articles (Markdown) | WeChat Official Account articles |
For video downloads, install yt-dlp first: brew install yt-dlp
opencli xiaohongshu download "https://www.xiaohongshu.com/search_result/<id>?xsec_token=..." --output ./xhs
opencli xiaohongshu download "https://xhslink.com/..." --output ./xhs
opencli bilibili download BV1xxx --output ./bilibili
opencli twitter download elonmusk --limit 20 --output ./twitter
opencli 1688 download 841141931191 --output ./1688-downloads
opencli xiaoyuzhou download 69b3b675772ac2295bfc01d0 --output ./xiaoyuzhou
opencli xiaoyuzhou transcript 69dd0c98e2c8be31551f6a33 --output ./xiaoyuzhou-transcripts
opencli xiaoyuzhou download and transcript require local Xiaoyuzhou credentials in ~/.opencli/xiaoyuzhou.json.
Output Formats
All built-in commands support --format / -f with table (default), json, yaml, md, and csv.
opencli bilibili hot -f json # Pipe to jq or LLMs
opencli bilibili hot -f csv # Spreadsheet-friendly
opencli bilibili hot -v # Verbose: show pipeline debug steps
Exit Codes
opencli follows Unix sysexits.h conventions so it integrates naturally with shell pipelines and CI scripts:
| Code | Meaning | When |
|---|---|---|
0 | Success | Command completed normally |
1 | Generic error | Unexpected / unclassified failure |
2 | Usage error | Bad arguments or unknown command |
66 | Empty result | No data returned (EX_NOINPUT) |
69 | Service unavailable | Browser Bridge not connected (EX_UNAVAILABLE) |
75 | Temporary failure | Command timed out — retry (EX_TEMPFAIL) |
77 | Auth required | Not logged in to target site (EX_NOPERM) |
78 | Config error | Missing credentials or bad config (EX_CONFIG) |
130 | Interrupted | Ctrl-C / SIGINT |
opencli spotify status || echo "exit $?" # 69 if browser not running
opencli gh issue list 2>/dev/null
[ $? -eq 77 ] && opencli gh auth login # auto-auth if not logged in
Plugins
Extend OpenCLI with community-contributed adapters:
opencli plugin install github:user/opencli-plugin-my-tool
opencli plugin list
opencli plugin update --all
opencli plugin uninstall my-tool
| Plugin | Type | Description |
|---|---|---|
| opencli-plugin-github-trending | JS | GitHub Trending repositories |
| opencli-plugin-hot-digest | JS | Multi-platform trending aggregator |
| opencli-plugin-juejin | JS | 稀土掘金 (Juejin) hot articles |
| opencli-plugin-vk | JS | VK (VKontakte) wall, feed, and search |
See Plugins Guide for creating your own plugin.
For AI Agents (Developer Guide)
Before writing any adapter code, read the opencli-adapter-author skill. It takes you end-to-end:
- Recon the site and pick a pattern (SPA / SSR / JSONP / Token / Streaming).
- Discover the right endpoint via
opencli browser --session <name> network,eval, or the interceptor fallback. - Decide auth strategy (
PUBLIC/COOKIE/INTERCEPT/UI/LOCAL). - Run
opencli browser --session recon analyze <url>for one-shot recon, decode response fields, design columns, scaffold withopencli browser --session recon init. - Verify with
opencli browser --session recon verify <site>/<name>before shipping.
For long-lived personal commands that should live in your own Git repo, use a local plugin instead; see Extending OpenCLI. Quick private adapters can still live at ~/.opencli/clis/<site>/<name>.js. Site knowledge (endpoints, field maps, fixtures) accumulates in ~/.opencli/sites/<site>/ so the next adapter for the same site starts from context instead of zero.
Testing
See TESTING.md for how to run and write tests.
Troubleshooting
- “Extension not connected” — Ensure the Browser Bridge extension is installed from the Chrome Web Store and enabled in
chrome://extensions. - “attach failed: Cannot access a chrome-extension:// URL” — Another extension may be interfering. Try disabling other extensions temporarily.
- Empty data or ‘Unauthorized’ error — Your Chrome/Chromium login session may have expired. Navigate to the target site and log in again.
- Node API errors / missing
fetch/ startup crash on old Node — OpenCLI requires Node.js >= 21. Runnode --version, upgrade Node if needed, then retry. - Daemon issues — Check status:
curl localhost:19825/status· View logs:curl localhost:19825/logs
Star History
License
相似文章
@jakevin7: OpenCLI v1.8.0 终于发布了 熬到凌晨 4 点,1.7 到 1.8 这一程算是落地了。回顾这段时间确实做了太多了! ## Browser Agent Runtime 完善了 browser 能力,一次性到位。本质是把"agen…
OpenCLI v1.8.0 发布,增强了浏览器代理运行时,通过 accessibility tree 和 CDP 原生输入实现了更可靠的浏览器操控,并新增了微信读书、12306、闲鱼等多个站点适配,提升了稳定性和安全性。
@jakevin7: OpenCLI App 发布了! 现在不需要 npm 就可以使用 OpenCLI,方便普通用户使用。并且集成了一些其他的方便使用的功能,包括自动刷新登录态等。 https://opencli.info/download/ 欢迎使用,有问题…
OpenCLI App 发布,无需 npm 即可使用,集成了自动刷新登录态等便捷功能,方便普通用户使用。
@jakevin7: OpenCLI 支持很多grok,chatgpt,......等等很多 AI CLI!可能很多人还不知道这是个多强大的能力 譬如你可以让 opencli grok 去直接对 twitter 的内容进行检索,进行分析等等。 刚让 grok …
OpenCLI 是一个支持 Grok、ChatGPT、Claude 等多种 AI 的命令行工具,利用浏览器登录态直接调用各种 AI 进行任务协作,如搜索推特讨论并生成分析。
@jakevin7: OpenCLI 一键打通 Agent 的 Twitter 世界! 发推、回复、引用转推、监控通知、关键词触发自动回 DM、把整条 thread 抓下来总结、批量整理 list、定期备份某个人的所有图和视频——你想到的客户端操作,Agent…
OpenCLI 是一个工具,允许 AI Agent 通过复用浏览器登录态(无需 X API key)无缝操作 Twitter,实现发推、回复、监控、抓取总结等 36 种客户端命令,将 Twitter 变成 Agent 的完整生活场景。
@ruanyf: 最近,多家国产办公平台,发布了开源 CLI 工具包,供 agent 调用。 其中,飞书开放的功能最全,项目规模和 Star 数量都是最高。发布40多天,已经超过了1万 Star。 下面是我使用它接入 Agent、尝试办公自动化的简单介绍。…
飞书等国产办公平台发布了开源 CLI 工具包供 agent 调用,其中飞书的功能最全且 Star 数最高,发布 40 多天已超 1 万 Star。