iOSアプリ(ノード)

可用性:内部プレビュー。iOSアプリはまだ一般公開されていません。

機能

  • WebSocket経由でGatewayに接続(LANまたはtailnet)。
  • ノード機能を公開:Canvas、スクリーンスナップショット、カメラキャプチャ、ロケーション、トークモード、音声ウェイク。
  • node.invokeコマンドを受信し、ノードステータスイベントを報告。

要件

  • 別のデバイス(macOS、Linux、またはWSL2経由のWindows)で実行されているGateway。
  • ネットワークパス:
    • Bonjour経由の同一LAN、または
    • unicast DNS-SD経由のTailnet(例ドメイン:openclaw.internal.)、または
    • 手動ホスト/ポート(フォールバック)。

クイックスタート(ペアリング + 接続)

  1. Gatewayを起動:
openclaw gateway --port 18789
  1. iOSアプリでSettingsを開き、発見されたゲートウェイを選択(または手動ホストを有効にしてホスト/ポートを入力)。

  2. Gatewayホストでペアリングリクエストを承認:

openclaw nodes pending
openclaw nodes approve <requestId>
  1. 接続を確認:
openclaw nodes status
openclaw gateway call node.list --params "{}"

ディスカバリーパス

Bonjour(LAN)

Gatewayはlocal.上で_openclaw-gw._tcpをアドバタイズします。iOSアプリはこれらを自動的にリストします。

Tailnet(クロスネットワーク)

mDNSがブロックされている場合は、unicast DNS-SDゾーン(ドメインを選択;例:openclaw.internal.)とTailscale split DNSを使用します。 CoreDNSの例についてはBonjourを参照してください。

手動ホスト/ポート

SettingsでManual Hostを有効にし、ゲートウェイホスト + ポート(デフォルト18789)を入力します。

Canvas + A2UI

iOSノードはWKWebView canvasをレンダリングします。node.invokeを使用して駆動します:

openclaw nodes invoke --node "iOS Node" --command canvas.navigate --params '{"url":"http://<gateway-host>:18793/__openclaw__/canvas/"}'

注意:

  • Gateway canvas hostは/__openclaw__/canvas//__openclaw__/a2ui/を提供します。
  • iOSノードは、canvas hostのURLがアドバタイズされている場合、接続時にA2UIに自動的にナビゲートします。
  • canvas.navigate{"url":""}で組み込みスキャフォールドに戻ります。

Canvas eval / snapshot

openclaw nodes invoke --node "iOS Node" --command canvas.eval --params '{"javaScript":"(() => { const {ctx} = window.__openclaw; ctx.clearRect(0,0,innerWidth,innerHeight); ctx.lineWidth=6; ctx.strokeStyle=\"#ff2d55\"; ctx.beginPath(); ctx.moveTo(40,40); ctx.lineTo(innerWidth-40, innerHeight-40); ctx.stroke(); return \"ok\"; })()"}'
openclaw nodes invoke --node "iOS Node" --command canvas.snapshot --params '{"maxWidth":900,"format":"jpeg"}'

音声ウェイク + トークモード

  • 音声ウェイクとトークモードはSettingsで利用可能です。
  • iOSはバックグラウンドオーディオを一時停止する可能性があります;アプリがアクティブでない場合、音声機能はベストエフォートとして扱ってください。

一般的なエラー

  • NODE_BACKGROUND_UNAVAILABLE:iOSアプリをフォアグラウンドに持ってくる(canvas/camera/screenコマンドには必要)。
  • A2UI_HOST_NOT_CONFIGURED:Gatewayがcanvas host URLをアドバタイズしていない;Gateway設定canvasHostを確認してください。
  • ペアリングプロンプトが表示されない:openclaw nodes pendingを実行して手動で承認してください。
  • 再インストール後の再接続失敗:Keychainペアリングトークンがクリアされた;ノードを再ペアリングしてください。

関連ドキュメント