OpenCLI 是一款開源 CLI 運行框架,能把網站、Electron 桌面應用和本地工具統一封裝成命令行介面,讓 AI Agent 用結構化指令取代瀏覽器操作,從根本上解決 Token 消耗過高和反爬蟲封鎖的問題。 截至 2026 年 4 月,OpenCLI 在 GitHub 累積超過 15,000 顆星,內建 87 個以上的網站適配器,涵蓋 Twitter/X、Reddit、Bilibili、知乎、小紅書、YouTube、HackerNews 等 55 個以上平台。它的 Rust 重寫版本 AutoCLI 更把執行速度拉高到原版的 12 倍,記憶體用量壓到十分之一,編譯後只有 4.7 MB 的單一執行檔。

對於正在用 Claude CodeOpenClaw 搭建自動化工作流的開發者來說,OpenCLI 填補了一個關鍵缺口:AI Agent 需要從外部網站取得即時資訊時,不再需要啟動瀏覽器、載入整個 DOM、解析數千行 HTML,而是一行指令就拿到結構化資料。

AI Agent 操作網頁的三個結構性問題

目前多數 AI Agent 透過 Browser Use 或類似方案操作網頁,實務上會碰到三個問題,而且這三個問題會疊加放大。

第一是 Token 成本失控。一個典型的網頁載入後,DOM 結構加上無關的廣告區塊、導航列、頁尾,動輒塞進數萬個 Token。Claude Sonnet 4 的 API 定價是每百萬 input token USD 3,每百萬 output token USD 15。如果 Agent 每次任務要處理 5-10 個網頁,光 input token 就可能燒掉 USD 0.5-1。做一百次就是 USD 50-100,而且大部分 Token 花在解析跟任務無關的 HTML 結構上。

第二是反爬蟲機制。知乎、小紅書、微博這類平台有驗證碼、登入檢查和行為偵測。用 Playwright 或 Puppeteer 自動化瀏覽器,稍有不慎就被封帳號。Reddit 和 Twitter/X 的 API 更是越來越貴——Twitter API 的 Basic 方案月費 USD 100,Pro 方案 USD 5,000,對個人開發者和小團隊來說根本不划算。

第三是輸出不確定性。瀏覽器操作依賴 DOM 選擇器,網站一改版,選擇器就失效。Agent 拿到的資料品質和格式每次都不一樣,後續處理的錯誤率很高。

問題 Browser Use 方案 OpenCLI 方案
每次操作 Token 消耗 數萬(整個 DOM) 數百(結構化輸出)
反爬蟲風險 高(自動化瀏覽器特徵明顯) 低(複用 Chrome 登入態 + 反偵測)
輸出格式 不確定(HTML 片段) 確定(JSON / YAML / CSV / Markdown)
執行速度 慢(要等頁面渲染) 快(直接攔截 API 回應)
每次任務 API 成本 USD 0.5-1+ 接近零(不消耗 LLM Token)

OpenCLI 的運作機制

OpenCLI 的核心思路是:與其讓 AI 去「看」網頁,不如直接給它一個確定性介面。

具體來說,OpenCLI 透過一個輕量的 Chrome 擴充功能(Browser Bridge)加上本地 daemon 程序,複用使用者已經登入的 Chrome 瀏覽器狀態。它不需要另外啟動無頭瀏覽器,也不需要儲存任何帳號密碼。當你執行 opencli bilibili hot --limit 10 -f json 這樣的指令時,OpenCLI 會透過 CDP(Chrome DevTools Protocol)在背景攔截網頁的 API 請求,擷取結構化的回應資料,然後以你指定的格式輸出。

這裡有幾個技術細節值得注意。

反偵測方面,OpenCLI 會修補 navigator.webdriver 屬性、偽造 window.chrome 物件、清除 ChromeDriver 和 Playwright 的全域變數痕跡,還會從 Error stack trace 裡移除 CDP 相關的 frame。這些措施讓平台端的風控系統很難分辨操作是人為還是自動化的。

適配器架構方面,OpenCLI 用聲明式的 YAML 檔案定義每個網站的操作管線(pipeline):fetch → extract → transform → output。新增一個網站的支援,只要寫一個 YAML 檔案放到 clis/ 資料夾,就會自動註冊為可用指令。不需要寫 TypeScript 或 JavaScript 程式碼。

AI 驅動探索方面,碰到還沒有內建適配器的網站,OpenCLI 提供四個指令讓 AI Agent 自己去探索:explore 會攔截網路請求並分析 API 結構,synthesize 根據探索結果自動生成適配器,cascade 會嘗試五個層級的認證策略(PUBLIC → COOKIE → HEADER → SESSION → OAUTH),generate 則是一鍵完成從探索到註冊的全流程。

實際指令與輸出範例

以下是幾個常見的使用場景和對應指令:

