agent-browser — AIエージェント向けRust製ブラウザ自動化CLI
vercel-labs/agent-browser
★ 48,600 ・ Rust ・ Apache-2.0
概要
agent-browser は、AI エージェントがシェル経由でブラウザを 1 コマンドずつ操作できるように設計された、Rust 製のネイティブ CLI ツールです。Vercel Labs によって開発されています。
Web ページをアクセシビリティツリーベースのコンパクトなテキスト情報(スナップショット)として出力し、各要素に @e1 のような参照番号(ref)を付与します。AI エージェントはその参照番号をターゲットにクリックや入力などのアクションを実行し、再度スナップショットを取得して状態変化を確認しながらタスクを進める設計になっています。
LLM や自律型エージェントに Web ブラウジング機能を持たせたい開発者や、シェルベースでブラウザ操作を完結させたい環境に向いています。
主な特徴
- 参照番号(ref)を用いた操作:
snapshotコマンドで要素ごとに一意の参照番号(@e1など)が割り振られ、AI エージェントが迷わず要素を指定してアクションを実行できます。 - バックグラウンドデーモン方式: 初回コマンド実行時にデーモンが起動し、ブラウザの状態を維持します。エージェントは都度起動を待つことなく短いシェル呼び出しを繰り返せます。
- 失敗検知機能: 対象要素が非表示、無効化、ビューポート外、またはポップアップ等で遮られている場合、クリックは成功扱いにせずエラーを返すため、エージェント側で適切なリトライ判断が可能です。
- エージェント向けスキルの組み込み:
skills get coreなどでエージェント自身が操作プロンプトやコマンド仕様を取得できる仕組みが組み込まれており、Model Context Protocol(MCP)サーバーとしても動作可能です。 - 多彩なエンジン・プロバイダ対応: 標準の Chrome for Testing だけでなく、既存の Chrome への CDP 接続、Lightpanda や Obscura エンジン、iOS Simulator の Mobile Safari、各種クラウドブラウザ環境(Browserbase など)に対応しています。
使い方
インストール
npm または Homebrew を通じてインストールできます。
npm install -g agent-browser
agent-browser install # 初回のみ: Chrome for Testing をダウンロード
Homebrew の場合:
brew install agent-browser
agent-browser install
また、npx を使ってインストールなしで直接実行することも可能です。
npx agent-browser open example.com
基本的な操作手順
ページを開き、インタラクティブ要素を取得してクリックする一連の流れです。
# ページを開く
agent-browser open example.com
# 操作可能な要素のスナップショットを取得
agent-browser snapshot -i
# 出力例:
# - link "Learn more" [ref=e1]
# スナップショットで得られた ref を指定してクリック
agent-browser click @e1
# 現在の URL を取得して遷移を確認
agent-browser get url
# ブラウザを終了
agent-browser close
AI エージェントへの組み込み
エージェント用の指示セット(スキル)を CLI 自体から取得できます。
agent-browser skills get core
また、agent-browser mcp を実行することで、stdio 経由の MCP サーバーとして起動させることも可能です。
技術的なポイント
- Rust 製ネイティブバイナリ: CLI 自体は Rust で実装されており、macOS(ARM64/x64)、Linux(ARM64/x64、glibc/musl)、Windows(x64)向けのネイティブバイナリが提供されています。npm パッケージ経由でもホスト環境に応じた適切なバイナリが選択されます。
- CDP(Chrome DevTools Protocol)による制御: バックグラウンドで起動するデーモンが CDP を介してブラウザを直接制御します。コマンド受信がない状態が 1 時間続くとデーモンとヘッドレスブラウザは自動終了します。
- 柔軟なセレクタ: 参照番号(ref)だけでなく、CSS セレクタ、XPath、テキスト検索、セマンティックロケータ(
agent-browser find role button click --name "Submit"など)による操作もサポートしています。
注意点
- 参照番号(ref)の有効範囲: ref はスナップショット取得時点の状態を表す一時的なものです。ページ遷移や DOM の変化が発生した後は、再度スナップショットを取得する必要があります。
- 開発環境の要件: ソースコードからビルドする場合、Node.js 24 以上、pnpm 11 以上、および Rust の開発環境が必要です。
- ライセンス: Apache-2.0 ライセンスで公開されています。
まとめ
agent-browser は、AI エージェントがシェル上で扱いやすいよう最適化された Rust 製のブラウザ自動化 CLI です。アクセシビリティツリーを用いたテキストベースの把握と ref による的確な操作、MCP サーバー対応など、エージェント基盤への組み込みに適した設計となっています。





