iOS App (Node)

Verfügbarkeit: Interne Vorschau. Die iOS-App ist noch nicht öffentlich verfügbar.

Was sie macht

  • Verbindet sich über WebSocket mit einem Gateway (LAN oder Tailnet).
  • Stellt Node-Funktionen bereit: Canvas, Screen-Snapshot, Kamera-Aufnahme, Standort, Talk-Modus, Sprachaktivierung.
  • Empfängt node.invoke-Befehle und meldet Node-Status-Events.

Voraussetzungen

  • Gateway läuft auf einem anderen Gerät (macOS, Linux oder Windows via WSL2).
  • Netzwerkverbindung:
    • Gleiches LAN via Bonjour, oder
    • Tailnet via Unicast DNS-SD (Beispiel-Domain: openclaw.internal.), oder
    • Manueller Host/Port (Fallback).

Schnellstart (Pairing + Verbindung)

  1. Starte das Gateway:
openclaw gateway --port 18789
  1. Öffne in der iOS-App die Einstellungen und wähle ein entdecktes Gateway aus (oder aktiviere Manual Host und gib Host/Port ein).

  2. Bestätige die Pairing-Anfrage auf dem Gateway-Host:

openclaw nodes pending
openclaw nodes approve <requestId>
  1. Prüfe die Verbindung:
openclaw nodes status
openclaw gateway call node.list --params ""

Discovery-Methoden

Bonjour (LAN)

Das Gateway sendet _openclaw-gw._tcp auf local.. Die iOS-App listet diese automatisch auf.

Tailnet (netzwerkübergreifend)

Wenn mDNS blockiert ist, nutze eine Unicast DNS-SD-Zone (wähle eine Domain; Beispiel: openclaw.internal.) und Tailscale Split DNS. Siehe Bonjour für das CoreDNS-Beispiel.

Manueller Host/Port

Aktiviere in den Einstellungen Manual Host und gib den Gateway-Host + Port ein (Standard: 18789).

Canvas + A2UI

Der iOS Node rendert ein WKWebView-Canvas. Nutze node.invoke, um es zu steuern:

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

Hinweise:

  • Der Gateway Canvas-Host stellt /__openclaw__/canvas/ und /__openclaw__/a2ui/ bereit.
  • Der iOS Node navigiert beim Verbinden automatisch zu A2UI, wenn eine Canvas-Host-URL verfügbar ist.
  • Kehre zum eingebauten Scaffold zurück mit canvas.navigate und {"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"}'

Sprachaktivierung + Talk-Modus

  • Sprachaktivierung und Talk-Modus sind in den Einstellungen verfügbar.
  • iOS kann Hintergrund-Audio pausieren; behandle Sprachfunktionen als Best-Effort, wenn die App nicht aktiv ist.

Häufige Fehler

  • NODE_BACKGROUND_UNAVAILABLE: Bring die iOS-App in den Vordergrund (Canvas/Kamera/Screen-Befehle benötigen das).
  • A2UI_HOST_NOT_CONFIGURED: Das Gateway hat keine Canvas-Host-URL gesendet; prüfe canvasHost in der Gateway-Konfiguration.
  • Pairing-Prompt erscheint nicht: Führe openclaw nodes pending aus und bestätige manuell.
  • Neuverbindung schlägt nach Neuinstallation fehl: Das Keychain-Pairing-Token wurde gelöscht; führe das Pairing erneut durch.

Verwandte Docs