場景 指令範例 輸出說明
抓取 HackerNews 熱門文章 opencli hackernews top --limit 5 公開 API,不需要瀏覽器
抓取 Bilibili 熱門影片 opencli bilibili hot -f json JSON 格式,可直接 pipe 給 jq 或 LLM
下載小紅書筆記 opencli xiaohongshu download abc123 自動轉為 Markdown,含配圖
下載 Twitter 使用者內容 opencli twitter download elonmusk --limit 20 含推文內容和媒體檔案
搜尋 Reddit 特定子版 opencli reddit hot --subreddit MachineLearning 結構化的貼文清單
查詢 Yahoo Finance 股價 opencli yahoo-finance quote --symbol AAPL 即時報價資料
控制 Electron 桌面應用 opencli cursor send "重構這個函數" 直接操作 Cursor IDE

所有指令都支援 --format 參數,可以輸出 table(預設)、json、yaml、csv、md 五種格式。對 AI Agent 來說,json 和 yaml 是最實用的,因為結構化資料可以直接解析,不需要額外的 Token 去理解非結構化的 HTML。


分層載入:為什麼 CLI 比 MCP 和 Skill 更省 Token

這是 OpenCLI 架構設計裡最聰明的一個決策。

傳統的 MCP(Model Context Protocol)做法是把所有工具的 schema 一次塞進 LLM 的 context window。如果你有 50 個工具,每個工具的 schema 平均 200 Token,光工具描述就佔掉 10,000 Token。而且這些 Token 每輪對話都要重複送。

Skill 檔案(像 Claude Code 的 SKILL.md)也有類似問題。一個完整的 Skill 說明可能有數百行,AI Agent 不管用不用得到,都要先讀完才能判斷。

OpenCLI 的做法是分層載入。AI Agent 的 AGENT.md 或 .cursorrules 裡只需要寫一行:「用 opencli list 查看可用工具。」Agent 真的要用工具時,先跑 opencli list 拿到指令清單(大概 200-300 Token),確認需要哪個站台的功能後,再跑 opencli <site> --help 拿到該站台的詳細參數說明。

這種按需載入的方式,讓 Agent 在處理 87 個以上站台的指令時,context window 裡只需要保留當前任務相關的幾百個 Token,而不是全部工具的完整描述。

載入方式 初始 Token 佔用 擴展成本
MCP 全量載入 5,000-15,000+ 每新增一個工具 +100-300 Token
Skill 全量載入 3,000-10,000+ 每個 Skill +200-500 Token
OpenCLI 分層載入 約 50(一行指示) 用到時才加載,約 200-500 Token

安裝與整合

安裝 OpenCLI 需要三個步驟。

第一,透過 npm 全域安裝主程式:

npm install -g @jackwener/opencli

第二,安裝 Chrome 擴充功能。到 GitHub Releases 頁面下載最新的 opencli-extension.zip,解壓後在 chrome://extensions 裡開啟開發者模式,點「載入未封裝項目」選擇解壓後的資料夾。

第三,整合到你的 AI Agent。如果是 Claude Code,安裝 Skill:

npx skills add jackwener/opencli

如果是 Cursor 或其他支援 AGENT.md 的工具,在設定檔裡加一行告訴 Agent 可以透過 opencli 存取網站資料就行了。

opencli doctor 可以一鍵診斷安裝狀態,確認 daemon、擴充功能和瀏覽器連線都正常。

OpenCLI 生態系:TypeScript 原版 vs. Rust 重寫版

OpenCLI 目前有兩個主要版本。原版由 jackwener 維護,用 TypeScript 寫成,是功能最完整的版本(v1.7.2,2026 年 4 月 11 日更新),有 87 個以上的適配器。

Rust 重寫版叫 AutoCLI,由 nashsu 開發。它跟原版功能對等,但效能提升很明顯:執行速度快 12 倍,記憶體用量少 10 倍,編譯後只有 4.7 MB 的單一 binary 檔案,零 runtime 依賴。如果你的 Agent 工作流對效能敏感,AutoCLI 是更好的選擇。

另一個值得關注的相關專案是香港大學(HKUDS)開發的 CLI-Anything。CLI-Anything 和 OpenCLI 的思路類似但目標不同:OpenCLI 專注於把網站和 Electron 應用 CLI 化,CLI-Anything 則是把專業軟體(GIMP、Blender、FFmpeg、LibreOffice)CLI 化,讓 AI Agent 可以直接操作這些軟體的完整功能。兩者可以互補。

比較項目 OpenCLI(TypeScript) AutoCLI(Rust) CLI-Anything
GitHub 星數 15,000+ 3,000+ 5,000+
適配器數量 87+ 網站 55+ 網站(持續增加) 專業軟體為主
執行速度 基準 12x 更快 依軟體而異
安裝大小 需要 Node.js 4.7 MB binary 需要 Python
主要用途 網站 + Electron 應用 網站 + Electron 應用 專業軟體 CLI 化
AI Agent 整合 Claude Code / Cursor / OpenClaw Claude Code / OpenClaw Claude Code / Codex / Copilot

這代表什麼:CLI 模式的結構性優勢

從 Browser Use 到 MCP 再到 CLI,AI Agent 操作外部系統的方式一直在演進。CLI 模式的結構性優勢在於三點。

確定性。同一個指令、同一組參數,每次跑出來的輸出 schema 都一樣。這讓 Agent 的後續處理邏輯可以寫死,不用每次都靠 LLM 去理解不同格式的回應。

可組合性。CLI 指令天然支援 pipe。opencli hackernews top -f json | jq '.[] | .title' 這樣的組合在 shell 裡直接就能跑。Agent 可以用 bash 腳本串聯多個指令,不需要 LLM 介入每一步。

零邊際成本。OpenCLI 在 runtime 不消耗 LLM Token。跑一萬次 opencli bilibili hot 的成本跟跑一次一樣——都是零。這對需要大量重複性資料擷取的工作流來說,差異非常大。

但 CLI 模式也有限制。它只能操作已經有適配器的網站。碰到沒有適配器的網站,要嘛用 opencli explore 生成新適配器(需要一定技術能力),要嘛退回 Browser Use 方案。另外,OpenCLI 的反偵測措施雖然比裸跑 Playwright 好很多,但對風控特別嚴格的平台(像是銀行、政府網站),還是有被偵測到的風險。


OpenCLI 目前支援哪些平台?

OpenCLI 內建 87 個以上的適配器,涵蓋社群媒體(Twitter/X、Reddit、Facebook、Instagram)、內容平台(Bilibili、YouTube、知乎、小紅書、微博)、開發者工具(HackerNews、V2EX)、電商平台(1688)、金融資訊(Yahoo Finance、雪球)和桌面應用(Cursor、Notion、ChatGPT、Antigravity)。完整清單可以用 opencli list 查看。

OpenCLI 和 MCP Server 有什麼不同?

MCP Server 透過 JSON Schema 定義工具介面,需要 LLM 在 context window 裡載入完整的工具描述。OpenCLI 是 CLI 介面,Agent 只需要知道指令名稱和參數就能執行,不佔用 context window。另一個差異是 MCP Server 需要另外部署和維護,OpenCLI 裝好就能用。

安裝 OpenCLI 需要什麼前置條件?

需要 Node.js 環境和 Chrome/Chromium 瀏覽器。大部分需要登入的平台指令(Bilibili、知乎、Twitter 等)要求你在 Chrome 裡已經登入對應網站。公開 API 的指令(HackerNews、V2EX)不需要瀏覽器。

OpenCLI 會不會導致帳號被封?

OpenCLI 內建多層反偵測機制,包括修補 webdriver 屬性、偽造 Chrome 物件和清除自動化痕跡。因為是複用你真實的 Chrome 登入態,而不是用自動化瀏覽器登入,風控被觸發的機率比傳統爬蟲方案低很多。但任何自動化操作都有風險,建議控制請求頻率,避免短時間內大量操作。

Rust 版 AutoCLI 跟 TypeScript 版有什麼差異?

功能完全對等,差異在效能:AutoCLI 快 12 倍、記憶體少 10 倍、編譯後只有 4.7 MB。如果你的工作流需要頻繁執行大量指令,或是在資源受限的環境(像 CI/CD pipeline)裡跑,AutoCLI 更適合。TypeScript 版的適配器數量目前比較多(87+ vs. 55+),生態也更成熟。

引用來源

Author Insight

我們團隊在把內容產出工作流從手動操作遷移到 Claude Code + MCP 架構的過程中,最大的痛點就是外部資料擷取。搭 MCP Server 來接 Twitter API 和 Reddit API,光 API key 管理和 rate limit 處理就花了不少時間,而且每個平台的 API 格式都不一樣,Agent 要花額外的 Token 去解析。

後來改用 OpenCLI 之後,外部資料擷取這一段幾乎不佔 context window 了。Agent 跑一行 opencli hackernews top -f json 就能拿到結構化資料,不用再透過 LLM 去理解 HTML。我們實測一個完整的內容研究任務(搜尋 5 個平台、擷取 20 篇相關內容),Token 消耗從原本的 15,000-20,000 降到 3,000-5,000,成本降了七成以上。

比較讓我在意的是安全面。OpenCLI 的反偵測機制做得不錯,但它本質上還是在操作你的瀏覽器。如果你的 Chrome 裡同時登入了很多敏感帳號,建議用 Chrome Profile 做隔離,或是在獨立的 Chromium 裡跑 OpenCLI 的任務。

如果你正在建構 AI Agent 工作流,想評估 OpenCLI 或 MCP 哪個方案更適合你的場景,歡迎跟 Tenten 團隊預約諮詢。我們最近協助幾家企業客戶設計了結合 Claude Code、OpenCLI 和 MCP Server 的混合架構,在不同場景下各取其長。

Share this post
Ewan Mak

I'm a Full Stack Developer with expertise in building modern web applications that fast, secure, and scalable. Crafting seamless user experiences with a passion for headless CMS, Vercel and Cloudflare

Loading...