OpenClaw remoto (macOS ⇄ host remoto)
Este flujo permite que la app de macOS actúe como un control remoto completo para una gateway de OpenClaw que se ejecuta en otro host (escritorio/servidor). Es la función Remote over SSH (ejecución remota) de la app. Todas las funciones — comprobaciones de salud, 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 el portátil. 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 tu identidad/clave elegida y un reenvío de puerto local. - Remote direct (ws/wss): No hay túnel SSH. La app de Mac se conecta directamente a la URL de la gateway (por ejemplo, mediante Tailscale Serve o un proxy inverso HTTPS público).
Transportes remotos
El modo remoto admite dos transportes:- Túnel SSH (predeterminado): usa
ssh -N -L ...para reenviar el puerto de la gateway a localhost. La gateway verá la IP del nodo como127.0.0.1porque el túnel es loopback. - Direct (ws/wss): se conecta directamente a la URL de la gateway. La gateway ve la IP real del cliente.
Requisitos previos en el host remoto
- Instala Node + pnpm y compila/instala la CLI de OpenClaw (
pnpm install && pnpm build && pnpm link --global). - Asegúrate de que
openclawesté en PATH para shells no interactivos (symlink a/usr/local/bino/opt/homebrew/binsi es necesario). - Abre SSH con autenticación por clave. Recomendamos IPs de Tailscale para una accesibilidad estable fuera de la LAN.
Configuración de la app de macOS
- Abre Settings → General.
- En OpenClaw runs, elige Remote over SSH y configura:
- Transport: SSH tunnel o Direct (ws/wss).
- SSH target:
user@host(opcional:port).- Si la gateway está en la misma LAN y anuncia Bonjour, elígela de la lista detectada para rellenar automáticamente este campo.
- Gateway URL (solo Direct):
wss://gateway.example.ts.net(ows://...para local/LAN). - Identity file (avanzado): ruta a tu clave.
- Project root (avanzado): ruta remota del checkout usada para los comandos.
- CLI path (avanzado): ruta opcional a un entrypoint/binario
openclawejecutable (se rellena automáticamente cuando se anuncia).
- Pulsa Test remote. El éxito indica que
openclaw status --jsonse ejecuta correctamente en remoto. Los fallos suelen significar problemas de PATH/CLI; la salida 127 significa que la CLI no se encuentra en remoto. - Las comprobaciones de salud y Web Chat se ejecutarán ahora automáticamente a través de este túnel SSH.
Web Chat
- Túnel SSH: Web Chat se conecta a la gateway mediante el puerto de control WebSocket reenviado (predeterminado 18789).
- Direct (ws/wss): Web Chat se conecta directamente a la URL configurada de la gateway.
- Ya no existe un servidor HTTP independiente de WebChat.
Permisos
- El host remoto necesita las mismas aprobaciones TCC que en local (Automation, Accessibility, Screen Recording, Microphone, Speech Recognition, Notifications). Ejecuta 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
- Prefiere enlaces loopback en el host remoto y conéctate mediante SSH o Tailscale.
- El túnel SSH usa comprobación estricta de clave de host; primero confía en la clave del host para que exista en
~/.ssh/known_hosts. - Si enlazas la Gateway a una interfaz fuera de loopback, exige autenticación válida de Gateway: token, contraseña o un proxy inverso con identidad reconocida mediante
gateway.auth.mode: "trusted-proxy". - Consulta Security y Tailscale.
Flujo de inicio de sesión de WhatsApp (remoto)
- Ejecuta
openclaw channels login --verboseen el host remoto. Escanea el QR con WhatsApp en tu teléfono. - Vuelve a ejecutar el inicio de sesión en ese host si la autenticación caduca. La comprobación de salud mostrará los problemas de enlace.
Solución de problemas
- exit 127 / not found:
openclawno está en PATH para shells sin login. Añádelo a/etc/paths, al rc de tu shell, o crea un symlink en/usr/local/bin//opt/homebrew/bin. - Health probe failed: comprueba la accesibilidad SSH, PATH y que Baileys haya iniciado sesión (
openclaw status --json). - Web Chat stuck: confirma que la gateway se esté ejecutando en el host remoto y que el puerto reenviado coincida con el puerto WS de la gateway; la UI requiere una conexión WS saludable.
- Node IP shows 127.0.0.1: es lo esperado con el túnel SSH. Cambia Transport a Direct (ws/wss) si quieres que la gateway vea la IP real del cliente.
- Voice Wake: las frases de activación se reenvían automáticamente en modo remoto; no hace falta un reenviador separado.
Sonidos de notificación
Elige sonidos por notificación desde scripts conopenclaw y node.invoke, por ejemplo: