ブラウザ
ブラウザ (OpenClaw マネージド)
OpenClaw は、エージェントが制御する専用の Chrome/Brave/Edge/Chromium プロファイルを実行できます。これはあなたの個人用ブラウザから隔離されており、ゲートウェイ内の小さなローカル制御サービス(ループバックのみ)を通じて管理されます。初心者向けの見方:
- これを分離された、エージェント専用のブラウザと考えてください。
openclawプロファイルは、あなた の個人用ブラウザプロファイルに触れません。- エージェントは安全なレーン内でタブを開き、ページを読み、クリックし、タイプできます。
- デフォルトの
chromeプロファイルは、拡張機能リレーを介してシステムデフォルトの Chromium ブラウザを使用します。隔離されたマネージドブラウザにはopenclawに切り替えてください。
得られるもの
- openclaw という名前の分離されたブラウザプロファイル(デフォルトでオレンジ色のアクセント)。
- 決定論的なタブ制御(リスト表示/開く/フォーカス/閉じる)。
- エージェントアクション(クリック/タイプ/ドラッグ/選択)、スナップショット、スクリーンショット、PDF。
- オプションのマルチプロファイルサポート(
openclaw、work、remote、…)。
このブラウザは、あなたの日常的なブラウザではありません。エージェント自動化と検証のための安全で隔離された作業面です。
クイックスタート
openclaw browser --browser-profile openclaw status
openclaw browser --browser-profile openclaw start
openclaw browser --browser-profile openclaw open https://example.com
openclaw browser --browser-profile openclaw snapshot
「Browser disabled」と表示された場合は、設定で有効にして(下記参照)ゲートウェイを再起動してください。
プロファイル: openclaw 対 chrome
openclaw: マネージド、隔離されたブラウザ(拡張機能不要)。chrome: システムブラウザへの拡張機能リレー(OpenClaw 拡張機能がタブにアタッチされている必要があります)。
デフォルトでマネージドモードを使用したい場合は、browser.defaultProfile: "openclaw" を設定します。
設定
ブラ ウザ設定は ~/.openclaw/openclaw.json にあります。
{
browser: {
enabled: true, // デフォルト: true
ssrfPolicy: {
dangerouslyAllowPrivateNetwork: true, // デフォルトの信頼ネットワークモード
// allowPrivateNetwork: true, // 互換性のためのレガシーエイリアス
// hostnameAllowlist: ["*.example.com", "example.com"],
// allowedHostnames: ["localhost"],
},
// cdpUrl: "http://127.0.0.1:18792", // レガシー単一プロファイルオーバーライド
remoteCdpTimeoutMs: 1500, // リモート CDP HTTP タイムアウト (ms)
remoteCdpHandshakeTimeoutMs: 3000, // リモート CDP WebSocket ハンドシェイクタイムアウト (ms)
defaultProfile: "chrome",
color: "#FF4500",
headless: false,
noSandbox: false,
attachOnly: false,
executablePath: "/Applications/Brave Browser.app/Contents/MacOS/Brave Browser",
profiles: {
openclaw: { cdpPort: 18800, color: "#FF4500" },
work: { cdpPort: 18801, color: "#0066CC" },
remote: { cdpUrl: "http://10.0.0.42:9222", color: "#00AA00" },
},
},
}
注記:
- ブラウザ制御サービスは、
gateway.portから派生したポート(デフォルト:18791、これは gateway + 2)でループバックにバインドします。リレーは次のポート(18792)を使用します。 - ゲートウェイポート(
gateway.portまたはOPENCLAW_GATEWAY_PORT)をオーバーライドすると、派生するブラウザポートも同じ「ファミリー」に留まるようにシフトします。 cdpUrlは未設定の場合、リレーポートをデフォルトとします。remoteCdpTimeoutMsは、リモート(非ループバック)CDP の到達可能性チェックに適用されます。remoteCdpHandshakeTimeoutMsは、リモート CDP WebSocket の到達可能性チェックに適用されます。- ブラウザナビゲーション/タブオープンは、ナビゲーション前に SSRF ガードされ、ナビゲーション後の最終的な
http(s)URL に対してベストエフォートで再チェックされます。 browser.ssrfPolicy.dangerouslyAllowPrivateNetworkはデフォルトでtrue(信頼ネットワークモデル)です。厳密なパブリック専用ブラウジングのためにはfalseに設定してください。browser.ssrfPolicy.allowPrivateNetworkは、互換性のためのレガシーエイリアスとして引き続きサポートされます。attachOnly: trueは「ローカルブラウザを起動しない。既に実行されている場合にのみアタッチする」ことを意味します。colorとプロファイルごとのcolorは、どのプロファイルがアクティブかわかるようにブラウザ UI を着色します。- デフォルトプロファイルは
openclaw(OpenClaw マネージドスタンドアロンブラウザ)です。Chrome 拡張機能リレーを選択するにはdefaultProfile: "chrome"を使用します。 - 自動検出順序: Chromium ベースの場合はシステムデフォルトブラウザ、それ以外は Chrome → Brave → Edge → Chromium → Chrome Canary。
- ローカルの
openclawプロファイルはcdpPort/cdpUrlを自動割り当てします — これらはリモート CDP の場合にのみ設定してください。
Brave(または別の Chromium ベースブラウザ)を使用する
システムデフォルトのブラウザが Chromium ベース(Chrome/Brave/Edge など)の場合、OpenClaw は自動的にそれを使用します。自動検出をオーバーライドするには browser.executablePath を設定します: CLI 例:
openclaw config set browser.executablePath "/usr/bin/google-chrome"
// macOS
{
browser: {
executablePath: "/Applications/Brave Browser.app/Contents/MacOS/Brave Browser"
}
}
// Windows
{
browser: {
executablePath: "C:\\Program Files\\BraveSoftware\\Brave-Browser\\Application\\brave.exe"
}
}
// Linux
{
browser: {
executablePath: "/usr/bin/brave-browser"
}
}
ローカル制御とリモート制御
- ローカル制御 (デフォルト): ゲートウェイがループバック制御サービスを起動し、ローカルブラウザを起動できます。
- リモート制御 (ノードホスト): ブラウザがあるマシンでノードホストを実行します。ゲートウェイはブラウザアクションをそれにプロキシします。
- リモート CDP:
browser.profiles..cdpUrl(またはbrowser.cdpUrl)を設定して、リモートの Chromium ベースブラウザにアタッチします。この場合、OpenClaw はローカルブラウザを起動しません。
リモート CDP URL には認証を含めることができます:
- クエリトー クン(例:
https://provider.example?token=) - HTTP Basic 認証(例:
https://user:pass@provider.example)
OpenClaw は、/json/* エンドポイントを呼び出すときや CDP WebSocket に接続するときに認証情報を保持します。トークンは設定ファイルにコミットするのではなく、環境変数やシークレットマネージャーを使用することを推奨します。
ノードブラウザプロキシ(ゼロ設定デフォルト)
ブラウザがあるマシンでノードホストを実行する場合、OpenClaw は追加のブラウザ設定なしで、ブラウザツール呼び出しをそのノードに自動ルーティングできます。これはリモートゲートウェイのデフォルトパスです。注記:
- ノードホストは、そのローカルブラウザ制御サーバーをプロキシコマンド経由で公開します。
- プロファイルはノード自身の
browser.profiles設定(ローカルと同じ)から取得されます。 - 不要な場合は無効にできます:
- ノード側:
nodeHost.browserProxy.enabled=false - ゲートウェイ側:
gateway.nodes.browser.mode="off"
- ノード側:
Browserless(ホストされたリモート CDP)
Browserless は、HTTPS 経由で CDP エンドポイントを公開するホストされた Chromium サービスです。OpenClaw ブラウザプロファイルを Browserless リージョンエンドポイントに向け、API キーで認証できます。例:
{
browser: {
enabled: true,
defaultProfile: "browserless",
remoteCdpTimeoutMs: 2000,
remoteCdpHandshakeTimeoutMs: 4000,
profiles: {
browserless: {
cdpUrl: "https://production-sfo.browserless.io?token=<BROWSERLESS_API_KEY>",
color: "#00AA00",
},
},
},
}
注記:
<BROWSERLESS_API_KEY>を実際の Browserless トークンに置き換えてください。- Browserless アカウントに一致するリージョンエンドポイントを選択してください(ドキュメント参照)。
セキュリティ
重要な考え方:
- ブラウザ制御はループバックのみです。アクセスはゲートウェイの認証またはノードペアリングを経由します。
- ブラウザ制御が有効で認証が設定されていない場合、OpenClaw は起動時に
gateway.auth.tokenを自動生成し、設定に保存します。 - ゲートウェイとノードホストはプライベートネットワーク(Tailscale)上に保ち、公開暴露を避けてください。
- リモート CDP URL/トークンはシークレットとして扱い、環境変数やシークレットマネージャーを優先してください。
リモート CDP のヒント:
- 可能な限り HTTPS エンドポイントと短命トークンを優先してください。
- 設定ファイルに長寿命トークンを直接埋め込むのは避けてください。
プロファイル(マルチブラウザ)
OpenClaw は複数の名前付きプロファイル(ルーティング設定)をサポートします。プロファイルは以下のいずれかです:
- openclaw マネージド: 独自のユーザーデータディレクトリ + CDP ポートを持つ専用の Chromium ベースブラウザインスタンス
- リモート: 明示的な CDP URL(別の場所で実行されている Chromium ベースブラウザ)
- 拡張機能リレー: ローカルリレー + Chrome 拡張機能を介した既存の Chrome タブ
デフォルト:
openclawプロファイルは、存在しない場合に自動作成されます。chromeプロファイルは、Chrome 拡張機能リレー用に組み込まれています(デフォルトでhttp://127.0.0.1:18792を指します)。- ローカル CDP ポートはデフォルトで 18800–18899 から割り当てられます。
- プロファイルを削除すると、そのローカルデータディレクトリはゴミ箱に移動します。
すべての制御エンドポイントは ?profile= を受け入れます。CLI は --browser-profile を使用します。
Chrome 拡張機能リレー(既存の Chrome を使用)
OpenClaw は、ローカル CDP リレー + Chrome 拡張機能を介して既存の Chrome タブ(別の「openclaw」Chrome インスタンスなし)を駆動することもできます。完全ガイド: Chrome 拡張機能 フロー:
- ゲートウェイはローカル(同じマシン)で実行されるか、ノードホストがブラウザマシンで実行されます。
- ローカルリレーサーバーがループバック
cdpUrl(デフォルト:http://127.0.0.1:18792)でリッスンします。 - タブにアタッチするためにOpenClaw Browser Relay拡張機能アイコンをクリックします(自動アタッチはしません)。
- エージェントは適切なプロファイルを選択することで、通常の
browserツールを介してそのタブを制御します。
ゲートウェイが別の場所で実行される場合は、ゲートウェイがブラウザアクションをプロキシできるよ うに、ブラウザマシンでノードホストを実行します。
サンドボックス化されたセッション
エージェントセッションがサンドボックス化されている場合、browser ツールはデフォルトで target="sandbox"(サンドボックスブラウザ)になる可能性があります。Chrome 拡張機能リレーの引き継ぎにはホストブラウザ制御が必要なので、以下のいずれかを行います:
- セッションを非サンドボックスで実行する、または
agents.defaults.sandbox.browser.allowHostControl: trueを設定し、ツールを呼び出すときにtarget="host"を使用します。
セットアップ
- 拡張機能をロード(開発/アンパック):
openclaw browser extension install
- Chrome →
chrome://extensions→ 「デベロッパーモード」を有効化 - 「パッケージ化されていない拡張機能を読み込む」 →
openclaw browser extension pathで出力されたディレクトリを選択 - 拡張機能をピン留めし、制御したいタブでクリック(バッジに
ONと表示)。
- 使用:
- 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"
注記:
- このモードは、ほとんどの操作(スクリーンショット/スナップショット/アクション)に Playwright-on-CDP に依存します。
- 拡張機能アイコンをもう一度クリックしてデタッチします。
隔離保証
- 専用ユーザーデータディレクトリ: 個人用ブラウザプロファイルに触れることはありません。
- 専用ポート: 開発ワークフローとの衝突を防ぐため
9222を避けます。 - 決定論的タブ制御: 「最後のタブ」ではなく
targetIdでターゲットタブを指定します。
ブラウザ選択
ローカル起動時、OpenClaw は利用可能な最初のブラウザを選択します:
- Chrome
- Brave
- Edge
- Chromium
- Chrome Canary
browser.executablePath でオーバーライドできます。プラットフォーム:
- macOS:
/Applicationsと~/Applicationsをチェック。 - Linux:
google-chrome、brave、microsoft-edge、chromiumなどを検索。 - Windows: 一般的なインストール場所をチェック。
制御 API(オプション)
ローカル統合のみのために、ゲートウェイは小さなループバック HTTP API を公開します:
- ステータス/開始/停止:
GET /、POST /start、POST /stop - タブ:
GET /tabs、POST /tabs/open、POST /tabs/focus、DELETE /tabs/:targetId - スナップショット/スクリーンショット:
GET /snapshot、POST /screenshot - アクション:
POST /navigate、POST /act - フック:
POST /hooks/file-chooser、POST /hooks/dialog - ダウンロード:
POST /download、POST /wait/download - デバッグ:
GET /console、POST /pdf - デバッグ:
GET /errors、GET /requests、POST /trace/start、POST /trace/stop、POST /highlight - ネットワーク:
POST /response/body - 状態:
GET /cookies、POST /cookies/set、POST /cookies/clear - 状態:
GET /storage/:kind、POST /storage/:kind/set、POST /storage/:kind/clear - 設定:
POST /set/offline、POST /set/headers、POST /set/credentials、POST /set/geolocation、POST /set/media、POST /set/timezone、POST /set/locale、POST /set/device
すべてのエンドポイントは ?profile= を受け入れます。ゲートウェイ認証が設定されている場合、ブラウザ HTTP ルートも認証を要求します:
Authorization: Bearerx-openclaw-password:またはそのパスワードを使用した HTTP Basic 認証
Playwright 要件
一部の機能(ナビゲート/アクション/AI スナップショット/ロールスナップショット、要素スクリーンショット、PDF)には Playwright が必要です。Playwright がインストールされていない場合、それらのエンドポイントは明確な 501 エラーを返します。ARIA スナップショットと基本的なスクリーンショットは、openclaw マネージド Chrome では引き続き動作します。Chrome 拡張機能リレードライバーの場合、ARIA スナップショットとスクリーンショットには Playwright が必要です。Playwright is not available in this gateway build が表示された場合は、完全な Playwright パッケージ(playwright-core ではない)をインストールしてゲートウェイを再起動するか、ブラウザサポート付きで OpenClaw を再インストールしてください。
Docker Playwright インストール
ゲートウェイが Docker で実行されている場合、npx playwright(npm オーバーライド競合)は避けてください。代わりにバンドルされた CLI を使用します:
docker compose run --rm openclaw-cli \
node /app/node_modules/playwright-core/cli.js install chromium
ブラウザダウンロードを永続化するには、PLAYWRIGHT_BROWSERS_PATH(例: /home/node/.cache/ms-playwright)を設定し、/home/node が OPENCLAW_HOME_VOLUME またはバインドマウントを介して永続化されていることを確認してください。Docker を参照。
仕組み(内部)
高レベルフロー:
- 小さな制御サーバーが HTTP リクエストを受け付けます。
- CDP を介して Chromium ベースブラウザ(Chrome/Brave/Edge/Chromium)に接続します。
- 高度なアクション(クリック/タイプ/スナップショット/PDF)には、CDP 上で Playwright を使用します。
- Playwright がない場合、非 Playwright 操作のみが利用可能です。
この設計により、エージェントは安定した決定論的インターフェース上に保ちながら、ローカル/リモートブラウザやプロファイルを交換できます。