跳到主要內容
/

OpenCLI:把任何網站和桌面工具變 CLI

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、stub window.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 支援的主要平台一張表看不完,這裡擷取幾個重點:

平台指令範圍
xiaohongshusearch, note, comments, feed, user, download, publish, creator-notes, creator-stats
bilibilihot, search, history, feed, ranking, download, comments, dynamic, favorite, following, user-videos
twittertrending, search, timeline, bookmarks, post, download, profile, like, notifications, reply, follow, unfollow, block
reddithot, frontpage, popular, search, subreddit, read, user, user-posts, upvote, save, comment, subscribe
zhihuarticle export, search
spotifyauth, status, play, pause, next, prev, volume, search, queue, shuffle, repeat
1688 / amazonsearch, 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。


怎麼開始?三步驟

  1. 下載 Browser Bridge extension
    GitHub Releases 抓 opencli-extension.zip,load unpacked 到 chrome://extensions。

  2. npm install

    npm install -g @jackwener/opencli
    npx skills add jackwener/opencli   # 給 Claude Code / Cursor 安裝 AI skill
    
  3. 驗證與試跑

    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)
  • docker
  • obsidian
  • vercel
  • lark-cli (飛書)
  • dingtalk (釘釘)
  • wecom (企業微信)

為什麼這對 AI 開發者重要?

  1. 減少 adapter 數量爆炸:不需要每個網站都寫一套 LangChain tool,OpenCLI 已經有成熟、維護中的 adapter。
  2. 避免 breaking changes:網站改版時,adapter 作者的更新就會一起吃到;你不用追 Facebook DOM class 變化。
  3. 降低 token 花費:AI 不用花 token 去猜「我要點哪個按鈕」,指令層已經 abstraction 好了。
  4. 可複用、scriptable:output 有 schema,可以直接接 shell pipeline,進 CI/CD 腳本。
  5. Electron app 自動化:像 Antigravity Ultra 這種 AI app,現在也可以被另一支 AI 控制,形成「AI 控制 AI」的圖象。

結語

OpenCLI 的出現,讓「AI 操作外部工具」的邊界擴大了——不只是 API,連網站和桌面 app 都進來 CLI 世界。身為開發者,你只需要安裝一次,然後讓你的 AI agent 去 opencli list 探索有哪些工具能用。它省掉(token-spendly的 selector 推理,也避掉了反爬蟲的麻煩。

有興趣的同学,可以去 GitHub 看看:jackwener/opencli。