OpenCLIの1288コマンド中、拡張なしで動くのは376個だけだった
<!--
verification: firsthand(このセッションで @jackwener/opencli 1.8.6 を実際に npm install -g し、
doctor・list・hackernews/hf の public コマンド・reddit の cookie コマンドをすべて実行して生ログを確認した)
-->
はじめに
OpenCLIは、ウェブサイトやローカルアプリをコマンドラインから操作可能にするNode.js製CLIで、GitHubで2.68万スターを集めています[^opencli]。READMEには「100+ supported sites & commands」と書かれていますが、この「100+」がそのままヘッドレス環境(CIやクラウドのエージェントセッションのように、Chrome拡張を常駐させられない環境)で使える数を意味するとは限りません。実際にnpmでインストールし、コマンド一覧を出力させてタグ別に数えてみました。
対象読者は、OpenCLIをCIやクラウドのヘッドレス環境に組み込もうとしている方、および「100+ adapters」のうち拡張なしで動く範囲を先に知っておきたい方です。
TL;DR
- opencli list の末尾には「1275 built-in commands across 10 apps + 164 sites, 13 external CLIs」(計1288コマンド)という自己申告の集計が出ます
- サブコマンドには public / cookie / ui / local / intercept / installed / auto-install の7タグがあり、ブラウザ拡張なしで動く(public+local+外部CLI2種)のは376個、全体の29.2%でした
- 残り70.8%(cookie 724個 + ui 182個 + intercept 6個)はChrome拡張とログイン済みブラウザセッションが前提で、opencli doctor は拡張未接続を明示的に検出します
- 拡張なしで cookie タグのコマンドを実行しても即座にはエラーにならず、約30秒待たされてから BROWSER_CONNECT エラーが返ります
背景・課題
OpenCLIは「サイトをCLI化する」アダプタと、ローカルアプリ(Cursor・Discord・Antigravityなど)を操作するアダプタの2系統を持ちます。ブラウザ連携はChrome拡張(Browser Bridge)経由で、ログイン済みのCookieセッションをそのままCLIから使い回す設計になっています[^readme]。この設計自体は理にかなっていますが、拡張の常駐が前提にできないヘッドレス環境では、そもそもどのコマンドが動く対象なのかが README の「100+ adapters」という総数だけでは判断できません。
タグごとの実行経路を図にすると、拡張の有無で通る道が分かれます。
flowchart LR
U[opencli コマンド] --> D[ローカル daemon]
D -->|public / local / installed / auto-install<br/>376個| N[拡張なしで完結]
D -->|cookie / ui / intercept<br/>912個| E{Chrome拡張<br/>Browser Bridge}
E -->|接続あり| S[ログイン済みセッションで実行]
E -->|未接続| X[約30秒後に BROWSER_CONNECT]
やったこと
インストールとバージョン確認
npm install -g @jackwener/opencli
opencli --version
# => 1.8.6
npm registryの公開日は2026-07-03で、GitHub側の最新リリースタグと一致していました。
環境チェック
opencli doctor
opencli v1.8.6 doctor (node v22.22.2)
[OK] Daemon: running on port 19825 (v1.8.6)
[MISSING] Extension: not connected
[FAIL] Connectivity: failed (Browser Bridge extension not connected)
Issues:
• Daemon is running but the Chrome/Chromium extension is not connected.
If the extension is already installed, try: opencli daemon restart
If the extension is not installed:
1. Download from https://github.com/jackwener/opencli/releases
2. Open chrome://extensions/ → Enable Developer Mode
3. Click "Load unpacked" → select the extension folder
• Browser connectivity test failed: Browser Bridge extension not connected
doctor はdaemon(ローカルNode.jsプロセス)とChrome拡張を別々に判定しており、拡張がない状態では「daemonはOKだが拡張未接続」という中間状態がそのまま出力されます。ここで一律に落ちるわけではない点が、後述のコマンド分類につながります。
コマンド一覧をタグ別に集計する
opencli list > /tmp/opencli-list.txt
tail -1 /tmp/opencli-list.txt
grep -oE '\[[a-z-]+\]' /tmp/opencli-list.txt | sort | uniq -c | sort -rn
1275 built-in commands across 10 apps + 164 sites, 13 external CLIs
724 [cookie]
338 [public]
182 [ui]
25 [local]
11 [auto-install]
6 [intercept]
2 [installed]
opencli list の最終行に自己申告の集計(1275 + 13 = 1288コマンド)が出力されます。タグは7種類あり、public(ログイン不要)・local(ローカルアプリの状態読み取り)・installed/auto-install(Docker・GitHub CLIなど 既にインストール済みの外部CLIをそのまま呼ぶだけ でブラウザを介さない)の4タグ・376個(29.2%)はブラウザ拡張なしで動きます。残る cookie(ログイン済みセッション必須・724個)・ui(ブラウザUI操作・182個)・intercept(ブラウザ経由のネットワーク傍受・6個)の3タグ・912個(70.8%)は拡張が前提になります。同じ reddit アダプタ内でも hot・search・frontpage はすべて cookie タグで、匿名アクセス可能なエンドポイントが存在するサービスでも一律ログイン必須の扱いになっているケースがあります。
public タグを実行する
opencli hackernews top --limit 3
- rank: 1
id: 48943745
title: EEG shows brain can simultaneous encode two speech streams
score: 44
author: giuliomagnifico
comments: 15
url: https://journals.plos.org/plosbiology/article?id=10.1371/journal.pbio.3003876
- rank: 2
id: 48943142
title: How Has Roman Concrete Lasted for Millennia? 1,900-Year-Old Latrine Offers Clues
score: 94
author: divbzero
comments: 56
...
--format json / --format csv も指定でき、両方とも同じデータが構造化されて返ってくることを確認しました。
opencli hackernews top --limit 2 --format csv
rank,id,title,score,author,comments,url
1,48943745,EEG shows brain can simultaneous encode two speech streams,44,giuliomagnifico,15,https://journals.plos.org/plosbiology/article?id=10.1371/journal.pbio.3003876
2,48943142,"How Has Roman Concrete Lasted for Millennia? 1,900-Year-Old Latrine Offers Clues",94,divbzero,56,...
Hugging Faceの hf アダプタも同様に public タグで、拡張なしで即座にレスポンスが返ります。
opencli hf top --limit 3
- rank: 1
id: '2607.13285'
title: 'Harness Handbook: Making Evolving Agent Harnesses Readabl...'
upvotes: 176
authors: Ruhan Wang, Yucheng Shi, Zongxia Li et al.
cookie タグを拡張なしで実行するとどうなるか
timeout 40 opencli reddit hot --limit 3
ok: false
error:
code: BROWSER_CONNECT
message: Browser Bridge extension not connected
help: |-
Make sure Chrome/Chromium is open and the OpenCLI extension is enabled.
If not installed:
1. Download: https://github.com/jackwener/opencli/releases
2. Open chrome://extensions → Developer Mode → Load unpacked
exitCode: 69
エラーメッセージ自体は分かりやすいのですが、即座には返りません。timeout 15 で切ると単に Terminated になり、この構造化エラーは確認できませんでした。実際には30秒前後待ってからこのJSONが返ってきます。
ハマりポイント
「100+ adapters」の中身は一様ではない
READMEの「100+ supported sites & commands」を見て、ヘッドレスでも100種類前後は使えるものと考えていましたが、タグ別に数えると拡張なしで動く範囲は1288コマンド中376個にとどまりました。しかも同じアダプタ内で匿名OKなコマンドとログイン必須なコマンドが混在しており(12306の train/trains は public、reddit の hot/search は cookie)、アダプタ単位ではなくコマンド単位で opencli list の出力をタグでgrepしないと、実際にヘッドレスで使える範囲は分かりません。
cookieコマンドの失敗はタイムアウト設計に響く
cookie/ui タグのコマンドを拡張なしで叩くと、即時エラーではなく約30秒待ってから BROWSER_CONNECT を返します。CIパイプラインなどに組み込む場合、コマンドごとに短いタイムアウトを設定していると、この待ち時間の途中で強制終了され、BROWSER_CONNECT という診断しやすいエラーメッセージを取りこぼす可能性があります。
まとめ
- OpenCLI 1.8.6を実際にインストールして集計すると、1288コマンド(opencli list 自己申告の1275 built-in + 13 external CLIs)中ブラウザ拡張なしで動くのは public/local/installed/auto-install の4タグ・376個(29.2%)でした
- 残りの70.8%(cookie 724個 + ui 182個 + intercept 6個)はChrome拡張とログイン済みセッションが前提で、失敗時も即エラーにはならず約30秒待たされてから BROWSER_CONNECT が返ります
- ヘッドレス/CI環境で使う前提なら、opencli list の出力を全タグでgrepして使える範囲を先に洗い出しておくと手戻りが少なくなります
著者視点の発見ポイント
opencli doctor の出力を見た時点では「daemonはOKだが拡張未接続」という中間状態しか分からず、実際にどこまでのコマンドが使えるのかは判断できませんでした。opencli list の出力をタグでgrepして初めて、1288コマンドのうち3割弱しかヘッドレスで動かないという実数が見えました。README単体の「100+ adapters」という総数表記だけでは、ヘッドレス環境での実質的な利用可能範囲は測れません。
参考リンク
- jackwener/opencli — 本体リポジトリ。スター数・ライセンス・最新リリース日の確認元
- @jackwener/opencli - npm — インストール元・バージョン確認
[^opencli]: 2026-07-17時点のGitHubリポジトリ情報(26.8k stars, Apache-2.0, 最新リリース v1.8.6 / 2026-07-03)
[^readme]: jackwener/opencli README — Browser Bridge拡張によるログイン済みセッション連携の説明
Mentions
网上到处养鱼,用的不会是这个吧? jackwener/opencli
@francedot @_kvnloo @akshay_manglik @trycua @injaneity somehow i think this is extremely similar to opencli by @jakevin7 , which already has 30k stars jackwener/opencli
OpenCLIの1288コマンド中、拡張なしで動くのは376個だけだった <!-- verification: firsthand(このセッションで @jackwener/opencli 1.8.6 を実際に npm install -g し、 doctor・list・hackernews/hf の public コマンド・reddit の cookie コマンドをすべて実行して生ログを確認した) --> はじめに OpenCLIは、ウェブサイトやローカルアプリをコマンドラインから操作可能にするNode.js製CLIで、GitHubで2.68万スターを集めています[^opencli]。READMEには「100+ supported sites & commands」と書かれていますが、この「100+」がそのままヘッドレス環境(CIやクラウドのエージェントセッションのように、Chrome拡張を常駐させられない環境)で使える数を意味するとは限りません。実際にnpmでインストールし、コマンド一覧を出力させてタグ別に数えてみました。 対象読者は、OpenCLIをCIやクラウドのヘッドレス環境に組み込もうとしている方、および「100+ adapters」のうち拡張なしで動く範囲を先に知っておきたい方です。 TL;DR - opencli list の末尾には「1275 built-in commands across 10 apps + 164 sites, 13 external CLIs」(計1288コマンド)という自己申告の集計が出ます - サブコマンドには public / cookie / ui / local / intercept / installed / auto-install の7タグがあり、ブラウザ拡張なしで動く(public+local+外部CLI2種)のは376個、全体の29.2%でした - 残り70.8%(cookie 724個 + ui 182個 + intercept 6個)はChrome拡張とログイン済みブラウザセッションが前提で、opencli doctor は拡張未接続を明示的に検出します - 拡張なしで cookie タグのコマンドを実行しても即座にはエラーにならず、約30秒待たされてから BROWSER_CONNECT エラーが返ります 背景・課題 OpenCLIは「サイトをCLI化する」アダプタと、ローカルアプリ(Cursor・Discord・Antigravityなど)を操作するアダプタの2系統を持ちます。ブラウザ連携はChrome拡張(Browser Bridge)経由で、ログイン済みのCookieセッションをそのままCLIから使い回す設計になっています[^readme]。この設計自体は理にかなっていますが、拡張の常駐が前提にできないヘッドレス環境では、そもそもどのコマンドが動く対象なのかが README の「100+ adapters」という総数だけでは判断できません。 タグごとの実行経路を図にすると、拡張の有無で通る道が分かれます。 flowchart LR U[opencli コマンド] --> D[ローカル daemon] D -->|public / local / installed / auto-install<br/>376個| N[拡張なしで完結] D -->|cookie / ui / intercept<br/>912個| E{Chrome拡張<br/>Browser Bridge} E -->|接続あり| S[ログイン済みセッションで実行] E -->|未接続| X[約30秒後に BROWSER_CONNECT] やったこと インストールとバージョン確認 npm install -g @jackwener/opencli opencli --version # => 1.8.6 npm registryの公開日は2026-07-03で、GitHub側の最新リリースタグと一致していました。 環境チェック opencli doctor opencli v1.8.6 doctor (node v22.22.2) [OK] Daemon: running on port 19825 (v1.8.6) [MISSING] Extension: not connected [FAIL] Connectivity: failed (Browser Bridge extension not connected) Issues: • Daemon is running but the Chrome/Chromium extension is not connected. If the extension is already installed, try: opencli daemon restart If the extension is not installed: 1. Download from https://github.com/jackwener/opencli/releases 2. Open chrome://extensions/ → Enable Developer Mode 3. Click "Load unpacked" → select the extension folder • Browser connectivity test failed: Browser Bridge extension not connected doctor はdaemon(ローカルNode.jsプロセス)とChrome拡張を別々に判定しており、拡張がない状態では「daemonはOKだが拡張未接続」という中間状態がそのまま出力されます。ここで一律に落ちるわけではない点が、後述のコマンド分類につながります。 コマンド一覧をタグ別に集計する opencli list > /tmp/opencli-list.txt tail -1 /tmp/opencli-list.txt grep -oE '\[[a-z-]+\]' /tmp/opencli-list.txt | sort | uniq -c | sort -rn 1275 built-in commands across 10 apps + 164 sites, 13 external CLIs 724 [cookie] 338 [public] 182 [ui] 25 [local] 11 [auto-install] 6 [intercept] 2 [installed] opencli list の最終行に自己申告の集計(1275 + 13 = 1288コマンド)が出力されます。タグは7種類あり、public(ログイン不要)・local(ローカルアプリの状態読み取り)・installed/auto-install(Docker・GitHub CLIなど 既にインストール済みの外部CLIをそのまま呼ぶだけ でブラウザを介さない)の4タグ・376個(29.2%)はブラウザ拡張なしで動きます。残る cookie(ログイン済みセッション必須・724個)・ui(ブラウザUI操作・182個)・intercept(ブラウザ経由のネットワーク傍受・6個)の3タグ・912個(70.8%)は拡張が前提になります。同じ reddit アダプタ内でも hot・search・frontpage はすべて cookie タグで、匿名アクセス可能なエンドポイントが存在するサービスでも一律ログイン必須の扱いになっているケースがあります。 public タグを実行する opencli hackernews top --limit 3 - rank: 1 id: 48943745 title: EEG shows brain can simultaneous encode two speech streams score: 44 author: giuliomagnifico comments: 15 url: https://journals.plos.org/plosbiology/article?id=10.1371/journal.pbio.3003876 - rank: 2 id: 48943142 title: How Has Roman Concrete Lasted for Millennia? 1,900-Year-Old Latrine Offers Clues score: 94 author: divbzero comments: 56 ... --format json / --format csv も指定でき、両方とも同じデータが構造化されて返ってくることを確認しました。 opencli hackernews top --limit 2 --format csv rank,id,title,score,author,comments,url 1,48943745,EEG shows brain can simultaneous encode two speech streams,44,giuliomagnifico,15,https://journals.plos.org/plosbiology/article?id=10.1371/journal.pbio.3003876 2,48943142,"How Has Roman Concrete Lasted for Millennia? 1,900-Year-Old Latrine Offers Clues",94,divbzero,56,... Hugging Faceの hf アダプタも同様に public タグで、拡張なしで即座にレスポンスが返ります。 opencli hf top --limit 3 - rank: 1 id: '2607.13285' title: 'Harness Handbook: Making Evolving Agent Harnesses Readabl...' upvotes: 176 authors: Ruhan Wang, Yucheng Shi, Zongxia Li et al. cookie タグを拡張なしで実行するとどうなるか timeout 40 opencli reddit hot --limit 3 ok: false error: code: BROWSER_CONNECT message: Browser Bridge extension not connected help: |- Make sure Chrome/Chromium is open and the OpenCLI extension is enabled. If not installed: 1. Download: https://github.com/jackwener/opencli/releases 2. Open chrome://extensions → Developer Mode → Load unpacked exitCode: 69 エラーメッセージ自体は分かりやすいのですが、即座には返りません。timeout 15 で切ると単に Terminated になり、この構造化エラーは確認できませんでした。実際には30秒前後待ってからこのJSONが返ってきます。 ハマりポイント 「100+ adapters」の中身は一様ではない READMEの「100+ supported sites & commands」を見て、ヘッドレスでも100種類前後は使えるものと考えていましたが、タグ別に数えると拡張なしで動く範囲は1288コマンド中376個にとどまりました。しかも同じアダプタ内で匿名OKなコマンドとログイン必須なコマンドが混在しており(12306の train/trains は public、reddit の hot/search は cookie)、アダプタ単位ではなくコマンド単位で opencli list の出力をタグでgrepしないと、実際にヘッドレスで使える範囲は分かりません。 cookieコマンドの失敗はタイムアウト設計に響く cookie/ui タグのコマンドを拡張なしで叩くと、即時エラーではなく約30秒待ってから BROWSER_CONNECT を返します。CIパイプラインなどに組み込む場合、コマンドごとに短いタイムアウトを設定していると、この待ち時間の途中で強制終了され、BROWSER_CONNECT という診断しやすいエラーメッセージを取りこぼす可能性があります。 まとめ - OpenCLI 1.8.6を実際にインストールして集計すると、1288コマンド(opencli list 自己申告の1275 built-in + 13 external CLIs)中ブラウザ拡張なしで動くのは public/local/installed/auto-install の4タグ・376個(29.2%)でした - 残りの70.8%(cookie 724個 + ui 182個 + intercept 6個)はChrome拡張とログイン済みセッションが前提で、失敗時も即エラーにはならず約30秒待たされてから BROWSER_CONNECT が返ります - ヘッドレス/CI環境で使う前提なら、opencli list の出力を全タグでgrepして使える範囲を先に洗い出しておくと手戻りが少なくなります 著者視点の発見ポイント opencli doctor の出力を見た時点では「daemonはOKだが拡張未接続」という中間状態しか分からず、実際にどこまでのコマンドが使えるのかは判断できませんでした。opencli list の出力をタグでgrepして初めて、1288コマンドのうち3割弱しかヘッドレスで動かないという実数が見えました。README単体の「100+ adapters」という総数表記だけでは、ヘッドレス環境での実質的な利用可能範囲は測れません。 参考リンク - jackwener/opencli — 本体リポジトリ。スター数・ライセンス・最新リリース日の確認元 - @jackwener/opencli - npm — インストール元・バージョン確認 [^opencli]: 2026-07-17時点のGitHubリポジトリ情報(26.8k stars, Apache-2.0, 最新リリース v1.8.6 / 2026-07-03) [^readme]: jackwener/opencli README — Browser Bridge拡張によるログイン済みセッション連携の説明
让网站也拥有命令行入口。 OpenCLI 可通过浏览器扩展操作已登录的 Chrome 页面,支持点击、填表和提取数据,还能用站点适配器执行重复任务。适合自动化开发者。 jackwener/OpenCLI #BrowserAutomation #CLI
OpenCLI 配 grok bot 确实爽! jackwener/OpenCLI t.co
用 OpenCli 做自动化,实在是太强了。这样连 For you 都可以抓到。比用 API 还爽。感谢作者 @jakevin7 jackwener/opencli