サポート概要
- 役割: companion node app(Android 自体は Gateway をホストしません)
- Gateway 必須: はい(macOS、Linux、または Windows + WSL2 上で実行)
- install: Getting Started + Pairing
- gateway: Runbook + Configuration
- protocol: Gateway protocol(nodes + control plane)
system 制御
system 制御(launchd / systemd)は Gateway host 側にあります。詳しくは Gateway を参照してください。接続 runbook
Android node app ⇄(mDNS / NSD + WebSocket)⇄ Gateway Android は Gateway WebSocket(デフォルトws://<host>:18789)へ直接接続し、device pairing(role: node)を使います。
前提条件
- “master” マシン上で Gateway を実行できる
- Android device / emulator から Gateway WebSocket へ到達できる
- 同一 LAN 上で mDNS / NSD を使う、または
- 同一 Tailscale tailnet 上で Wide-Area Bonjour / unicast DNS-SD を使う(後述)、または
- 手動で gateway host / port を指定する(fallback)
- Gateway マシン上で
openclawCLI を使える(または SSH 越しに実行できる)
1) Gateway を起動する
listening on ws://0.0.0.0:18789
- Gateway host 上の
~/.openclaw/openclaw.jsonにgateway.bind: "tailnet"を設定する - Gateway / macOS menubar app を再起動する
2) discovery を確認する(任意)
gateway machine 上で:tailnet(Vienna ⇄ London)での unicast DNS-SD discovery
Android の NSD / mDNS discovery はネットワーク境界を越えません。Android node と gateway が別ネットワーク上にあり、Tailscale で接続している場合は、代わりに Wide-Area Bonjour / unicast DNS-SD を使います。- gateway host 上に DNS-SD zone(例:
openclaw.internal.)を設定し、_openclaw-gw._tcprecord を公開する - その DNS server を向くように、選んだ domain の Tailscale split DNS を設定する
3) Android から接続する
Android app 側では:- app は foreground service(永続 notification)により gateway connection を維持します
- Connect タブを開く
- Setup Code または Manual mode を使う
- discovery が通らない場合は Advanced controls で手動 host / port を設定し、必要に応じて TLS / token / password も指定する
- manual endpoint が有効ならそれを使う
- そうでなければ、最後に検出した gateway へ best-effort で再接続する
4) pairing を承認する(CLI)
gateway machine 上で:5) node が接続済みか確認する
-
nodes status 経由:
-
Gateway 経由:
6) Chat と履歴
Android の Chat タブでは session selection をサポートしています(デフォルトのmain と、その他の既存 session を選択可能)。
- 履歴:
chat.history - 送信:
chat.send - push update(best-effort):
chat.subscribe→event:"chat"
7) Canvas と camera
Gateway Canvas Host(Web コンテンツ向け推奨)
agent が disk 上で編集できる本物の HTML / CSS / JS を node に表示したい場合は、node を Gateway canvas host へ向けます。 注: node は Gateway HTTP server(gateway.port と同じポート。デフォルト 18789)から canvas を読み込みます。
-
gateway host 上に
~/.openclaw/workspace/canvas/index.htmlを作成する - node をその URL へ移動する(LAN)
.local の代わりに MagicDNS 名または tailnet IP を使います。例: http://<gateway-magicdns>:18789/__openclaw__/canvas/
この server は HTML へ live-reload client を注入し、ファイル変更時に自動 reload します。A2UI host は http://<gateway-host>:18789/__openclaw__/a2ui/ にあります。
Canvas command(foreground 限定):
canvas.eval、canvas.snapshot、canvas.navigateデフォルト scaffold へ戻すには{"url":""}または{"url":"/"}を使います。canvas.snapshotは{ format, base64 }を返し、デフォルトのformatは"jpeg"です- A2UI:
canvas.a2ui.push、canvas.a2ui.reset(legacy alias:canvas.a2ui.pushJSONL)
camera.snap(jpg)camera.clip(mp4)
8) Voice と拡張 Android command surface
- Voice: Android は Voice タブで単一の mic on / off フローを使い、transcript capture と TTS playback を行います(ElevenLabs が設定されていればそれを使用し、なければ system TTS へ fallback します)。app が foreground を離れると Voice は停止します
- voice wake / talk-mode toggle は、現時点では Android の UX / runtime から削除されています
- 追加の Android command family(利用可否は device と permission に依存):
device.status、device.info、device.permissions、device.healthnotifications.list、notifications.actionsphotos.latestcontacts.search、contacts.addcalendar.events、calendar.addmotion.activity、motion.pedometer