ノード
ノードとは、Gateway WebSocket(オペレーターと同一ポート)にrole: "node" で接続し、node.invoke を介して(例: canvas.*、camera.*、system.*)といったコマンドサーフェスを公開するコンパニオンデバイス(macOS/iOS/Android/ヘッドレス)です。プロトコルの詳細は次を参照してください: Gateway protocol。 Protocol details: Gateway protocol. Protocol details: Gateway protocol.
レガシートランスポート: Bridge protocol(TCP JSONL。現在のノードでは非推奨/削除済み)。
macOS は node mode でも実行できます。メニューバーアプリが Gateway の WS サーバーに接続し、ローカルの canvas/camera コマンドをノードとして公開します(そのため openclaw nodes … はこの Mac に対して動作します)。
注記:
- ノードは 周辺機器 であり、ゲートウェイではありません。ゲートウェイサービスは実行しません。 ゲートウェイサービスは実行されません。 ゲートウェイサービスは実行されません。
- Telegram/WhatsApp などのメッセージはノードではなく ゲートウェイ に到達します。
- トラブルシューティング手順書: /nodes/troubleshooting
ペアリング + ステータス
WS ノードはデバイスペアリングを使用します。 ノードはconnect 中にデバイスアイデンティティを提示し、Gateway は role: node 向けのデバイスペアリング要求を作成します。デバイスの CLI(または UI)から承認してください。 デバイスCLI(またはUI)経由で承認します。 デバイスCLI(またはUI)経由で承認します。
クイック CLI:
nodes statusは、そのデバイスペアリングロールにnodeが含まれる場合にノードを paired としてマークします。node.pair.*(CLI:openclaw nodes pending/approve/reject)は、ゲートウェイ所有の独立したノードペアリングストアであり、WS のconnectハンドシェイクを制御するものでは ありません。
Remote node host (system.run)
ゲートウェイがあるマシン上で動作し、コマンド 別のマシンで実行する場合はノードホスト を使用します。 Gateway があるマシンとは別のマシンでコマンドを実行したい場合は、node host を使用します。モデルは引き続き gateway と通信し、host=node が選択されていると、ゲートウェイは exec 呼び出しを node host に転送します。 Gateway があるマシンとは別のマシンでコマンドを実行したい場合は、node host を使用します。モデルは引き続き gateway と通信し、host=node が選択されていると、ゲートウェイは exec 呼び出しを node host に転送します。
What runs where
- Gateway host: メッセージを受信し、モデルを実行し、ツール呼び出しをルーティングします。
- Node host: ノードマシン上で
system.run/system.whichを実行します。 - Approvals:
~/.openclaw/exec-approvals.jsonを介して node host 上で強制されます。
Start a node host (foreground)
ノードマシン上で:Remote gateway via SSH tunnel (loopback bind)
Gateway がループバック(gateway.bind=loopback、ローカルモードのデフォルト)にバインドしている場合、リモートの node host は直接接続できません。SSH トンネルを作成し、トンネルのローカル端を node host に指定してください。 SSHトンネルを作成し、トンネルのローカル端に
ノードホストを指定します。
例(node host → gateway host):
- トークンはゲートウェイ設定の
gateway.auth.tokenです(ゲートウェイホスト上の~/.openclaw/openclaw.json)。 openclaw node runは認証のためにOPENCLAW_GATEWAY_TOKENを読み取ります。
Start a node host (service)
Pair + name
ゲートウェイホスト上で:openclaw node run/openclaw node install上の--display-name(ノード上の~/.openclaw/node.jsonに永続化されます)。openclaw nodes rename --node <id|name|ip> --name "Build Node"(ゲートウェイ側の上書き)。
Allowlist the commands
実行承認は node host ごと です。ゲートウェイから許可リストのエントリを追加します: 実行承認は node host ごと です。ゲートウェイから許可リストのエントリを追加します: 許可リストエントリをゲートウェイから追加:~/.openclaw/exec-approvals.json に保存されます。
Point exec at the node
デフォルトを設定します(ゲートウェイ設定):host=node を伴う任意の exec 呼び出しは、(ノードの許可リスト/承認に従って)node host 上で実行されます。
関連:
Invoking commands
低レベル(raw RPC):Screenshots (canvas snapshots)
ノードが Canvas(WebView)を表示している場合、canvas.snapshot は { format, base64 } を返します。
CLI ヘルパー(一時ファイルに書き込み、MEDIA:<path> を出力):
Canvas controls
canvas presentは URL またはローカルファイルパス(--target)を受け付け、位置指定用のオプションとして--x/--y/--width/--heightを指定できます。canvas evalはインライン JS(--js)または位置引数を受け付けます。
A2UI (Canvas)
- A2UI v0.8 JSONL のみがサポートされます(v0.9/createSurface は拒否されます)。
Photos + videos (node camera)
写真(jpg):
mp4):
canvas.*およびcamera.*を使用するには、ノードが フォアグラウンド である必要があります(バックグラウンド呼び出しはNODE_BACKGROUND_UNAVAILABLEを返します)。- クリップの長さは、過大な base64 ペイロードを避けるために制限されます(現在は
<= 60s)。 - Android では可能な場合に
CAMERA/RECORD_AUDIO権限の許可が求められます。拒否された場合は*_PERMISSION_REQUIREDで失敗します。
Screen recordings (nodes)
ノードはscreen.record(mp4)を公開します。例: 2026-02-08T09:22:13Z 2026-02-08T09:22:13Z
screen.recordにはノードアプリがフォアグラウンドである必要があります。- Android では録画前にシステムの画面キャプチャ確認が表示されます。
- 画面録画は
<= 60sに制限されます。 --no-audioはマイクキャプチャを無効化します(iOS/Android でサポート。macOS はシステムのキャプチャ音声を使用します)。- 複数ディスプレイがある場合は
--screen <index>を使用して表示を選択します。
Location (nodes)
設定で Location が有効な場合、ノードはlocation.get を公開します。
CLI ヘルパー:
- Location は デフォルトでオフ です。
- 「常に許可」にはシステム権限が必要です。バックグラウンド取得はベストエフォートです。
- レスポンスには、緯度/経度、精度(メートル)、タイムスタンプが含まれます。
SMS (Android nodes)
Android ノードは、ユーザーが SMS 権限を付与し、かつ端末が通話機能をサポートしている場合にsms.send を公開できます。
低レベル呼び出し:
- 機能がアドバタイズされる前に、Android 端末上で権限プロンプトを受諾する必要があります。
- 通話機能のない Wi‑Fi 専用デバイスは
sms.sendをアドバタイズしません。
System commands (node host / mac node)
macOS ノードはsystem.run、system.notify、system.execApprovals.get/set を公開します。
ヘッドレス node host は system.run、system.which、system.execApprovals.get/set を公開します。
macOS ノードは system.run、system.notify、system.execApprovals.get/set を公開します。
ヘッドレス node host は system.run、system.which、system.execApprovals.get/set を公開します。
ヘッドレスノードホストは system.run 、 system.which 、 system.execApprovals.get/set を公開します。
例:
system.runは stdout/stderr/exit code をペイロードに含めて返します。system.notifyは macOS アプリの通知権限の状態を尊重します。system.runは--cwd、--env KEY=VAL、--command-timeout、--needs-screen-recordingをサポートします。system.notifyは--priority <passive|active|timeSensitive>および--delivery <system|overlay|auto>をサポートします。- Nodeホストは
PATHの上書きを無視します。 追加のPATHエントリが必要な場合は、--env経由でPATHを渡すのではなく、nodeホストサービスの環境を設定する(または標準的な場所にツールをインストールする)ようにしてください。 - macOS の node mode では、
system.runは macOS アプリ内の実行承認(設定 → Exec approvals)によって制御されます。Ask/allowlist/full の挙動はヘッドレス node host と同一で、拒否されたプロンプトはSYSTEM_RUN_DENIEDを返します。 macOS の node mode では、system.runは macOS アプリ内の実行承認(設定 → Exec approvals)によって制御されます。Ask/allowlist/full の挙動はヘッドレス node host と同一で、拒否されたプロンプトはSYSTEM_RUN_DENIEDを返します。 Ask/allowlist/full はヘッドレスノードホストと同じ動作をします。拒否されたプロンプトはSYSTEM_RUN_DENIIEDを返します。 - ヘッドレス node host では、
system.runは実行承認(~/.openclaw/exec-approvals.json)によって制御されます。
Exec node binding
複数のノードが利用可能な場合、exec を特定のノードにバインドできます。 複数のノードが利用可能な場合、exec を特定のノードにバインドできます。 これによりexec host=node のデフォルトノードが設定されます(エージェントごとに上書き可能です)。
グローバルデフォルト:
Permissions map
ノードはnode.list / node.describe 内に permissions マップを含めることがあります。これは権限名(例: screenRecording、accessibility)をキーとし、ブール値(true = 付与済み)を値とします。
Headless node host (cross-platform)
OpenClaw は、Gateway WebSocket に接続しsystem.run / system.which を公開する ヘッドレス node host(UI なし)を実行できます。これは Linux/Windows 上、またはサーバーと並行して最小構成のノードを実行する場合に有用です。 これは、Linux/Windows
またはサーバーと一緒に最小限のノードを実行する場合に便利です。 これは、Linux/Windows
またはサーバーと一緒に最小限のノードを実行する場合に便利です。
起動方法:
- ペアリングは引き続き必要です(Gateway にノード承認プロンプトが表示されます)。
- node host は、ノード ID、トークン、表示名、ゲートウェイ接続情報を
~/.openclaw/node.jsonに保存します。 - 実行承認は
~/.openclaw/exec-approvals.jsonを介してローカルで強制されます (Exec approvals を参照)。 - macOS では、ヘッドレス node host は到達可能な場合にコンパニオンアプリの exec host を優先し、アプリが利用不可の場合はローカル実行にフォールバックします。アプリを必須にするには
OPENCLAW_NODE_EXEC_HOST=appを設定し、フォールバックを無効化するにはOPENCLAW_NODE_EXEC_FALLBACK=0を設定します。OPENCLAW_NODE_EXEC_HOST=appをアプリ 必要にするか、フォールバックを無効にするにはOPENCLAW_NODE_EXEC_FALLBACK=0を設定します。OPENCLAW_NODE_EXEC_HOST=appをアプリ 必要にするか、フォールバックを無効にするにはOPENCLAW_NODE_EXEC_FALLBACK=0を設定します。 - Gateway の WS が TLS を使用する場合は
--tls/--tls-fingerprintを追加してください。
Mac node mode
- macOS メニューバーアプリは、ノードとして Gateway WS サーバーに接続します(そのため
openclaw nodes …はこの Mac に対して動作します)。 - リモートモードでは、アプリが Gateway ポート用の SSH トンネルを開き、
localhostに接続します。