OpenCLI:把任何網站和桌面工具變 CLI
你有沒有想過,讓 AI 直接替你操作瀏覽器,把網站內容轉成 deterministic CLI 指令?
OpenCLI 就是為這個目標生的。它把網站、Electron app、本機 CLI 工具都包裝成統一的指令介面,讓 AI agent 可以一視同仁地呼叫。結果是:不需要為每個網站寫客製化 adapter,也不需要 LLM token 去推理網頁結構——OpenCLI 已經幫你把常用網站和桌面工具封裝好了。
核心價值:AI agent 的瀏覽器和桌面能力
OpenCLI 的設計出發點很簡單:今天 AI 要操作網站或桌面工具,通常得靠 Playwright 或 Puppeteer 爬 DOM,或用 token 推理網頁元素。這款既慢又貴,還容易受前端改動影響。
OpenCLI 換了一條路:先建立Browser Bridge——一個 Chrome/Chromium extension + daemon,直接複用你已經登入的瀏覽器 session。然後针对 79+ 網站和桌面 app 寫好 adapter,讓每個網站都有一組固定的 sub-commands 和 output schema。
對 AI 而言,就是 opencli <site> <command> --args,然後拿到 JSON。不需要判断元素,不需要 OCR,不需要 théorie。
安全與反偵測:一層一層包起來
讓 AI 操作 automatism 會擔心被網站攔截嗎?OpenCLI 做了幾件事:
- reuse Chrome/Chromium login:你的登入狀態不會離開瀏覽器,OpenCLI 只透過 CDP 發指令。
- anti-detection:patch
navigator.webdriver、stubwindow.chrome、fake plugin list、clean ChromeDriver/Playwright globals、strip CDP frames from stack traces。常見的抗爬措施都被 cover 了。 - zero token cost:所有指令都在本機執行,不消耗 LLM tokens。你愛跑10,000次也不會被 bill。
- deterministic:同樣的指令,output schema 固定,可直接 pipe、script、進 CI。
azy loading:79+ adapter 開箱即用
OpenCLI 支援的主要平台一張表看不完,這裡擷取幾個重點:
| 平台 | 指令範圍 |
|---|---|
| xiaohongshu | search, note, comments, feed, user, download, publish, creator-notes, creator-stats |
| bilibili | hot, search, history, feed, ranking, download, comments, dynamic, favorite, following, user-videos |
| trending, search, timeline, bookmarks, post, download, profile, like, notifications, reply, follow, unfollow, block | |
| hot, frontpage, popular, search, subreddit, read, user, user-posts, upvote, save, comment, subscribe | |
| zhihu | article export, search |
| spotify | auth, status, play, pause, next, prev, volume, search, queue, shuffle, repeat |
| 1688 / amazon | search, item, bestsellers, product, offer |
| gh / vercel / docker / obsidian / lark-cli / dingtalk / wecom | 直接 passthrough 到本機工具,如 opencli gh pr list, opencli vercel deploy --prod |
另外還有桌面 Electron app adapter:Cursor, Codex, Antigravity Ultra, ChatGPT macOS, ChatWise, Notion, Discord, Doubao 等,讓 AI 可以直接控制這些 app。
怎麼開始?三步驟
下載 Browser Bridge extension
GitHub Releases 抓opencli-extension.zip,load unpacked 到 chrome://extensions。npm install
npm install -g @jackwener/opencli npx skills add jackwener/opencli # 給 Claude Code / Cursor 安裝 AI skill驗證與試跑
opencli doctor # 檢查 extension + daemon 連線 opencli daemon status # daemon 狀態 opencli list # 列出所有指令 opencli hackernews top --limit 5 # 不需要瀏覽器的 API 命令 opencli bilibili hot --limit 5 # 需要瀏覽器的命令
AI agent 的使用模式
如果你要让 Claude Code 或 Cursor 使用 OpenCLI,只需安裝 opencli-operate skill,然後把 opencli list 寫進 AGENT.md 或 .cursorrules。Agent 就會自動 discover 所有可用的 CLI 指令,並且直接叫用。
opencli-operate 提供給 AI 的核心命令:
open, state, click, type, select, keys, wait, get, screenshot, scroll, back, eval, network, init, verify, close
這些讓 AI 可以:
- 開一個網站 (
open) - 點擊元素 (
click) - 輸入文字 (
type) - selecting from dropdown (
select) - 等页面加载 (
wait) - 拿 DOM 內容或 JSON (
get) - 截圖 (
screenshot) - 捲動 (
scroll) - 評估 JavaScript (
eval) - 監控網路請求 (
network)
然後把這些互動 crystallize 成可重用的 CLI 命令,以後就不用再玩 selector。
外部 CLI Hub:把本機工具也註冊進來
OpenCLI 不只網站 adapter,還可以註冊任何本機 CLI:
opencli register mycli
這樣 AI 在 opencli list 就會看到你的工具,並且可以透過 OpenCLI 自動安裝缺失的依賴(例如 opencli gh ... 時如果 gh 沒裝,會自動跑 brew install gh)。
常見 external CLI:
gh(GitHub CLI)dockerobsidianvercellark-cli(飛書)dingtalk(釘釘)wecom(企業微信)
為什麼這對 AI 開發者重要?
- 減少 adapter 數量爆炸:不需要每個網站都寫一套 LangChain tool,OpenCLI 已經有成熟、維護中的 adapter。
- 避免 breaking changes:網站改版時,adapter 作者的更新就會一起吃到;你不用追 Facebook DOM class 變化。
- 降低 token 花費:AI 不用花 token 去猜「我要點哪個按鈕」,指令層已經 abstraction 好了。
- 可複用、scriptable:output 有 schema,可以直接接 shell pipeline,進 CI/CD 腳本。
- Electron app 自動化:像 Antigravity Ultra 這種 AI app,現在也可以被另一支 AI 控制,形成「AI 控制 AI」的圖象。
結語
OpenCLI 的出現,讓「AI 操作外部工具」的邊界擴大了——不只是 API,連網站和桌面 app 都進來 CLI 世界。身為開發者,你只需要安裝一次,然後讓你的 AI agent 去 opencli list 探索有哪些工具能用。它省掉(token-spendly的 selector 推理,也避掉了反爬蟲的麻煩。
有興趣的同学,可以去 GitHub 看看:jackwener/opencli。