ブラウザ

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
  1. インストールされた拡張機能ディレクトリのパスを表示します:
openclaw browser extension path
  1. Chrome → chrome://extensions
  • 「デベロッパーモード」を有効にする
  • 「パッケージ化されていない拡張機能を読み込む」 → 上記で表示されたディレクトリを選択
  1. 拡張機能をピン留めします。

アップデート(ビルドステップなし)

拡張機能は、静的ファイルとしてOpenClawリリース(npmパッケージ)内に同梱されています。別途「ビルド」ステップはありません。OpenClawをアップグレードした後:

  • OpenClawの状態ディレクトリ下のインストール済みファイルを更新するために、openclaw browser extension installを再実行します。
  • Chrome → chrome://extensions → 拡張機能の「リロード」をクリックします。

使用方法(ゲートウェイトークンを一度設定)

OpenClawには、デフォルトポートで拡張機能リレーをターゲットとするchromeという名前の組み込みブラウザプロファイルが付属しています。初回アタッチ前に、拡張機能のオプションを開き、以下を設定してください:

  • ポート(デフォルト18792
  • ゲートウェイトークンgateway.auth.token / OPENCLAW_GATEWAY_TOKENと一致する必要があります)

使用方法:

  • CLI: openclaw browser --browser-profile chrome tabs
  • エージェントツール: browserprofile="chrome"を指定

別の名前や別のリレーポートを使用したい場合は、独自のプロファイルを作成します:

openclaw browser create-profile \
  --name my-chrome \
  --driver extension \
  --cdp-url http://127.0.0.1:18792 \
  --color "#00AA00"

カスタムゲートウェイポート

カスタムゲートウェイポートを使用している場合、拡張機能リレーポートは自動的に導出されます:拡張機能リレーポート = ゲートウェイポート + 3 例:gateway.port: 19001の場合:

  • 拡張機能リレーポート: 19004(ゲートウェイ + 3)

拡張機能のオプションページで、導出されたリレーポートを使用するように拡張機能を設定してください。

アタッチ / デタッチ(ツールバーボタン)

  • OpenClawに制御させたいタブを開きます。
  • 拡張機能アイコンをクリックします。
    • アタッチされるとバッジにONと表示されます。
  • 再度クリックしてデタッチします。

どのタブを制御しますか?

  • 「現在見ているタブ」を自動的に制御するわけではありません
  • ツールバーボタンをクリックして明示的にアタッチしたタブのみを制御します。
  • 切り替えるには:別のタブを開き、そこで拡張機能アイコンをクリックします。

バッジ + 一般的なエラー

  • ON: アタッチ済み;OpenClawがそのタブを操作できます。
  • : ローカルリレーに接続中。
  • !: リレーに到達できない/認証されていない(最も一般的:リレーサーバーが実行されていない、またはゲートウェイトークンが欠落/間違っている)。

!が表示される場合:

  • ゲートウェイがローカルで実行されている(デフォルト設定)ことを確認するか、ゲートウェイが別の場所で実行されている場合はこのマシンでノードホストを実行します。
  • 拡張機能のオプションページを開きます;リレーの到達可能性とゲートウェイトークン認証を検証します。

リモートゲートウェイ(ノードホストを使用)

ローカルゲートウェイ(Chromeと同じマシン) — 通常は追加手順不要

ゲートウェイがChromeと同じマシンで実行されている場合、ループバック上でブラウザ制御サービスを開始し、リレーサーバーを自動起動します。拡張機能はローカルリレーと通信し、CLI/ツール呼び出しはゲートウェイに送信されます。

リモートゲートウェイ(ゲートウェイが別の場所で実行) — ノードホストを実行

ゲートウェイが別のマシンで実行されている場合は、Chromeを実行しているマシンでノードホストを開始します。ゲートウェイはブラウザアクションをそのノードにプロキシし、拡張機能とリレーはブラウザマシンにローカルに留まります。複数のノードが接続されている場合は、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,
        },
      },
    },
  },
}

その後、ツールがツールポリシーによって拒否されていないことを確認し、(必要に応じて)target="host"を指定してbrowserを呼び出します。デバッグ: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管理プロファイルのように分離されていません
    • 日常使用のプロファイル/タブにアタッチすると、そのアカウント状態へのアクセス権を付与することになります。

推奨事項:

  • 拡張機能リレーの使用には、個人のブラウジングとは別の専用Chromeプロファイルを優先してください。
  • ゲートウェイとすべてのノードホストをTailnet内のみに維持し、ゲートウェイ認証とノードペアリングに依存します。
  • リレーポートをLAN(0.0.0.0)経由で公開したり、Funnel(公開)を使用したりしないようにします。
  • リレーは拡張機能以外のオリジンをブロックし、/cdp/extensionの両方にゲートウェイトークン認証を要求します。

関連項目:

ブラウザログインブラウザトラブルシューティング