OpenClaw Android App einrichten: Verbindung zum Gateway
Kennst du das? Du versuchst, dein Smartphone in deinen lokalen Entwicklungs-Workflow einzubinden, aber die Verbindung zwischen Mobile-App und Desktop-Gateway fühlt sich oft wie ein Kampf gegen die Infrastruktur an. Meistens scheitert es an der Discovery oder komplizierten Pairing-Prozessen.
Hier erfährst du, wie du die Android-App als Node nutzt, um dein Device direkt mit dem OpenClaw-Ökosystem zu verbinden.
Android App (Node)
Abschnitt betitelt „Android App (Node)“Hinweis: Die Android-App wurde noch nicht öffentlich veröffentlicht. Der Quellcode ist im OpenClaw Repository unter
apps/androidverfügbar. Du kannst sie mit Java 17 und dem Android SDK selbst bauen (./gradlew :app:assembleDebug). Siehe apps/android/README.md für die Build-Anleitung.
Support-Snapshot
Abschnitt betitelt „Support-Snapshot“- Rolle: Companion Node App (Android hostet das Gateway nicht).
- Gateway erforderlich: Ja (führe es auf macOS, Linux oder Windows via WSL2 aus).
- Installation: Getting Started + Pairing.
- Gateway: Runbook + Configuration.
- Protokolle: Gateway protocol (Nodes + Control Plane).
Systemsteuerung
Abschnitt betitelt „Systemsteuerung“Die Systemsteuerung (launchd/systemd) läuft auf dem Gateway-Host. Siehe Gateway.
Verbindungs-Runbook
Abschnitt betitelt „Verbindungs-Runbook“Android node app ⇄ (mDNS/NSD + WebSocket) ⇄ Gateway
Android verbindet sich direkt mit dem Gateway WebSocket (Standard ws://<host>:18789) und nutzt Device-Pairing (role: node).
Voraussetzungen
Abschnitt betitelt „Voraussetzungen“- Du kannst das Gateway auf dem “Master”-Rechner ausführen.
- Das Android-Gerät oder der Emulator kann den Gateway WebSocket erreichen:
- Im selben LAN via mDNS/NSD, oder
- Im selben Tailscale-Netzwerk (Tailnet) via Wide-Area Bonjour / Unicast DNS-SD (siehe unten), oder
- Manuelle Eingabe von Gateway Host/Port (Fallback).
- Du kannst das CLI (
openclaw) auf dem Gateway-Rechner (oder via SSH) nutzen.
1) Gateway starten
Abschnitt betitelt „1) Gateway starten“openclaw gateway --port 18789 --verboseBestätige in den Logs, dass du etwas wie das hier siehst:
listening on ws://0.0.0.0:18789
Für Setups, die nur über das Tailnet laufen (empfohlen für Verbindungen wie Wien ⇄ London), binde das Gateway an die Tailnet-IP:
- Setze
gateway.bind: "tailnet"in~/.openclaw/openclaw.jsonauf dem Gateway-Host. - Starte das Gateway oder die macOS Menubar-App neu.
2) Discovery prüfen (optional)
Abschnitt betitelt „2) Discovery prüfen (optional)“Vom Gateway-Rechner aus:
dns-sd -B _openclaw-gw._tcp local.Weitere Debugging-Notizen: Bonjour.
Tailnet (Wien ⇄ London) Discovery via Unicast DNS-SD
Abschnitt betitelt „Tailnet (Wien ⇄ London) Discovery via Unicast DNS-SD“Die Android NSD/mDNS Discovery funktioniert nicht netzwerkübergreifend. Wenn dein Android-Node und das Gateway in verschiedenen Netzwerken sind, aber über Tailscale verbunden sind, nutze stattdessen Wide-Area Bonjour / Unicast DNS-SD:
- Richte eine DNS-SD Zone (z. B.
openclaw.internal.) auf dem Gateway-Host ein und veröffentliche_openclaw-gw._tcpRecords. - Konfiguriere Tailscale Split-DNS für deine gewählte Domain, die auf diesen DNS-Server zeigt.
Details und Beispiel für eine CoreDNS-Konfiguration: Bonjour.
3) Verbindung von Android aus herstellen
Abschnitt betitelt „3) Verbindung von Android aus herstellen“In der Android-App:
- Die App hält die Verbindung zum Gateway über einen Foreground Service (permanente Benachrichtigung) aufrecht.
- Öffne den Connect Tab.
- Nutze den Setup Code oder den Manual Modus.
- Falls die Discovery blockiert ist, verwende manuellen Host/Port (und TLS/Token/Passwort, falls erforderlich) in den Advanced controls.
Nach dem ersten erfolgreichen Pairing verbindet sich Android beim Start automatisch neu:
- Manueller Endpoint (falls aktiviert), ansonsten
- Das zuletzt gefundene Gateway (Best-Effort).
4) Pairing bestätigen (CLI)
Abschnitt betitelt „4) Pairing bestätigen (CLI)“Auf dem Gateway-Rechner:
openclaw devices listopenclaw devices approve <requestId>openclaw devices reject <requestId>Pairing-Details: Pairing.
5) Verbindung des Nodes prüfen
Abschnitt betitelt „5) Verbindung des Nodes prüfen“-
Über den Node-Status:
Terminal-Fenster openclaw nodes status -
Über das Gateway:
Terminal-Fenster openclaw gateway call node.list --params "{}"
6) Chat + History
Abschnitt betitelt „6) Chat + History“Der Android Chat Tab unterstützt die Auswahl von Sessions (Standard ist main, plus andere existierende Sessions):
- History:
chat.history - Senden:
chat.send - Push-Updates (Best-Effort):
chat.subscribe→event:"chat"
7) Canvas + Kamera
Abschnitt betitelt „7) Canvas + Kamera“Gateway Canvas Host (empfohlen für Web-Inhalte)
Abschnitt betitelt „Gateway Canvas Host (empfohlen für Web-Inhalte)“Wenn der Node echtes HTML/CSS/JS anzeigen soll, das der Agent auf der Festplatte bearbeiten kann, richte den Node auf den Gateway Canvas Host aus.
Hinweis: Nodes laden den Canvas vom Gateway HTTP-Server (gleicher Port wie gateway.port, Standard 18789).
-
Erstelle
~/.openclaw/workspace/canvas/index.htmlauf dem Gateway-Host. -
Navigiere den Node dorthin (LAN):
openclaw nodes invoke --node "<Android Node>" --command canvas.navigate --params '{"url":"http://<gateway-hostname>.local:18789/__openclaw__/canvas/"}'Tailnet (optional): Wenn beide Geräte im Tailscale-Netzwerk sind, nutze einen MagicDNS-Namen oder die Tailnet-IP anstatt .local, z. B. http://<gateway-magicdns>:18789/__openclaw__/canvas/.
Dieser Server injiziert einen Live-Reload-Client in das HTML und lädt bei Dateiänderungen neu.
Der A2UI-Host ist unter http://<gateway-host>:18789/__openclaw__/a2ui/ erreichbar.
Canvas-Befehle (nur im Vordergrund):
canvas.eval,canvas.snapshot,canvas.navigate(nutze{"url":""}oder{"url":"/"}, um zum Standard-Scaffold zurückzukehren).canvas.snapshotgibt{ format, base64 }zurück (Standardformat="jpeg").- A2UI:
canvas.a2ui.push,canvas.a2ui.reset(canvas.a2ui.pushJSONList ein Legacy-Alias).
Kamera-Befehle (nur im Vordergrund; Berechtigung erforderlich):
camera.snap(jpg)camera.clip(mp4)
Siehe Camera node für Parameter und CLI-Helper.
8) Voice + erweiterte Android-Befehle
Abschnitt betitelt „8) Voice + erweiterte Android-Befehle“- Voice: Android nutzt einen einfachen Mic On/Off Flow im Voice Tab mit Transkript-Erfassung und TTS-Wiedergabe (ElevenLabs falls konfiguriert, ansonsten System-TTS Fallback). Voice stoppt, wenn die App den Vordergrund verlässt.
- Voice Wake/Talk-Mode Toggles sind derzeit aus der Android UX/Runtime entfernt.
- Zusätzliche Android-Befehlsfamilien (Verfügbarkeit hängt vom Gerät und den Berechtigungen ab):
device.status,device.info,device.permissions,device.healthnotifications.list,notifications.actionsphotos.latestcontacts.search,contacts.addcalendar.events,calendar.addcallLog.searchmotion.activity,motion.pedometer
Nächste Schritte
Abschnitt betitelt „Nächste Schritte“OpenClaw Expert
Noch festgefahren?
Wenn diese Seite nicht hilft, frage OpenClaw Expert nach Schritt-fuer-Schritt-Loesungen.