Chrome拡張機能(ブラウザリレー)
OpenClaw Chrome拡張機能を使用すると、エージェントは別のopenclawが管理するChromeプロファイルを起動する代わりに、既存のChromeタブ(通常のChromeウィンドウ)を制御できます。
アタッチ/デタッチは 単一のChromeツールバーボタン で行われます。
コンセプト
3つのパートがあります:
- ブラウザ制御サービス(GatewayまたはNode): エージェント/ツールが呼び出すAPI(Gateway経由)
- ローカルリレーサーバー(ループバックCDP): 制御サーバーと拡張機能の間をブリッジ(デフォルトで http://127.0.0.1:18792)
- Chrome MV3拡張機能: chrome.debugger を使用してアクティブタブにアタッチし、CDPメッセージをリレーにパイプ
OpenClawは通常の browser ツールサーフェス(適切なプロファイルを選択)を通じてアタッチされたタブを制御します。
インストール/ロード(アンパック)
- 拡張機能を安定したローカルパスにインストール:
openclaw browser extension install
- インストールした拡張機能ディレクトリパスを表示:
openclaw browser extension path
- Chrome → chrome://extensions
- "デベロッパーモード"を有効化
- "パッケージ化されていない拡張機能を読み込む" → 上記で表示されたディレクトリを選択
- 拡張機能をピン留めします。
更新(ビルドステップなし)
拡張機能は静的ファイルとしてOpenClawリリース(npmパッケージ)内に同梱されています。別の「ビルド」ステップはありません。
OpenClawをアップグレード後:
- openclaw browser extension install を再実行して、OpenClaw状態ディレクトリ下のインストール済みファイルを更新します。
- Chrome → chrome://extensions → 拡張機能の"再読み込み"をクリック。
使用方法(追加設定不要)
OpenClawには、デフォルトポートの拡張リレーをターゲットとする chrome という名前のブラウザプロファイルが組み込まれています。
使用:
- CLI: openclaw browser --browser-profile chrome tabs
- エージェントツール: profile="chrome" で browser
別の名前や別のリレーポートが必要な場合は、独自のプロファイルを作成します:
openclaw browser create-profile \
--name my-chrome \
--driver extension \
--cdp-url http://127.0.0.1:18792 \
--color "#00AA00"
アタッチ/デタッチ(ツールバーボタン)
- OpenClawに制御させたいタブを開きます。
- 拡張アイコンをクリック。
- アタッチ時にバッジに ON が表示されます。
- もう一度クリックするとデタッチします。
どのタブを制御しますか?
- "見ているタブ"を自動的に制御 しません。
- ツールバーボタンをクリックして 明示的にアタッチしたタブのみ を制御します。
- 切り替えるには: 他のタブを開いてそこで拡張アイコンをクリックします。
バッジ + 一般的なエラー
- ON: アタッチ済み。OpenClawがそのタブを制御できます。
- …: ローカルリレーに接続中。
- !: リレーに到達できません(最も一般的: このマシンでブラウザリレーサーバーが実行されていません)。
! が表示される場合:
- Gatewayがローカルで実行されていることを確認(デフォルト設定)、またはGatewayが他の場所で実行されている場合はこのマシンでノードホストを実行します。
- 拡張機能のオプションページを開くと、リレーが到達可能かどうかが表示されます。
リモートGateway(ノードホストを使用)
ローカルGateway(Chromeと同じマシン) — 通常は 追加手順不要
GatewayがChromeと同じマシンで実行されている場合、ループバックでブラウザ制御サービスを起動し、リレーサーバーを自動起動します。拡張機能はローカルリレーと通信し、CLI/ツール呼び出しはGatewayに送られます。
リモートGateway(Gatewayが他の場所で実行) — ノードホストを実行
Gatewayが別のマシンで実行されている場合は、Chromeを実行するマシンでノードホストを起動します。 Gatewayはそのノードにブラウザアクションをプロキシします。拡張機能 + リレーはブラウザマシンのローカルのままです。
複数のノードが接続されている場合は、gateway.nodes.browser.node で1つをピン留めするか、gateway.nodes.browser.mode を設定します。
サンドボックス化(ツールコンテナ)
エージェントセッションがサンドボックス化されている場合(agents.defaults.sandbox.mode != "off")、browser ツールは制限される可能性があります:
- デフォルトでは、サンドボックス化されたセッションは サンドボックスブラウザ(target="sandbox")をターゲットにし、ホストChromeではありません。
- Chrome拡張リレーテイクオーバーには ホスト ブラウザ制御サーバーの制御が必要です。
オプション:
- 最も簡単: サンドボックス化されていない セッション/エージェントから拡張機能を使用します。
- または、サンドボックス化されたセッションのホストブラウザ制御を許可:
{
agents: {
defaults: {
sandbox: {
browser: {
allowHostControl: true
}
}
}
}
}
次に、ツールがツールポリシーで拒否されていないことを確認し、(必要に応じて)target="host" で browser を呼び出します。
デバッグ: openclaw sandbox explain
リモートアクセスのヒント
- Gatewayとノードホストを同じtailnetに保ち、リレーポートをLANや公開インターネットに公開しないでください。
- ノードを意図的にペアリングします。リモート制御が不要な場合はブラウザプロキシルーティングを無効にします(gateway.nodes.browser.mode="off")。
"extension path"の仕組み
openclaw browser extension path は、拡張ファイルを含む インストール済み のディスク上のディレクトリを表示します。
CLIは意図的に node_modules パスを表示 しません。常に最初に openclaw browser extension install を実行して、OpenClaw状態ディレクトリ下の安定した場所に拡張機能をコピーしてください。
そのインストールディレクトリを移動または削除すると、有効なパスから再ロードするまでChromeは拡張機能を壊れたものとしてマークします。
セキュリティ上の影響(これを読んでください)
これは強力で危険です。モデルに「ブラウザに手を与える」ようなものとして扱ってください。
- 拡張機能はChromeのデバッガーAPI(chrome.debugger)を使用します。アタッチされると、モデルは次のことができます:
- そのタブでクリック/入力/ナビゲート
- ページコンテンツを読み取る
- タブのログインセッションがアクセスできるものにアクセス
- これは専用のopenclawが管理するプロファイルのように 分離されていません。
- 日常使用のプロファイル/タブにアタッチすると、そのアカウント状態へのアクセスを許可することになります。
推奨事項:
- 拡張リレー使用には、個人ブラウジングとは別の専用Chromeプロファイルを優先してください。
- Gatewayとノードホストをtailnetのみに保ち、Gateway認証 + ノードペアリングに依存します。
- リレーポートをLAN(0.0.0.0)に公開せず、Funnel(公開)も避けます。
関連: