Gateway en macOS (launchd externo)
OpenClaw.app ya no incluye Node/Bun ni el runtime del Gateway. La app de macOS
espera una instalación externa del CLI openclaw, no genera el Gateway como
proceso hijo, y gestiona un servicio launchd por usuario para mantener el Gateway
ejecutándose (o se conecta a un Gateway local existente si ya hay uno en ejecución).
Instalar el CLI (requerido para modo local)
Node 24 es el runtime predeterminado en Mac. Node 22 LTS, actualmente 22.16+, aún funciona por compatibilidad. Luego instala openclaw globalmente:
npm install -g openclaw@<version>
El botón Install CLI de la app de macOS ejecuta el mismo flujo vía npm/pnpm (no se recomienda bun para el runtime del Gateway).
Launchd (Gateway como LaunchAgent)
Etiqueta:
ai.openclaw.gateway(oai.openclaw.<profile>; legacycom.openclaw.*puede permanecer)
Ubicación del plist (por usuario):
~/Library/LaunchAgents/ai.openclaw.gateway.plist(o~/Library/LaunchAgents/ai.openclaw.<profile>.plist)
Gestor:
- La app de macOS gestiona la instalación/actualización del LaunchAgent en modo Local.
- El CLI también puede instalarlo:
openclaw gateway install.
Comportamiento:
- “OpenClaw Active” habilita/deshabilita el LaunchAgent.
- Cerrar la app no detiene el Gateway (launchd lo mantiene vivo).
- Si ya hay un Gateway ejecutándose en el puerto configurado, la app se conecta a él en lugar de iniciar uno nuevo.
Logging:
- stdout/err de launchd:
/tmp/openclaw/openclaw-gateway.log
Compatibilidad de versiones
La app de macOS verifica la versión del Gateway contra su propia versión. Si son incompatibles, actualiza el CLI global para que coincida con la versión de la app.
Verificación rápida
openclaw --version
OPENCLAW_SKIP_CHANNELS=1 \
OPENCLAW_SKIP_CANVAS_HOST=1 \
openclaw gateway --port 18999 --bind loopback
Luego:
openclaw gateway call health --url ws://127.0.0.1:18999 --timeout 3000