openclaw node
Ejecuta un host de nodo sin interfaz gráfica que se conecta al WebSocket del Gateway y expone
system.run / system.which en esta máquina.
¿Por qué usar un host de nodo?
Usa un host de nodo cuando quieras que los agentes ejecuten comandos en otras máquinas de tu red sin instalar allí una app complementaria completa de macOS. Casos de uso comunes:- Ejecutar comandos en equipos Linux/Windows remotos (servidores de compilación, máquinas de laboratorio, NAS).
- Mantener exec aislado en sandbox en el gateway, pero delegar ejecuciones aprobadas a otros hosts.
- Proporcionar un destino de ejecución ligero y sin interfaz gráfica para automatización o nodos de CI.
Proxy de navegador (sin configuración)
Los hosts de nodo anuncian automáticamente un proxy de navegador sibrowser.enabled no está
deshabilitado en el nodo. Esto permite que el agente use automatización de navegador en ese nodo
sin configuración adicional.
De forma predeterminada, el proxy expone la superficie normal del perfil de navegador del nodo. Si
estableces nodeHost.browserProxy.allowProfiles, el proxy se vuelve restrictivo:
se rechaza el uso de perfiles que no estén en la lista de permitidos, y las rutas persistentes de
creación/eliminación de perfiles se bloquean a través del proxy.
Deshabilítalo en el nodo si es necesario:
Ejecutar (primer plano)
--host <host>: host del WebSocket del Gateway (predeterminado:127.0.0.1)--port <port>: puerto del WebSocket del Gateway (predeterminado:18789)--context-path <path>: ruta de contexto del WebSocket del Gateway (p. ej.,/openclaw-gw). Se añade a la URL de WebSocket.--tls: usar TLS para la conexión del gateway--tls-fingerprint <sha256>: huella esperada del certificado TLS (sha256)--node-id <id>: anular el id del nodo (borra el token de emparejamiento)--display-name <name>: anular el nombre visible del nodo
Autenticación del Gateway para host de nodo
openclaw node run y openclaw node install resuelven la autenticación del gateway desde config/env (sin flags --token/--password en los comandos de nodo):
OPENCLAW_GATEWAY_TOKEN/OPENCLAW_GATEWAY_PASSWORDse comprueban primero.- Después, respaldo de configuración local:
gateway.auth.token/gateway.auth.password. - En modo local, el host de nodo no hereda intencionalmente
gateway.remote.token/gateway.remote.password. - Si
gateway.auth.token/gateway.auth.passwordestá configurado explícitamente mediante SecretRef y no se resuelve, la resolución de autenticación del nodo falla cerrada (sin enmascaramiento por respaldo remoto). - En
gateway.mode=remote, los campos de cliente remoto (gateway.remote.token/gateway.remote.password) también son elegibles según las reglas de precedencia remota. - La resolución de autenticación del host de nodo solo respeta las variables de entorno
OPENCLAW_GATEWAY_*.
ws:// en texto claro, se aceptan loopback, literales de IP privada,
.local y hosts Tailnet *.ts.net. Para otros nombres DNS privados
de confianza, establece OPENCLAW_ALLOW_INSECURE_PRIVATE_WS=1; sin
ello, el inicio del nodo falla cerrado y te pide usar wss://, un túnel SSH o
Tailscale. Esta es una opción explícita de entorno de proceso, no una clave de configuración de openclaw.json.
openclaw node install la conserva en el servicio de nodo supervisado cuando está
presente en el entorno del comando de instalación.
Servicio (segundo plano)
Instala un host de nodo sin interfaz gráfica como servicio de usuario (launchd en macOS, systemd en Linux, Programador de tareas de Windows en Windows).--host <host>: host del WebSocket del Gateway (predeterminado:127.0.0.1)--port <port>: puerto del WebSocket del Gateway (predeterminado:18789)--context-path <path>: ruta de contexto del WebSocket del Gateway (p. ej.,/openclaw-gw). Se añade a la URL de WebSocket.--tls: usar TLS para la conexión del gateway--tls-fingerprint <sha256>: huella esperada del certificado TLS (sha256)--node-id <id>: anular el id del nodo (borra el token de emparejamiento)--display-name <name>: anular el nombre visible del nodo--runtime <runtime>: runtime del servicio (nodeobun)--force: reinstalar/sobrescribir si ya está instalado
openclaw node run para un host de nodo en primer plano (sin servicio).
Los comandos de servicio aceptan --json para salida legible por máquina.
El host de nodo reintenta los reinicios del Gateway y los cierres de red dentro del proceso. Si el
Gateway informa una pausa terminal de autenticación por token/contraseña/bootstrap, el host de nodo
registra el detalle del cierre y sale con estado distinto de cero para que launchd/systemd/Programador de tareas
pueda reiniciarlo con configuración y credenciales actualizadas. Las pausas que requieren emparejamiento permanecen en
el flujo de primer plano para que la solicitud pendiente pueda aprobarse.
Emparejamiento
La primera conexión crea una solicitud pendiente de emparejamiento de dispositivo (role: node) en el Gateway.
Apruébala mediante:
autoApproveCidrs no está establecido). Solo se aplica al
emparejamiento nuevo con role: node sin ámbitos solicitados, desde una IP de cliente en la que el
Gateway confía. Los clientes de operador/navegador, Control UI, WebChat y las actualizaciones de rol,
ámbito, metadatos o clave pública siguen requiriendo aprobación manual.
Si el nodo reintenta el emparejamiento con detalles de autenticación modificados (rol/ámbitos/clave pública),
la solicitud pendiente anterior se reemplaza y se crea un nuevo requestId.
Ejecuta openclaw devices list de nuevo antes de aprobar.
El host de nodo almacena su id de nodo, token, nombre visible e información de conexión del gateway
en node.json en el directorio de estado de OpenClaw (~/.openclaw de forma predeterminada,
o $OPENCLAW_STATE_DIR cuando se establece).
Aprobaciones de exec
system.run está protegido por aprobaciones de exec locales:
$OPENCLAW_STATE_DIR/exec-approvals.json, o~/.openclaw/exec-approvals.jsoncuando la variable no está establecida- Aprobaciones de exec
openclaw approvals --node <id|name|ip>(editar desde el Gateway)
systemRunPlan canónico
antes de solicitar aprobación. El reenvío posterior aprobado de system.run reutiliza ese
plan almacenado, por lo que las ediciones a los campos command/cwd/session después de que se haya
creado la solicitud de aprobación se rechazan en lugar de cambiar lo que ejecuta el nodo.