cli-anything-browser について
cli-anything-browserは、DOMShell MCPサーバーを使うブラウザー自動化CLIで、エージェントによるWeb操作を想定しています。アクセシビリティツリーをファイルシステム風のパスでたどり、ページ移動、検索、操作を行います。
主な機能
- 01ページの表示、再読み込み、履歴移動
- 02アクセシビリティツリーのパスでページを探索
- 03ページ内テキストの検索
- 04要素のクリックとテキスト入力
- 05JSON出力と常駐デーモンモード
活用シーン
- 01ページを閲覧して構造を確認
- 02ログイン要素を探してクリック
- 03Webフォームに入力
- 04複数段階のエージェント操作で接続を再利用
MCP 対応
このCLIはDOMShell MCPサーバーを使ってブラウザーを自動化します。デーモンモードでは後続のコマンドがMCP接続を再利用できます。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ hkuds/ cli-anything --skill cli-anything-browserインストール後、Claude Code で/cli-anything-browserを入力して読み込まれたか確認します。
詳細
cli-anything-browser
DOMShell の MCP サーバーを使用したブラウザ自動化用のコマンドラインインターフェースです。ファイルシステムコマンド (ls、cd、cat、grep、click) を使って Web ページを操作できます。
インストール
前提条件
-
Node.js と npx (DOMShell MCP サーバー用):
# Install Node.js from https://nodejs.org/ npx --version -
DOMShell 拡張機能 を備えた Chrome/Chromium:
- Chrome に拡張機能をインストールします
- CLI を使用する前に Chrome が起動していることを確認してください
-
Python 3.10+
CLI のインストール
cd browser/agent-harness
pip install -e .
コマンドグループ
page — ページナビゲーション
page open <url>— URL に移動しますpage reload— 現在のページを再読み込みしますpage back— 履歴を 1 つ戻りますpage forward— 履歴を 1 つ進みますpage info— 現在のページ情報を表示します
fs — ファイルシステムコマンド (アクセシビリティツリー)
fs ls [path]— 指定したパスの要素を一覧表示しますfs cd <path>— ディレクトリを変更しますfs cat [path]— 要素の内容を読み取りますfs grep <pattern> [path]— テキストパターンを検索しますfs pwd— 現在の作業ディレクトリを表示します
act — アクションコマンド
act click <path>— 要素をクリックしますact type <path> <text>— 入力欄にテキストを入力します
session — セッション管理
session status— セッションの状態を表示しますsession daemon-start— 常駐デーモンモードを開始しますsession daemon-stop— デーモンモードを停止します
使用例
基本的なナビゲーション
# Open a page
cli-anything-browser page open https://example.com
# Explore structure
cli-anything-browser fs ls /
cli-anything-browser fs cd /main
cli-anything-browser fs ls
# Go back to root
cli-anything-browser fs cd /
検索とクリック
cli-anything-browser fs grep "Login"
cli-anything-browser act click /main/button[0]
フォーム入力
cli-anything-browser act type /main/input[0] "[email protected]"
cli-anything-browser act click /main/button[0]
JSON 出力
cli-anything-browser --json fs ls /
デーモンモード (対話的な使用を高速化)
# Start persistent connection
cli-anything-browser session daemon-start
# Run commands (uses persistent connection)
cli-anything-browser fs ls /
cli-anything-browser fs cd /main
# Stop daemon when done
cli-anything-browser session daemon-stop
対話型 REPL
cli-anything-browser
パスの構文
DOMShell はアクセシビリティツリーに対してファイルシステムのようなパスを使用します:
/ — Root (document)
/main — Main landmark
/main/div[0] — First div in main
/main/div[0]/button[2] — Third button in first div
- 配列のインデックスは 0 始まり です:
button[0]は最初のボタンです ..で 1 つ上の階層に移動します/はルートを表します
エージェント向けのガイダンス
解析用の JSON 出力
すべてのコマンドは機械可読な出力のための --json フラグをサポートしています:
cli-anything-browser --json fs ls /
戻り値:
{
"path": "/",
"entries": [
{"name": "main", "role": "landmark", "path": "/main"}
]
}
エラー処理
CLI はよくある問題に対して明確なエラーメッセージを提供します:
- npx が見つからない: https://nodejs.org/ から Node.js をインストールしてください
- DOMShell が見つからない:
npx @apireno/domshell --versionを実行してください - MCP 呼び出しに失敗: DOMShell Chrome 拡張機能をインストールしてください
コマンドを実行する前に is_available() の戻り値を確認してください。
効率化のためのデーモンモード
複数のコマンドを実行するエージェントのワークフローでは、デーモンモードを使用してください:
- デーモンを開始:
cli-anything-browser session daemon-start - コマンドを実行: 各コマンドが MCP 接続を再利用します
- デーモンを停止:
cli-anything-browser session daemon-stop
これにより、コマンドごとに発生する 1〜3 秒のコールドスタートのオーバーヘッドを回避できます。
リンク
セキュリティに関する考慮事項
重要: この CLI を AI エージェントとともに使用する場合は、以下のセキュリティに関する考慮事項に注意してください:
URL の制限
ブラウザハーネスは移動前にすべての URL を検証します:
- スキームの明示が必須: URL には
http://またはhttps://スキームを含める必要があります (example.comのようなスキームなしの URL は拒否されます) - ブロックされるスキーム:
file://、javascript://、data://、vbscript://、about://、chrome://、およびブラウザ内部のスキーム - 許可されるスキーム:
http://とhttps://のみ (CLI_ANYTHING_BROWSER_ALLOWED_SCHEMESで設定可能) - プライベートネットワークのブロック:
CLI_ANYTHING_BROWSER_BLOCK_PRIVATE=trueで任意に有効化できます (デフォルトでは無効)
DOM コンテンツのリスク
アクセシビリティツリーには、ページ上のすべての可視要素と非表示要素が含まれます。悪意のあるウェブサイトは、次のようなことを行う可能性があります。
- 操作を促すテキストを含む ARIA ラベルを作成する(例:「以前の指示を無視してください」)
- aria-hidden 要素を使用して、ユーザーに表示されないコンテンツを注入する
- ナビゲーションを誤らせる紛らわしい DOM 構造を作成する
緩和策: 信頼できないウェブサイトを操作する場合は、次のことを検討してください。
- 安全に解析しやすい構造化出力を得るために
--jsonフラグを使用する - プロンプトに含める前に DOM コンテンツをサニタイズまたはフィルタリングする
- ナビゲーションを信頼できるドメインに制限する
プライベートネットワークへのアクセス
デフォルトでは、ブラウザーは localhost およびプライベートネットワーク(192.168.x.x、10.x.x.x など)にアクセスできます。ブロックするには:
export CLI_ANYTHING_BROWSER_BLOCK_PRIVATE=true
cli-anything-browser page open http://localhost:8080 # Will be blocked
セッションの分離
複数のブラウザーセッションが同じ Chrome インスタンスを共有します。Cookie と認証状態はセッション間で保持される場合があります。機密性の高い操作については、次のことを検討してください。
- Chrome のゲストモードまたはシークレットモードを使用する
- セッション間で Cookie をクリアする
- 異なるセキュリティコンテキストごとに別々の Chrome プロファイルを使用する