OpenClaw remoto (macOS ⇄ host remoto)
Este flujo permite que la app de macOS actúe como un control remoto completo para un Gateway de OpenClaw que se ejecuta en otro host (escritorio/servidor). Es la función de la app Remote over SSH (ejecución remota). Todas las funciones—comprobaciones de estado, reenvío de Voice Wake y Web Chat—reutilizan la misma configuración SSH remota desde Settings → General.Modos
- Local (this Mac): Todo se ejecuta en la laptop. No hay SSH.
- Remote over SSH (default): Los comandos de OpenClaw se ejecutan en el host remoto. La app de mac abre una conexión SSH con
-o BatchModemás la identidad/clave elegida y un reenvío de puertos local. - Remote direct (ws/wss): Sin túnel SSH. La app de mac se conecta directamente a la URL del Gateway (por ejemplo, vía Tailscale Serve o un proxy inverso HTTPS público).
Transportes remotos
El modo remoto admite dos transportes:- SSH tunnel (predeterminado): Usa
ssh -N -L ...para reenviar el puerto del Gateway a localhost. El Gateway verá la IP del nodo como127.0.0.1porque el túnel es de loopback. - Direct (ws/wss): Se conecta directamente a la URL del Gateway. El Gateway ve la IP real del cliente.
Prerrequisitos en el host remoto
- Instale Node + pnpm y construya/instale la CLI de OpenClaw (
pnpm install && pnpm build && pnpm link --global). - Asegúrese de que
openclawesté en PATH para shells no interactivos (haga un symlink en/usr/local/bino/opt/homebrew/binsi es necesario). - Abra SSH con autenticación por clave. Recomendamos IPs de Tailscale para una conectividad estable fuera de la LAN.
Configuración de la app de macOS
- Abra Settings → General.
- En OpenClaw runs, elija Remote over SSH y configure:
- Transport: SSH tunnel o Direct (ws/wss).
- SSH target:
user@host(:portopcional).- Si el Gateway está en la misma LAN y anuncia Bonjour, selecciónelo de la lista descubierta para autocompletar este campo.
- Gateway URL (solo Direct):
wss://gateway.example.ts.net(ows://...para local/LAN). - Identity file (avanzado): ruta a su clave.
- Project root (avanzado): ruta del checkout remoto usada para los comandos.
- CLI path (avanzado): ruta opcional a un entrypoint/binario ejecutable de
openclaw(se completa automáticamente cuando se anuncia).
- Haga clic en Test remote. El éxito indica que el
openclaw status --jsonremoto se ejecuta correctamente. Los fallos suelen indicar problemas de PATH/CLI; el código 127 significa que la CLI no se encuentra de forma remota. - Las comprobaciones de estado y Web Chat ahora se ejecutarán automáticamente a través de este túnel SSH.
Chat web
- SSH tunnel: Web Chat se conecta al Gateway a través del puerto de control WebSocket reenviado (predeterminado 18789).
- Direct (ws/wss): Web Chat se conecta directamente a la URL del Gateway configurada.
- Ya no existe un servidor HTTP separado de WebChat.
Permisos
- El host remoto necesita las mismas aprobaciones TCC que el local (Automatización, Accesibilidad, Grabación de pantalla, Micrófono, Reconocimiento de voz, Notificaciones). Ejecute el onboarding en esa máquina para concederlos una vez.
- Los nodos anuncian su estado de permisos mediante
node.list/node.describepara que los agentes sepan qué está disponible.
Notas de seguridad
- Prefiera enlaces a loopback en el host remoto y conéctese vía SSH o Tailscale.
- Si vincula el Gateway a una interfaz que no sea loopback, exija autenticación por token/contraseña.
- Consulte Security y Tailscale.
Flujo de inicio de sesión de WhatsApp (remoto)
- Ejecute
openclaw channels login --verboseen el host remoto. Escanee el QR con WhatsApp en su teléfono. - Vuelva a ejecutar el inicio de sesión en ese host si la autenticación expira. La comprobación de estado mostrará problemas de enlace.
Solución de problemas
- exit 127 / not found:
openclawno está en PATH para shells sin inicio de sesión. Añádalo a/etc/paths, a su rc del shell, o haga un symlink en/usr/local/bin//opt/homebrew/bin. - Health probe failed: verifique la conectividad SSH, PATH y que Baileys haya iniciado sesión (
openclaw status --json). - Web Chat stuck: confirme que el Gateway se esté ejecutando en el host remoto y que el puerto reenviado coincida con el puerto WS del Gateway; la UI requiere una conexión WS saludable.
- Node IP shows 127.0.0.1: es esperado con el túnel SSH. Cambie Transport a Direct (ws/wss) si desea que el Gateway vea la IP real del cliente.
- Voice Wake: las frases de activación se reenvían automáticamente en modo remoto; no se necesita un reenviador separado.
Sonidos de notificación
Elija sonidos por notificación desde scripts conopenclaw y node.invoke, por ejemplo: