全 CLI 架構。所有工具通過 Bash 呼叫,零 MCP 依賴,不佔常駐上下文。 核心原則:能用 HTTP 就不開瀏覽器,能用 opencli 就不用 browser-use。
MUST 從免費層開始。NEVER 直接跳到瀏覽器工具。
每次網頁任務按這個順序判斷,命中就停:
opencli <platform> <command>,跳過 WebFetch
判斷方法:URL 域名或使用者意圖命中已適配站點(opencli list 檢視完整列表,74 個站點 454 條命令)。
常見已適配平臺:twitter/x.com, zhihu, weibo, bilibili, hackernews, xiaohongshu, douyin, reddit, youtube, github, arxiv, bloomberg, linkedin, douban, jd, wikipedia, v2ex, tieba, spotify, steam, medium, substack, producthunt, stackoverflow, 36kr, weread, xueqiu 等。
這些平臺有專屬介面卡,返回結構化資料,比 web read 更準確更高效。opencli web read,$0,Cookie 零配置小蔥技能7w4.net有更新,你可以訪問看下。
firecrawl scrape "url"opencli operate,Cookie 零配置agent-browser,@e1 穩定引用browser-use -p "任務",$0.01-0.05/步zendriver違反順序 = 浪費錢或丟失資料。已適配平臺用 opencli web read 只能拿到 HTML,用 opencli <platform> 能拿到結構化欄位。
當 WebFetch 返回 403 或 302 到登入頁時 → 自動升級到 opencli web read,不要詢問使用者。
當 opencli web read 返回 exit 77 時 → SSO/Cookie 過期,MUST 停止降級,直接提示使用者回 Chrome 登入後重試。後續工具 (firecrawl/agent-browser) 也沒有登入態,繼續降級只是浪費。
當 opencli doctor 不是全 OK 時 → 降級到 WebSearch + WebFetch + browser-use,跳過 opencli 相關工具。
當任務需要填表但不確定表單欄位時 → 先用 opencli operate state 獲取可互動元素列表,確認欄位後再操作。
如果不確定用哪個工具 → 詢問使用者或從最便宜的 WebFetch 開始逐級升級。
已適配平臺 MUST 直接用 opencli <platform>,NEVER 走 WebFetch/web read 通路,otherwise 丟失結構化資料。
非已適配平臺 MUST 從 WebFetch 開始,otherwise 每個請求多花 $0.01-0.05 且速度慢 10 倍。
NEVER 用 browser-use 做簡單讀取,otherwise 一次 $0.05 的操作 WebFetch $0 就能完成。
不要跳過 opencli web read 直接用 Firecrawl,而是先試免費的 Cookie 路徑。
返回給使用者時 MUST 包含:
returns: 網頁內容 (Markdown) + 工具鏈路徑 + 失敗原因(如有)
收到任務
│
├─ 0. opencli 可用? → opencli doctor (3 個 OK)
│ 否 → 降級: WebSearch + WebFetch + browser-use
│
├─ 1. 目標是已適配平臺? (URL 域名 或 使用者意圖 命中 opencli list 中的站點)
│ 是 → 直接 opencli <platform> <command>,跳過 WebFetch/web read
│ 例: twitter/x.com → opencli twitter search/timeline/trending
│ zhihu.com → opencli zhihu hot/search/answer
│ bilibili.com → opencli bilibili search/hot/subtitle
│
├─ 2. 要搜尋(沒 URL,非已適配平臺)?
│ ├─ WebSearch (內建, 始終可用)
│ ├─ 深度搜索 → tavily search "query" --search-depth advanced
│ ├─ 獨立索引 → curl brave API
│ └─ fallback → opencli google search
│
├─ 3. 有 URL,非已適配平臺?
│ ├─ WebFetch ($0) → 403/SSO? → opencli web read ($0, Cookie 直連)
│ │ ├─ exit 77 (SSO 過期) → 停止降級,提示使用者回 Chrome 登入
│ │ └─ 其他失敗 (JS 不足/內容太短) → 繼續降級到 firecrawl
│ └─ JS 渲染/PDF/結構化 → firecrawl scrape "url"
│
├─ 4. 要互動?
│ ├─ ≤3 步 → opencli operate (Cookie 零配置, 17 個命令)
│ │ open → state → click/type/select/scroll → screenshot → close
│ ├─ 需要穩定引用/錄製/標註截圖 → agent-browser (60+ 命令)
│ │ open → snapshot -i → click @e1 → screenshot --annotate
│ ├─ AI 自主多步 → browser-use -p "自然語言任務"
│ └─ 未知 DOM → Stagehand act("點選登入")
│
├─ 5. 被反爬? → python -c "import zendriver as zd; ..."
│
└─ 全失敗 → 告知使用者具體原因和建議,NEVER 靜默失敗
| 當前工具返回 | 升級到 | 命令 |
|---|---|---|
| WebFetch → 403/302 登入頁 | opencli web read | opencli web read --url "url" |
| WebFetch → 空/SPA 空殼 | Firecrawl | firecrawl scrape "url" |
| opencli → exit 77 | 停止降級,提示使用者 | SSO 過期,後續工具也沒登入態,直接提示使用者回 Chrome 登入 |
| 需要點選/填表 | opencli operate | opencli operate open "url" && state |
| 編號 [N] 不穩定 | agent-browser | agent-browser snapshot -i → click @e1 |
| 多步複雜任務 | browser-use | browser-use -p "任務描述" |
| Cloudflare 攔截頁 | Zendriver | python3 -c "import zendriver..." |
# 內建 (始終可用)
WebSearch → Claude Code 內建,直接呼叫
# Tavily — AI 原生搜尋,返回 answer + results (免費 1000 次/月)
tavily search "query" # pip install tavily-python
tavily search "query" --search-depth advanced # 深度模式
tavily extract "https://url" # URL 內容提取
# Brave — 獨立索引,不依賴 Google/Bing
curl -s "https://api.search.brave.com/res/v1/web/search?q=query" \
-H "X-Subscription-Token: $BRAVE_API_KEY"
# Firecrawl — JS 渲染 + Markdown 提取 (免費 500 次)
firecrawl scrape "https://url" # pip install firecrawl
firecrawl crawl "https://url" --limit 10 # 批次
firecrawl map "https://url" # URL 發現
# 平臺搜尋 — 75 站點結構化資料
opencli twitter trending / zhihu hot / hackernews top / xiaohongshu search "旅行"
opencli list # 檢視所有介面卡
# opencli operate — 簡單互動,Cookie 零配置 (通過 Chrome Extension 直連)
opencli operate open "url"
opencli operate state # 可互動元素 [1][2][3]
opencli operate click 5 / type 3 "hello" / select 2 "選項A"
opencli operate scroll down / keys Enter / wait text "Success"
opencli operate screenshot /tmp/shot.png / network / close
# agent-browser — 複雜互動,@e1 Ref 引用 (基於 Accessibility Tree,頁面重渲染不變)
agent-browser open "url" && agent-browser snapshot -i
agent-browser click @e2 / fill @e3 "hello" # Ref 引用
agent-browser screenshot --annotate /tmp/a.png # 標註截圖
agent-browser record start # 錄製操作
agent-browser batch "click @e1 && wait 1000 && screenshot"
agent-browser --auto-connect snapshot # 連線已執行 Chrome
# 搭配 Lightpanda 省 token: snapshot ~500 token vs Chrome ~3000 token
# ./lightpanda serve --port 9222 && agent-browser connect 9222
# browser-use — AI 自主操作 (LLM 決策迴圈,每步 $0.01-0.05)
browser-use -p "去 example.com 註冊賬號" # 自然語言驅動
browser-use --connect -p "任務" # 連線已執行 Chrome
browser-use run --remote "任務" # 雲端執行
| 維度 | opencli operate | agent-browser |
|---|---|---|
| 場景 | ≤3 步簡單操作 | 複雜/精確操作 |
| 元素定位 | [N] 編號(頁面變了會變) | @e1 Ref(穩定,基於 ARIA role+name) |
| Cookie | Chrome Extension 直連,零配置 | --profile / --auto-connect |
| 標註截圖 | ❌ | ✅ --annotate(給視覺模型用) |
| 錄製回放 | ❌ | ✅ record(固定流程自動化) |
| 批次/DOM diff | ❌ | ✅ batch / diff |
| 核心替換 | ❌ | ✅ Lightpanda(省 80% token) |
| 命令數 | 17 | 60+ |
| iOS 測試 | ❌ | ✅ -p ios |
# 必裝
npm i -g @jackwener/opencli
# Chrome 裝 OpenCLI Browser Bridge: $(npm root -g)/@jackwener/opencli/extension
opencli doctor # 3 個 OK 才能用
# 按需 (全 CLI,不需要配 MCP)
npm i -g agent-browser # Ref 引用/錄製/標註截圖
> See references/ for extended content. 這個技能質量不錯,能幫你用最低成本完成各種網頁操作,從免費抓取到智慧瀏覽器都有覆蓋。它最大的優點是省錢——總是先用免費工具,不行再升級。文件寫得很詳細,示例豐富。不過它比較複雜,新手可能不容易上手;而且某些觸發詞太模糊,偶爾會誤判你的需求。總體來說瑕不掩瑜,是目前同類技能中設計最完善的一檔。