agent-browser

AIエージェント向けに設計されたブラウザ自動化コマンドラインインターフェース。コンパクトなテキスト出力により、コンテキストの使用量を最小限に抑える。高速なRust CLIで、Node.jsのフォールバックも提供。

npm install -g agent-browser      # すべてのプラットフォーム(最速、ネイティブRust CLI)
brew install agent-browser        # macOS

# インストールせずに試すことも可能
npx agent-browser open example.com

機能

  • エージェント最適化 - テキスト出力はJSONよりもトークン数が少ないため、AIのコンテキスト効率に最適化されている
  • 参照ベース - スナップショットは各要素に一意の参照(ref)を持つアクセシビリティツリーを返すことで、要素選択を確定的に実現
  • 高速 - 即時なコマンドパースを実現するネイティブRust CLI
  • 完全機能 - 50以上ものコマンドでナビゲーション、フォーム操作、スクリーンショット、ネットワーク、ストレージなどをサポート
  • セッション管理 - 認証情報を分離した複数の独立したブラウザインスタンスを扱える
  • クロスプラットフォーム - ネイティブバイナリによるmacOS、Linux、Windows対応

互換性

Claude Code、Cursor、GitHub Copilot、OpenAI Codex、Google Gemini、opencode、およびシェルコマンドを実行可能なすべてのエージェントと連携可能。

# ナビゲートしてスナップショット取得
agent-browser open example.com
agent-browser snapshot -i

# 出力:
# - ヘディング "Example Domain" [ref=e1]
# - リンク "More information..." [ref=e2]

# 参照を使って操作
agent-browser click @e2
agent-browser screenshot page.png
agent-browser close

参照(refs)の利点

snapshot コマンドは、各要素に @e1@e2 のように一意の参照を持つコンパクトなアクセシビリティツリーを返す。これにより以下のような利点がある:

  • コンテキスト効率 - テキスト出力は約200~400トークン、フルDOMでは約3000~5000トークンに比べて大幅に削減
  • 確定的 - 参照はスナップショット内での正確な要素を指す
  • 高速 - 再度DOMをクエリする必要がない
  • LLMフレンドリー - LLMは自然にテキスト出力を解析できる

アーキテクチャ

最適なパフォーマンスを実現するクライアント・デーモン構造:

  1. Rust CLI - コマンドを解析し、デーモンと通信
  2. Node.js デーモン(デフォルト) - Playwrightによるブラウザインスタンスを管理
  3. ネイティブデーモン(実験的、--nativeオプション) - 直接CDPを使用する純正Rustデーモン。Node.js不要

デーモンは自動起動され、コマンド間で永続的に動作する。

対応プラットフォーム

macOS(ARM64、x64)、Linux(ARM64、x64)、Windows(x64)用のネイティブRustバイナリを提供。