macOS companion app
Gateway en macOS
OpenClaw.app ya no incluye Node/Bun ni el entorno de ejecución de Gateway. La app de macOS
espera una instalación externa de la CLI openclaw, no inicia Gateway como
proceso hijo y administra un servicio launchd por usuario para mantener Gateway
en ejecución (o se conecta a un Gateway local existente si ya hay uno en ejecución).
Instala la CLI (obligatorio para el modo local)
Node 24 es el entorno de ejecución predeterminado en Mac. Node 22 LTS, actualmente 22.16+, sigue funcionando por compatibilidad. Luego instala openclaw globalmente:
npm install -g openclaw@<version>
El botón Instalar CLI de la app de macOS ejecuta el mismo flujo de instalación global que la app usa internamente: prefiere npm primero, luego pnpm y luego bun si es el único gestor de paquetes detectado. Node sigue siendo el entorno de ejecución recomendado para Gateway.
Launchd (Gateway como LaunchAgent)
Etiqueta:
ai.openclaw.gateway(oai.openclaw.<profile>; el legadocom.openclaw.*puede permanecer)
Ubicación del plist (por usuario):
~/Library/LaunchAgents/ai.openclaw.gateway.plist(o~/Library/LaunchAgents/ai.openclaw.<profile>.plist)
Administrador:
- La app de macOS es propietaria de la instalación/actualización de LaunchAgent en modo Local.
- La CLI también puede instalarlo:
openclaw gateway install.
Comportamiento:
- "OpenClaw activo" habilita/deshabilita LaunchAgent.
- Salir de la app no detiene el gateway (launchd lo mantiene activo).
- Si ya hay un Gateway en ejecución en el puerto configurado, la app se conecta a él en lugar de iniciar uno nuevo.
Registro:
- stdout/err de launchd:
/tmp/openclaw/openclaw-gateway.log
Compatibilidad de versiones
La app de macOS comprueba la versión de gateway con respecto a su propia versión. Si son incompatibles, actualiza la CLI global para que coincida con la versión de la app.
Comprobació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