Chrome Extension
Chrome 拡張機能:OpenClaw に既存の Chrome タブを操作させる
OpenClaw Chrome 拡張機能により、エージェントは別の openclaw 管理の Chrome プロファイルを起動する代わりに、既存の Chrome タブ(通常の Chrome ウィンドウ)を制御できます。
アタッチ/デタッチは単一の Chrome ツールバーボタンで行われます。
これは何か(概念)
3つの部分があります:
- ブラウザ制御サービス(ゲートウェイまたはノード):エージェント/ツールが呼び出す API(ゲートウェイ経由)
- ''ローカルリレーサーバー''(ループバック CDP):制御サーバーと拡張機能の間をブリッジ(デフォルト ''http://127.0.0.1:18792'')
- ''Chrome MV3 拡張機能'':''chrome.debugger'' を使用してアクティブなタブにアタッチし、CDP メッセージをリレーにパイプ
その後、OpenClaw は通常の ''browser'' ツールサーフェスを通じてアタッチされたタブを制御します(適切なプロファイルを選択)。
インストール/読み込み(展開済み)
1. 拡張機能を安定したローカルパスにインストール:
openclaw browser extension install
2. インストールされた拡張機能のディレクトリパスを印刷:
openclaw browser extension path
3. Chrome → ''chrome://extensions''
- 「デベロッパーモード」を有効にする
- 「パッケージ化されていない拡張機能を読み込む」→ 上記で印刷されたディレクトリを選択
4. 拡張機能をピン留め。
更新(ビルドステップなし)
拡張機能は OpenClaw リリース(npm パッケージ)内に静的ファイルとして同梱されています。別の「ビルド」ステップはありません。
OpenClaw をアップグレードした後:
- ''openclaw browser extension install'' を再実行して、OpenClaw 状態ディレクトリ下のインストールファイルを更新。
- Chrome → ''chrome://extensions'' → 拡張機能の「再読み込み」をクリック。
Use it (no extra config)
OpenClaw には ''chrome'' という名前の組み込みブラウザプロファイルが付属しており、デフォルトポートで拡張リレーをターゲットにします。
Use it:
- 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 がそのタブを操作可能。
- ''…'':ローカルリレーに接続中。
- ''!'':リレーに到達できない(最も一般的:ブラウザリレーサーバーがこのマシンで実行されていない)。
''!'' が表示された場合:
- ゲートウェイがローカルで実行されていることを確認(デフォルト設定)、またはゲートウェイが別の場所で実行されている場合はこのマシンでノードホストを実行。
- 拡張機能のオプションページを開く;リレーが到達可能かどうかが表示されます。
リモートゲートウェイ(ノードホストを使用)
#
ローカルゲートウェイ(Chrome と同じマシン)— 通常**追加手順不要**
ゲートウェイが Chrome と同じマシンで実行されている場合、ループバックでブラウザ制御サービスを開始し、
リレーサーバーを自動的に開始します。拡張機能はローカルリレーと通信;CLI/ツール呼び出しはゲートウェイに送信されます。
#
リモートゲートウェイ(ゲートウェイが別の場所で実行)— **ノードホストを実行**
ゲートウェイが別のマシンで実行されている場合、Chrome を実行するマシンでノードホストを開始します。
ゲートウェイはブラウザアクションをそのノードにプロキシ;拡張機能とリレーはブラウザマシンにローカルに残ります。
複数のノードが接続されている場合、''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"'' で ''target="host"'' を呼び出します。
デバッグ:''openclaw sandbox explain''
リモートアクセスのヒント
- ゲートウェイとノードホストを同じ tailnet に維持;リレーポートを LAN やパブリックインターネットに公開しない。
- 意図的にノードをペアリング;リモート制御が不要な場合はブラウザプロキシルーティングを無効化(''gateway.nodes.browser.mode="off"'')。
「拡張パス」の仕組み
''openclaw browser extension path'' は拡張ファイルを含む''インストール済み''ディスク上のディレクトリを印刷します。
CLI は意図的に ''node_modules'' パスを印刷''しません''。常に最初に ''openclaw browser extension install'' を実行して、OpenClaw 状態ディレクトリ下の安定した場所に拡張機能をコピーしてください。
そのインストールディレクトリを移動または削除すると、有効なパスから再読み込みするまで Chrome は拡張機能を壊れているとマークします。
セキュリティへの影響(必読)
これは強力でリスクがあります。モデルに「ブラウザ上の手」を与えるようなものです。
- 拡張機能は Chrome のデバッガー API(''chrome.debugger'')を使用します。アタッチ時、モデルは:
- そのタブでクリック/入力/ナビゲート
- ページコンテンツを読み取る
- タブのログインセッションがアクセスできるものにアクセス
- これは専用の openclaw 管理プロファイルのように分離されていません。
- 日常使用のプロファイル/タブにアタッチすると、そのアカウント状態へのアクセスを許可することになります。
Recommendations:
- 拡張リレー使用には専用の Chrome プロファイル(個人ブラウジングとは別)を優先。
- ゲートウェイとノードホストを tailnet のみに維持;ゲートウェイ認証 + ノードペアリングに依存。
- LAN(''0.0.0.0'')経由でリレーポートを公開せず、Funnel(パブリック)を避ける。
- リレーは非拡張オリジンをブロックし、CDP クライアントに内部認証トークンを要求します。
Related:
- ブラウザツール概要:''ブラウザ''
- セキュリティ監査:''セキュリティ''
- Tailscale setup: ''Tailscale''