Android アプリ(ノード)
サポート概要
- 役割:コンパニオンノードアプリ(Android は Gateway(ゲートウェイ)をホストしません)。
- Gateway 必須:はい(macOS、Linux、または Windows(WSL2 経由)で実行します)。
- インストール:Getting Started + Pairing。
- Gateway:Runbook + Configuration。
- プロトコル:Gateway protocol(ノード + コントロールプレーン)。
システム制御
システム制御(launchd / systemd)は Gateway ホスト上にあります。Gateway を参照してください。 Gateway を参照してください。 Gateway を参照してください。接続ランブック
Android ノードアプリ ⇄(mDNS / NSD + WebSocket)⇄ Gateway Android は Gateway WebSocket(デフォルトws://<host>:18789)に直接接続し、Gateway が所有するペアリングを使用します。
前提条件
- 「マスター」マシンで Gateway を実行できること。
- Android デバイス / エミュレーターが Gateway WebSocket に到達できること:
- mDNS / NSD を使用した同一 LAN、または
- Wide-Area Bonjour / unicast DNS-SD を使用した同一 Tailscale tailnet(下記参照)、または
- 手動でのゲートウェイホスト / ポート指定(フォールバック)
- ゲートウェイマシン上で CLI(
openclaw)を実行できること(または SSH 経由)。
1. Gateway を起動する
listening on ws://0.0.0.0:18789
- ゲートウェイホストの
~/.openclaw/openclaw.jsonにgateway.bind: "tailnet"を設定します。 - Gateway / macOS メニューバーアプリを再起動します。
2. 検出を確認する(任意)
ゲートウェイマシンから:unicast DNS-SD による Tailnet(Vienna ⇄ London)検出
Android NSD/mDNSの検出はネットワークを越えません。 Android の NSD / mDNS 検出はネットワークを越えられません。Android ノードと Gateway が異なるネットワーク上にあり、Tailscale で接続されている場合は、Wide-Area Bonjour / unicast DNS-SD を使用してください: Android の NSD / mDNS 検出はネットワークを越えられません。Android ノードと Gateway が異なるネットワーク上にあり、Tailscale で接続されている場合は、Wide-Area Bonjour / unicast DNS-SD を使用してください:- ゲートウェイホストに DNS-SD ゾーン(例:
openclaw.internal.)を設定し、_openclaw-gw._tcpレコードを公開します。 - 選択したドメインをその DNS サーバーに向けるよう、Tailscale の split DNS を設定します。
3. Android から接続する
Android アプリ内で:- アプリは フォアグラウンドサービス(永続通知)により Gateway への接続を維持します。
- Settings を開きます。
- Discovered Gateways から対象のゲートウェイを選択し、Connect をタップします。
- mDNS がブロックされている場合は、Advanced → Manual Gateway(ホスト + ポート)を使用し、Connect (Manual) を選択します。
- 手動エンドポイント(有効な場合)、それ以外は
- 最後に検出されたゲートウェイ(ベストエフォート)。
4. ペアリングを承認する(CLI)
ゲートウェイマシン上で:5. ノードが接続されていることを確認する
-
ノードステータスから:
-
Gateway から:
6. チャット + 履歴
Android ノードの Chat シートは、Gateway の primary session key(main)を使用するため、WebChat や他のクライアントと履歴および返信が共有されます:
- 履歴:
chat.history - 送信:
chat.send - プッシュ更新(ベストエフォート):
chat.subscribe→event:"chat"
7. Canvas + カメラ
Gateway Canvas Host(Web コンテンツ向けに推奨)
エージェントがディスク上のファイルを編集できる実際の HTML / CSS / JS をノードに表示したい場合は、ノードを Gateway の canvas host に向けてください。 注: ノードは Gateway HTTP サーバー(gateway.port と同じポート、デフォルトは 18789)からキャンバスを読み込みます。
-
ゲートウェイホスト上に
~/.openclaw/workspace/canvas/index.htmlを作成します。 - ノードからそれにアクセスします(LAN):
.local の代わりに MagicDNS 名または tailnet IP を使用します(例:http://<gateway-magicdns>:18793/__openclaw__/canvas/)。
このサーバーは、HTML にライブリロードクライアントを注入し、ファイル変更時にリロードします。
このサーバーは、HTML にライブリロードクライアントを注入し、ファイル変更時にリロードします。
このサーバーは HTML にライブリロードクライアントを注入し、ファイル変更時に再読み込みを行います。
A2UI ホストは http://<gateway-host>:18793/__openclaw__/a2ui/ にあります。
Canvas コマンド(フォアグラウンドのみ):
canvas.eval,canvas.snapshot,canvas.navigate(デフォルトの足場に戻るには{"url":""}または{"url":"/"}を使用します)。canvas.eval、canvas.snapshot、canvas.navigate(デフォルトのスキャフォールドに戻るには{"url":""}または{"url":"/"}を使用します)。canvas.snapshotは{ format, base64 }(デフォルトformat="jpeg")を返します。canvas.eval、canvas.snapshot、canvas.navigate(デフォルトのスキャフォールドに戻るには{"url":""}または{"url":"/"}を使用します)。canvas.snapshotは{ format, base64 }(デフォルトformat="jpeg")を返します。- A2UI:
canvas.a2ui.push、canvas.a2ui.reset(canvas.a2ui.pushJSONLはレガシーエイリアス)
camera.snap(jpg)camera.clip(mp4)