Chrome 拡張機能(ブラウザーリレー)¶
OpenClaw Chrome 拡張機能を使用すると、別の openclaw 管理 Chrome プロファイルを起動する代わりに、既存の Chrome タブ(通常使用している Chrome ウィンドウ)をエージェントが制御できます。
アタッチ/デタッチは、単一の Chrome ツールバーボタンで行います。
これは何か(コンセプト)¶
構成要素は 3 つあります。
- ブラウザー制御サービス(Gateway またはノード):エージェント/ツールが(Gateway 経由で)呼び出す API
- ローカルリレーサーバー(loopback 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 パッケージ)内に静的ファイルとして同梱されています。個別の「ビルド」手順はありません。 There is no separate “build” step.
OpenClaw をアップグレードした後は、次を実行します。
openclaw browser extension installを再実行して、OpenClaw の状態ディレクトリ配下にインストールされたファイルを更新します。- Chrome →
chrome://extensions→ 拡張機能の「再読み込み」をクリックします。
使用方法(追加設定なし)¶
OpenClaw には、既定ポートの拡張機能リレーを対象とする、chrome という名前の組み込みブラウザープロファイルが含まれています。
使用方法:
- CLI:
openclaw browser --browser-profile chrome tabs - エージェントツール:
browserをprofile="chrome"と併用
別の名前や別のリレーポートを使用したい場合は、独自のプロファイルを作成します。
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 と同じマシンで動作している場合、loopback 上でブラウザー制御サービスを起動し、リレーサーバーを自動起動します。拡張機能はローカルリレーと通信し、CLI/ツールの呼び出しは Gateway に送られます。 拡張はローカルリレーと通信し、CLI/toolコールはGatewayに送信されます。
リモート Gateway(Gateway が別マシンで動作)— ノードホストを起動¶
Gateway が別のマシンで動作している場合は、Chrome を実行しているマシンでノードホストを起動します。Gateway はブラウザー操作をそのノードにプロキシし、拡張機能とリレーはブラウザーマシン上にローカルで残ります。 ゲートウェイは、そのノードへのプロキシブラウザアクションを実行します。拡張 + リレーは、ブラウザマシンにローカルに残ります。
複数のノードが接続されている場合は、gateway.nodes.browser.node で 1 つを固定するか、gateway.nodes.browser.mode を設定してください。
サンドボックス化(ツールコンテナ)¶
エージェントセッションがサンドボックス化されている場合(agents.defaults.sandbox.mode != "off")、browser ツールは制限されることがあります。
- 既定では、サンドボックス化されたセッションはホストの Chrome ではなく、サンドボックスブラウザー(
target="sandbox")を対象にすることがよくあります。 - Chrome 拡張機能リレーの乗っ取りには、ホストのブラウザー制御サーバーを制御する必要があります。
選択肢:
- 最も簡単:サンドボックス化されていないセッション/エージェントから拡張機能を使用します。
- もしくは、サンドボックス化されたセッションに対してホストブラウザー制御を許可します。
{
agents: {
defaults: {
sandbox: {
browser: {
allowHostControl: true,
},
},
},
},
}
その後、ツールポリシーで拒否されていないことを確認し、必要に応じて browser を target="host" とともに呼び出してください。
デバッグ:openclaw sandbox explain
リモートアクセスのヒント¶
- Gateway とノードホストは同一の tailnet 上に配置し、リレーポートを LAN やパブリックインターネットに公開しないでください。
- ノードは意図的にペアリングし、リモート制御を望まない場合はブラウザープロキシルーティングを無効化してください(
gateway.nodes.browser.mode="off")。
「拡張機能パス」の仕組み¶
openclaw browser extension path は、拡張機能ファイルを含む インストール済み のオンディスクディレクトリを表示します。
CLI は意図的に node_modules パスを出力しません** 。 OpenClawの状態ディレクトリの下にある安定した場所に拡張機能をコピーするには、最初にopenclawブラウザー拡張インストール を実行してください。
そのインストールディレクトリを移動または削除すると、Chrome は有効なパスから再読み込みするまで拡張機能を破損したものとして扱います。
セキュリティ上の影響(必読)¶
これは強力で危険です。 これは非常に強力であり、リスクも伴います。モデルに「ブラウザーを直接操作する手」を与えるのと同等に扱ってください。
- 拡張機能は Chrome のデバッガー API(
chrome.debugger)を使用します。アタッチされると、モデルは次のことが可能になります。 接続されると、モデルは次のことができます: - そのタブでのクリック/入力/ナビゲーション
- ページ内容の読み取り
- そのタブのログイン済みセッションがアクセスできるあらゆるリソースへのアクセス
- これは専用の openclaw 管理プロファイルのように分離されていません。
- 日常利用のプロファイル/タブにアタッチすると、そのアカウント状態へのアクセスを許可することになります。
推奨事項:
- 拡張機能リレーの使用には、個人のブラウジングとは分離した専用の Chrome プロファイルを使用してください。
- Gateway およびノードホストは tailnet のみに限定し、Gateway の認証とノードのペアリングに依存してください。
- リレーポートを LAN に公開せず(
0.0.0.0)、Funnel(パブリック)も使用しないでください。 - リレーは拡張機能以外のオリジンをブロックし、CDP クライアントに対して内部認証トークンを要求します。
関連事項: