Ir al contenido

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.

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.

El control del sistema (launchd/systemd) reside en el host del Gateway. Consulta Gateway.

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).

  • 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).
Ventana de terminal
openclaw gateway --port 18789 --verbose

Confirma 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.json en el host del Gateway.
  • Reinicia el Gateway o la app de la barra de menú de macOS.

Desde la máquina del Gateway:

Ventana de terminal
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:

  1. Configura una zona DNS-SD (ejemplo openclaw.internal.) en el host del Gateway y publica los registros _openclaw-gw._tcp.
  2. Configura el split DNS de Tailscale para el dominio elegido apuntando a ese servidor DNS.

Detalles y ejemplo de configuración de CoreDNS: Bonjour.

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).

En la máquina del Gateway:

Ventana de terminal
openclaw devices list
openclaw devices approve <requestId>
openclaw devices reject <requestId>

Detalles de emparejamiento: Pairing.

  • Vía estado de los nodos:

    Ventana de terminal
    openclaw nodes status
  • Vía Gateway:

    Ventana de terminal
    openclaw gateway call node.list --params "{}"

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"

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).

  1. Crea ~/.openclaw/workspace/canvas/index.html en el host del Gateway.

  2. Dirige el nodo hacia él (LAN):

Ventana de terminal
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.snapshot devuelve { format, base64 } (por defecto format="jpeg").
  • A2UI: canvas.a2ui.push, canvas.a2ui.reset (alias heredado canvas.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.health
    • notifications.list, notifications.actions
    • photos.latest
    • contacts.search, contacts.add
    • calendar.events, calendar.add
    • callLog.search
    • motion.activity, motion.pedometer

AI Setup Assistant

OpenClaw

OpenClaw Expert

Sigues atascado?

Si esta pagina no resolvio tu caso, pregunta a OpenClaw Expert para pasos concretos.