Conecta OpenClaw en Android: Guía de configuración rápida
¿Alguna vez has intentado conectar tu dispositivo móvil a un entorno de desarrollo local y has terminado frustrado por problemas de red o configuraciones manuales infinitas? Integrar un nodo de Android en tu flujo de trabajo debería ser algo directo, permitiéndote usar la potencia de tu teléfono sin complicaciones innecesarias.
Aquí tienes la guía para configurar y conectar la app de Android con tu Gateway.
Android App (Node)
Sección titulada «Android App (Node)»Nota: La app de Android aún no se ha lanzado públicamente. El código fuente está disponible en el repositorio OpenClaw bajo
apps/android. Puedes compilarla tú mismo usando Java 17 y el Android SDK (./gradlew :app:assembleDebug). Consulta apps/android/README.md para las instrucciones de compilación.
Resumen de soporte
Sección titulada «Resumen de soporte»- Rol: app de nodo complementaria (Android no aloja el Gateway).
- Gateway requerido: sí (ejecútalo en macOS, Linux o Windows mediante WSL2).
- Instalación: Getting Started + Pairing.
- Gateway: Runbook + Configuration.
- Protocolos: Gateway protocol (nodos + control plane).
Control del sistema
Sección titulada «Control del sistema»El control del sistema (launchd/systemd) reside en el host del Gateway. Consulta Gateway.
Guía de conexión
Sección titulada «Guía de conexión»Android node app ⇄ (mDNS/NSD + WebSocket) ⇄ Gateway
Android se conecta directamente al WebSocket del Gateway (por defecto ws://<host>:18789) y utiliza el emparejamiento de dispositivos (role: node).
Requisitos previos
Sección titulada «Requisitos previos»- Puedes ejecutar el Gateway en la máquina “maestra”.
- El dispositivo o emulador Android puede alcanzar el WebSocket del Gateway:
- Misma LAN con mDNS/NSD, o
- Misma tailnet de Tailscale usando Wide-Area Bonjour / unicast DNS-SD (ver abajo), o
- Host/puerto del Gateway manual (como alternativa).
- Puedes ejecutar la CLI (
openclaw) en la máquina del Gateway (o vía SSH).
1) Iniciar el Gateway
Sección titulada «1) Iniciar el Gateway»openclaw gateway --port 18789 --verboseConfirma en los logs que ves algo como:
listening on ws://0.0.0.0:18789
Para configuraciones exclusivas de tailnet (recomendado para conexiones tipo Viena ⇄ Londres), vincula el Gateway a la IP de la tailnet:
- Establece
gateway.bind: "tailnet"en~/.openclaw/openclaw.jsonen el host del Gateway. - Reinicia el Gateway o la app de la barra de menú de macOS.
2) Verificar el descubrimiento (opcional)
Sección titulada «2) Verificar el descubrimiento (opcional)»Desde la máquina del Gateway:
dns-sd -B _openclaw-gw._tcp local.Notas adicionales de depuración: Bonjour.
Descubrimiento en Tailnet (Viena ⇄ Londres) vía unicast DNS-SD
Sección titulada «Descubrimiento en Tailnet (Viena ⇄ Londres) vía unicast DNS-SD»El descubrimiento NSD/mDNS de Android no cruzará redes. Si tu nodo Android y el Gateway están en redes diferentes pero conectados vía Tailscale, usa Wide-Area Bonjour / unicast DNS-SD:
- Configura una zona DNS-SD (ejemplo
openclaw.internal.) en el host del Gateway y publica los registros_openclaw-gw._tcp. - Configura el split DNS de Tailscale para el dominio elegido apuntando a ese servidor DNS.
Detalles y ejemplo de configuración de CoreDNS: Bonjour.
3) Conectar desde Android
Sección titulada «3) Conectar desde Android»En la app de Android:
- La app mantiene viva su conexión al Gateway mediante un foreground service (notificación persistente).
- Abre la pestaña Connect.
- Usa el modo Setup Code o Manual.
- Si el descubrimiento está bloqueado, usa el host/puerto manual (y TLS/token/password cuando sea necesario) en Advanced controls.
Tras el primer emparejamiento exitoso, Android se reconecta automáticamente al iniciar:
- Endpoint manual (si está habilitado).
- El último Gateway descubierto (mejor esfuerzo).
4) Aprobar el emparejamiento (CLI)
Sección titulada «4) Aprobar el emparejamiento (CLI)»En la máquina del Gateway:
openclaw devices listopenclaw devices approve <requestId>openclaw devices reject <requestId>Detalles de emparejamiento: Pairing.
5) Verificar que el nodo está conectado
Sección titulada «5) Verificar que el nodo está conectado»-
Vía estado de los nodos:
Ventana de terminal openclaw nodes status -
Vía Gateway:
Ventana de terminal openclaw gateway call node.list --params "{}"
6) Chat + historial
Sección titulada «6) Chat + historial»La pestaña de Chat en Android permite seleccionar sesiones (por defecto main, además de otras sesiones existentes):
- Historial:
chat.history - Envío:
chat.send - Actualizaciones push (mejor esfuerzo):
chat.subscribe→event:"chat"
7) Canvas + cámara
Sección titulada «7) Canvas + cámara»Gateway Canvas Host (recomendado para contenido web)
Sección titulada «Gateway Canvas Host (recomendado para contenido web)»Si quieres que el nodo muestre HTML/CSS/JS real que el agente pueda editar en el disco, apunta el nodo al host del canvas del Gateway.
Nota: los nodos cargan el canvas desde el servidor HTTP del Gateway (mismo puerto que gateway.port, por defecto 18789).
-
Crea
~/.openclaw/workspace/canvas/index.htmlen el host del Gateway. -
Dirige el nodo hacia él (LAN):
openclaw nodes invoke --node "<Android Node>" --command canvas.navigate --params '{"url":"http://<gateway-hostname>.local:18789/__openclaw__/canvas/"}'Tailnet (opcional): si ambos dispositivos están en Tailscale, usa un nombre MagicDNS o la IP de la tailnet en lugar de .local, por ejemplo http://<gateway-magicdns>:18789/__openclaw__/canvas/.
Este servidor inyecta un cliente de live-reload en el HTML y recarga al detectar cambios en los archivos.
El host de A2UI se encuentra en http://<gateway-host>:18789/__openclaw__/a2ui/.
Comandos de Canvas (solo en primer plano):
canvas.eval,canvas.snapshot,canvas.navigate(usa{"url":""}o{"url":"/"}para volver al andamiaje por defecto).canvas.snapshotdevuelve{ format, base64 }(por defectoformat="jpeg").- A2UI:
canvas.a2ui.push,canvas.a2ui.reset(alias heredadocanvas.a2ui.pushJSONL).
Comandos de cámara (solo en primer plano; requiere permisos):
camera.snap(jpg)camera.clip(mp4)
Consulta Camera node para parámetros y utilidades de la CLI.
8) Voz + superficie de comandos de Android ampliada
Sección titulada «8) Voz + superficie de comandos de Android ampliada»- Voz: Android utiliza un flujo único de encendido/apagado de micrófono en la pestaña Voice con captura de transcripción y reproducción TTS (ElevenLabs si está configurado, o el TTS del sistema como alternativa). La voz se detiene cuando la app sale del primer plano.
- Los selectores de activación por voz (wake) y modo conversación (talk-mode) se han eliminado actualmente de la interfaz y el runtime de Android.
- Familias de comandos adicionales de Android (la disponibilidad depende del dispositivo y los permisos):
device.status,device.info,device.permissions,device.healthnotifications.list,notifications.actionsphotos.latestcontacts.search,contacts.addcalendar.events,calendar.addcallLog.searchmotion.activity,motion.pedometer
Siguientes pasos
Sección titulada «Siguientes pasos»OpenClaw Expert
Sigues atascado?
Si esta pagina no resolvio tu caso, pregunta a OpenClaw Expert para pasos concretos.