mcpField
B
browser-mate

browser-mate

github.com/glebisエージェントワークフロー40168 回インストール1 日前に更新
リポジトリ

browser-mate について

browser-mate は、ブラウザー自動化用の専用 Chrome インスタンスを起動・管理するスキルです。専用プロファイルとポートを使ってメインブラウザーを開いたままにし、agent-browser と連携して操作します。

主な機能

  1. 01専用デバッグ Chrome の起動・再利用
  2. 02名前付きブラウザープロファイルの管理
  3. 03インスタンス状態の確認と安全な停止
  4. 04実行間でのログイン状態の保持

活用シーン

  1. 01開いているタブを閉じずにサイトを自動操作
  2. 02自動化タスクごとにブラウザープロファイルを分離
  3. 03agent-browser を専用 Chrome セッションに接続

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/glebis/claude-skills --skill browser-mate

インストール後、Claude Code で/browser-mateを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

assets/
profiles.example.json
references/
agent-browser.md
scripts/
browser.py

詳細

browser-mate

非破壊的な Chrome 自動化です。解決する問題:CDP/agent-browser セッションをアタッチするには、Chrome を --remote-debugging-port 付きで実行する必要があります。real-browser スキルでは、まず Chrome Beta を終了させることでこれを実現しますが、ユーザーが開いているタブが失われます。これに対し、browser-mate は専用のデバッグ用 Chrome インスタンス(独自の --user-data-dir とポート)を起動し、ユーザーのメインブラウザーと共存させます。データディレクトリが異なれば Chrome は複数のインスタンスを同時に実行できるため、終了は不要です。

唯一の不変条件(決して破らないこと)

ブラウザーを終了したり、pkill や osascript quit を実行したりしてはいけません。 このスキルが行うのは、新しい専用インスタンスの起動、または既存インスタンスの再利用だけです。唯一の stop 処理では、専用の user_data_dir とデバッグポートの両方に一致するプロセスにのみ SIGTERM を送信し、ユーザーのブラウザーには決して送信しません。

使い方

# Ensure a profile's debug Chrome is up (launch or reuse); prints the PORT on stdout
PORT=$(python3 scripts/browser.py chatgpt)

# Then drive it with agent-browser (always pass --cdp $PORT). See references/agent-browser.md
SID=$(LC_ALL=C tr -dc 'a-z0-9' < /dev/urandom | head -c 6)
agent-browser --cdp $PORT --session $SID open "https://chatgpt.com/"
agent-browser --cdp $PORT --session $SID snapshot -i

その他のサブコマンド:

python3 scripts/browser.py list              # configured profiles
python3 scripts/browser.py status [profile]  # up/down
python3 scripts/browser.py stop chatgpt      # SIGTERM OUR instance only (graceful)

agent-browser の全コマンド(クリック、入力、アップロード、スクリーンショット、信頼性、アップグレード時の注意点)については、references/agent-browser.md を参照してください。

プロファイル

設定ファイル:~/.config/browser-mate/profiles.json(初回実行時に assets/profiles.example.json から自動作成されます)。各プロファイル:

{ "default": "automation",
  "profiles": {
    "automation": { "binary": "<chrome binary>", "user_data_dir": "~/.browser-mate/automation", "port": 9222 },
    "chatgpt":     { "binary": "<chrome binary>", "user_data_dir": "~/.browser-mate/chatgpt", "port": 9223, "default_url": "https://chatgpt.com/" }
  } }
  • 各プロファイルは独自のログイン状態を保持します。プロファイルごとに一度ログインすれば、その状態は保持されます。
  • JSON を編集してプロファイルを追加できます。一意のポートと専用の user_data_dir を指定してください(ランチャーは一意性を検証し、ユーザーの実際の Chrome プロファイルを指すディレクトリは拒否します)。

認証

パスワードは入力できず、入力してはいけません。初回ログイン時はプロファイルを起動してから、そのウィンドウで一度だけ手動でログインするようユーザーに依頼してください。セッションは以降のすべての実行で使えるよう、プロファイルの user_data_dir に保持されます。

安全性と制限

  • ループバックのみ。 デバッグポートは 127.0.0.1 にバインドされます(Chrome のデフォルト)。CDP には認証機能がありません。ローカルの誰もが操作できます。信頼できるマシンで使用し、--remote-debugging-address は決して渡さないでください。
  • 専用データディレクトリ。 プロファイルの user_data_dir にユーザーの実際の Chrome プロファイル(~/Library/Application Support/Google/Chrome*)を指定してはいけません。ランチャーはこれを拒否します。
  • ロック中のディレクトリ。 プロファイルのディレクトリがデバッグ用ではない Chrome ウィンドウですでに開かれている場合、ランチャーは終了させずに明示的なエラーで失敗します。
  • real-browser の起動手順を置き換えます。操作には引き続き agent-browser を使用します。

コメント