El Gateway es el servidor WebSocket de OpenClaw (canales, nodos, sesiones, hooks). Los subcomandos de esta página se encuentran bajoDocumentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
openclaw gateway ….
Descubrimiento Bonjour
Configuración de mDNS local + DNS-SD de área amplia.
Descripción general del descubrimiento
Cómo OpenClaw anuncia y encuentra gateways.
Configuración
Claves de configuración de gateway de nivel superior.
Ejecutar el Gateway
Ejecuta un proceso local de Gateway:Comportamiento de inicio
Comportamiento de inicio
- De forma predeterminada, el Gateway se niega a iniciarse a menos que
gateway.mode=localesté establecido en~/.openclaw/openclaw.json. Usa--allow-unconfiguredpara ejecuciones ad hoc/de desarrollo. - Se espera que
openclaw onboard --mode localyopenclaw setupescribangateway.mode=local. Si el archivo existe pero faltagateway.mode, trata eso como una configuración rota o sobrescrita y repárala en lugar de asumir implícitamente el modo local. - Si el archivo existe y falta
gateway.mode, el Gateway lo trata como un daño sospechoso de configuración y se niega a “adivinar local” por ti. - Se bloquea el enlace más allá de loopback sin autenticación (barrera de seguridad).
SIGUSR1activa un reinicio dentro del proceso cuando está autorizado (commands.restartestá habilitado de forma predeterminada; establececommands.restart: falsepara bloquear el reinicio manual, mientras que aplicar/actualizar la herramienta/configuración del gateway sigue permitido).- Los manejadores
SIGINT/SIGTERMdetienen el proceso del gateway, pero no restauran ningún estado personalizado del terminal. Si envuelves la CLI con una TUI o entrada en modo raw, restaura el terminal antes de salir.
Opciones
Puerto WebSocket (el valor predeterminado proviene de config/env; normalmente
18789).Modo de enlace del listener.
Sobrescritura del modo de autenticación.
Sobrescritura del token (también establece
OPENCLAW_GATEWAY_TOKEN para el proceso).Sobrescritura de contraseña.
Leer la contraseña del gateway desde un archivo.
Exponer el Gateway mediante Tailscale.
Restablecer la configuración de serve/funnel de Tailscale al apagar.
Permitir que el gateway se inicie sin
gateway.mode=local en la configuración. Omite la protección de inicio solo para arranque ad hoc/de desarrollo; no escribe ni repara el archivo de configuración.Crear una configuración de desarrollo + workspace si falta (omite BOOTSTRAP.md).
Restablecer configuración de desarrollo + credenciales + sesiones + workspace (requiere
--dev).Matar cualquier listener existente en el puerto seleccionado antes de iniciar.
Registros detallados.
Mostrar solo registros del backend de la CLI en la consola (y habilitar stdout/stderr).
Estilo de registro de WebSocket.
Alias de
--ws-log compact.Registrar eventos de stream del modelo sin procesar en jsonl.
Ruta jsonl del stream sin procesar.
Reiniciar el Gateway
openclaw gateway restart --safe solicita al Gateway en ejecución que haga una verificación previa del trabajo activo de OpenClaw antes de reiniciar. Si hay operaciones en cola, entrega de respuestas, ejecuciones integradas o ejecuciones de tareas activas, el Gateway informa los bloqueadores, fusiona las solicitudes duplicadas de reinicio seguro y reinicia una vez que el trabajo activo se drena. restart simple conserva el comportamiento existente del gestor de servicios por compatibilidad. Usa --force solo cuando quieras explícitamente la ruta de sobrescritura inmediata.
openclaw gateway restart --safe --skip-deferral ejecuta el mismo reinicio coordinado consciente de OpenClaw que --safe, pero omite la compuerta de aplazamiento por trabajo activo para que el Gateway emita el reinicio inmediatamente incluso cuando se informan bloqueadores. Úsalo como vía de escape del operador cuando un aplazamiento se haya quedado fijado por una ejecución de tarea atascada y --safe por sí solo esperaría indefinidamente. --skip-deferral requiere --safe.
Perfilado de inicio
- Establece
OPENCLAW_GATEWAY_STARTUP_TRACE=1para registrar tiempos de fases durante el inicio del Gateway, incluido el retrasoeventLoopMaxpor fase y los tiempos de tablas de búsqueda de plugins para el índice instalado, el registro de manifiestos, la planificación de inicio y el trabajo de mapa de propietarios. - Establece
OPENCLAW_DIAGNOSTICS=timelineconOPENCLAW_DIAGNOSTICS_TIMELINE_PATH=<path>para escribir una línea temporal de diagnósticos de inicio JSONL de mejor esfuerzo para arneses externos de QA. También puedes habilitar la bandera condiagnostics.flags: ["timeline"]en la configuración; la ruta sigue proporcionándose por env. AgregaOPENCLAW_DIAGNOSTICS_EVENT_LOOP=1para incluir muestras del event loop. - Ejecuta
pnpm test:startup:gateway -- --runs 5 --warmup 1para medir el inicio del Gateway. El benchmark registra la primera salida del proceso,/healthz,/readyz, los tiempos de traza de inicio, el retraso del event loop y los detalles de tiempos de tablas de búsqueda de plugins.
Consultar un Gateway en ejecución
Todos los comandos de consulta usan RPC por WebSocket.- Modos de salida
- Opciones compartidas
- Predeterminado: legible para humanos (con color en TTY).
--json: JSON legible por máquina (sin estilo/spinner).--no-color(oNO_COLOR=1): deshabilitar ANSI manteniendo el diseño humano.
Cuando estableces
--url, la CLI no recurre a credenciales de configuración ni de entorno. Pasa --token o --password explícitamente. La falta de credenciales explícitas es un error.gateway health
/healthz es una sonda de actividad: devuelve una respuesta una vez que el servidor puede responder HTTP. El endpoint HTTP /readyz es más estricto y permanece en rojo mientras los sidecars de plugins de inicio, los canales o los hooks configurados aún se están estabilizando. Las respuestas detalladas locales o autenticadas de disponibilidad incluyen un bloque de diagnóstico eventLoop con retraso del event loop, utilización del event loop, proporción de núcleos de CPU y una bandera degraded.
gateway usage-cost
Obtiene resúmenes de costo de uso desde registros de sesión.
Número de días que incluir.
gateway stability
Obtiene el registrador reciente de estabilidad diagnóstica desde un Gateway en ejecución.
Número máximo de eventos recientes que incluir (máx.
1000).Filtrar por tipo de evento diagnóstico, como
payload.large o diagnostic.memory.pressure.Incluir solo eventos posteriores a un número de secuencia diagnóstica.
Leer un bundle de estabilidad persistido en lugar de llamar al Gateway en ejecución. Usa
--bundle latest (o solo --bundle) para el bundle más nuevo bajo el directorio de estado, o pasa directamente una ruta JSON de bundle.Escribir un zip de diagnósticos de soporte compartible en lugar de imprimir detalles de estabilidad.
Ruta de salida para
--export.Privacidad y comportamiento de bundles
Privacidad y comportamiento de bundles
- Los registros conservan metadatos operativos: nombres de eventos, conteos, tamaños en bytes, lecturas de memoria, estado de colas/sesiones, nombres de canales/plugins y resúmenes de sesión redactados. No conservan texto de chat, cuerpos de webhook, salidas de herramientas, cuerpos sin procesar de solicitudes o respuestas, tokens, cookies, valores secretos, hostnames ni ids de sesión sin procesar. Establece
diagnostics.enabled: falsepara deshabilitar por completo el registrador. - En salidas fatales del Gateway, timeouts de apagado y fallos de inicio tras reinicio, OpenClaw escribe la misma instantánea diagnóstica en
~/.openclaw/logs/stability/openclaw-stability-*.jsoncuando el registrador tiene eventos. Inspecciona el bundle más nuevo conopenclaw gateway stability --bundle latest;--limit,--typey--since-seqtambién se aplican a la salida de bundle.
gateway diagnostics export
Escribe un zip local de diagnósticos diseñado para adjuntarse a informes de errores. Para el modelo de privacidad y el contenido del bundle, consulta Exportación de diagnósticos.
Ruta del zip de salida. El valor predeterminado es una exportación de soporte bajo el directorio de estado.
Número máximo de líneas de registro saneadas que incluir.
Número máximo de bytes de registro que inspeccionar.
URL WebSocket del Gateway para la instantánea de estado.
Token del Gateway para la instantánea de estado.
Contraseña del Gateway para la instantánea de estado.
Timeout de la instantánea de estado/salud.
Omitir la búsqueda de bundles de estabilidad persistidos.
Imprimir la ruta escrita, el tamaño y el manifiesto como JSON.
gateway status
gateway status muestra el servicio del Gateway (launchd/systemd/schtasks) más una sonda opcional de capacidad de conectividad/autenticación.
Agrega un destino de sondeo explícito. El remoto configurado + localhost se siguen sondeando.
Autenticación por token para el sondeo.
Autenticación por contraseña para el sondeo.
Tiempo de espera del sondeo.
Omite el sondeo de conectividad (vista solo del servicio).
Escanea también los servicios de nivel de sistema.
Convierte el sondeo de conectividad predeterminado en un sondeo de lectura y sale con código distinto de cero cuando ese sondeo de lectura falla. No se puede combinar con
--no-probe.Status semantics
Status semantics
gateway statussigue disponible para diagnósticos incluso cuando la configuración local de la CLI falta o no es válida.gateway statuspredeterminado comprueba el estado del servicio, la conexión WebSocket y la capacidad de autenticación visible durante el handshake. No comprueba operaciones de lectura/escritura/administración.- Los sondeos de diagnóstico no mutan la autenticación de dispositivos por primera vez: reutilizan un token de dispositivo en caché existente cuando existe, pero no crean una nueva identidad de dispositivo de la CLI ni un registro de emparejamiento de dispositivo de solo lectura solo para comprobar el estado.
gateway statusresuelve los SecretRefs de autenticación configurados para la autenticación del sondeo cuando es posible.- Si un SecretRef de autenticación requerido no se resuelve en esta ruta de comando,
gateway status --jsoninformarpc.authWarningcuando la conectividad/autenticación del sondeo falla; pasa--token/--passwordexplícitamente o resuelve primero el origen del secreto. - Si el sondeo tiene éxito, las advertencias de referencia de autenticación sin resolver se suprimen para evitar falsos positivos.
- Usa
--require-rpcen scripts y automatización cuando un servicio en escucha no sea suficiente y también necesites que las llamadas RPC de alcance de lectura estén sanas. --deepagrega un escaneo de mejor esfuerzo para instalaciones adicionales de launchd/systemd/schtasks. Cuando se detectan varios servicios similares a Gateway, la salida humana imprime sugerencias de limpieza y advierte que la mayoría de las configuraciones deberían ejecutar un Gateway por máquina.--deeptambién informa una transferencia reciente de reinicio del supervisor de Gateway cuando el proceso del servicio salió limpiamente para un reinicio de supervisor externo.--deepejecuta la validación de configuración en modo compatible con plugins (pluginValidation: "full") y muestra advertencias de manifiestos de plugins configurados (por ejemplo, metadatos faltantes de configuración de canal) para que las comprobaciones smoke de instalación y actualización las detecten.gateway statuspredeterminado mantiene la ruta rápida de solo lectura que omite la validación de plugins.- La salida humana incluye la ruta resuelta del log en archivo más la instantánea de rutas/validez de configuración CLI-vs-servicio para ayudar a diagnosticar desviaciones de perfil o de directorio de estado.
Linux systemd auth-drift checks
Linux systemd auth-drift checks
- En instalaciones Linux systemd, las comprobaciones de desviación de autenticación del servicio leen tanto los valores
Environment=comoEnvironmentFile=de la unidad (incluidos%h, rutas entre comillas, varios archivos y archivos-opcionales). - Las comprobaciones de desviación resuelven los SecretRefs de
gateway.auth.tokenusando el entorno de ejecución combinado (primero el entorno del comando de servicio, luego el entorno del proceso como alternativa). - Si la autenticación por token no está activa efectivamente (
gateway.auth.modeexplícito depassword/none/trusted-proxy, o modo sin definir donde la contraseña puede ganar y ningún candidato de token puede ganar), las comprobaciones de desviación de token omiten la resolución del token de configuración.
gateway probe
gateway probe es el comando para “depurar todo”. Siempre sondea:
- tu Gateway remoto configurado (si está definido), y
- localhost (loopback) aunque el remoto esté configurado.
--url, ese destino explícito se agrega antes de ambos. La salida humana etiqueta los destinos como:
URL (explicit)Remote (configured)oRemote (configured, inactive)Local loopback
Si se puede acceder a varios gateways, los imprime todos. Se admiten varios gateways cuando usas perfiles/puertos aislados (por ejemplo, un bot de rescate), pero la mayoría de las instalaciones siguen ejecutando un único Gateway.
Interpretation
Interpretation
Reachable: yessignifica que al menos un destino aceptó una conexión WebSocket.Capability: read-only|write-capable|admin-capable|pairing-pending|connect-onlyinforma lo que el sondeo pudo comprobar sobre la autenticación. Es independiente de la accesibilidad.Read probe: oksignifica que las llamadas RPC de detalle con alcance de lectura (health/status/system-presence/config.get) también tuvieron éxito.Read probe: limited - missing scope: operator.readsignifica que la conexión tuvo éxito, pero el RPC con alcance de lectura está limitado. Esto se informa como accesibilidad degradada, no como fallo completo.Read probe: faileddespués deConnect: oksignifica que el Gateway aceptó la conexión WebSocket, pero los diagnósticos de lectura posteriores agotaron el tiempo o fallaron. Esto también es accesibilidad degradada, no un Gateway inaccesible.- Al igual que
gateway status, el sondeo reutiliza la autenticación de dispositivo en caché existente, pero no crea una identidad de dispositivo por primera vez ni estado de emparejamiento. - El código de salida es distinto de cero solo cuando no se puede acceder a ningún destino sondeado.
JSON output
JSON output
Nivel superior:
ok: se puede acceder al menos a un destino.degraded: al menos un destino aceptó una conexión pero no completó todos los diagnósticos RPC de detalle.capability: mejor capacidad vista entre los destinos accesibles (read_only,write_capable,admin_capable,pairing_pending,connected_no_operator_scopeounknown).primaryTargetId: mejor destino para tratar como ganador activo en este orden: URL explícita, túnel SSH, remoto configurado y luego local loopback.warnings[]: registros de advertencia de mejor esfuerzo concode,messageytargetIdsopcional.network: sugerencias de URL de local loopback/tailnet derivadas de la configuración actual y la red del host.discovery.timeoutMsydiscovery.count: el presupuesto de descubrimiento/recuento de resultados real usado para esta pasada de sondeo.
targets[].connect):ok: accesibilidad después de connect + clasificación degradada.rpcOk: éxito completo del RPC de detalle.scopeLimited: el RPC de detalle falló por falta de alcance de operador.
targets[].auth):role: rol de autenticación informado enhello-okcuando está disponible.scopes: alcances concedidos informados enhello-okcuando están disponibles.capability: la clasificación expuesta de capacidad de autenticación para ese destino.
Common warning codes
Common warning codes
ssh_tunnel_failed: falló la configuración del túnel SSH; el comando recurrió a sondeos directos.multiple_gateways: se pudo acceder a más de un destino; esto es inusual salvo que ejecutes perfiles aislados intencionalmente, como un bot de rescate.auth_secretref_unresolved: no se pudo resolver un SecretRef de autenticación configurado para un destino fallido.probe_scope_limited: la conexión WebSocket tuvo éxito, pero el sondeo de lectura estuvo limitado por falta deoperator.read.
Remoto por SSH (paridad de la app de Mac)
El modo “Remote over SSH” de la app de macOS usa un reenvío de puerto local para que el Gateway remoto (que puede estar enlazado solo a loopback) sea accesible enws://127.0.0.1:<port>.
Equivalente de la CLI:
user@host o user@host:port (el puerto predeterminado es 22).Archivo de identidad.
Elige el primer host de Gateway descubierto como destino SSH desde el endpoint de descubrimiento resuelto (
local. más el dominio de área amplia configurado, si lo hay). Las sugerencias solo TXT se ignoran.gateway.remote.sshTargetgateway.remote.sshIdentity
gateway call <method>
Ayudante RPC de bajo nivel.
Cadena de objeto JSON para params.
URL WebSocket del Gateway.
Token del Gateway.
Contraseña del Gateway.
Presupuesto de tiempo de espera.
Principalmente para RPCs de estilo agente que transmiten eventos intermedios antes de una carga útil final.
Salida JSON legible por máquina.
--params debe ser JSON válido.Gestionar el servicio Gateway
Instalar con un wrapper
Usa--wrapper cuando el servicio gestionado deba iniciarse mediante otro ejecutable, por ejemplo un
shim de gestor de secretos o un ayudante run-as. El wrapper recibe los argumentos normales de Gateway y es
responsable de finalmente hacer exec de openclaw o Node con esos argumentos.
gateway install valida que la ruta sea
un archivo ejecutable, escribe el wrapper en ProgramArguments del servicio y conserva
OPENCLAW_WRAPPER en el entorno del servicio para reinstalaciones forzadas, actualizaciones y reparaciones de doctor posteriores.
OPENCLAW_WRAPPER al reinstalar:
Command options
Command options
gateway status:--url,--token,--password,--timeout,--no-probe,--require-rpc,--deep,--jsongateway install:--port,--runtime <node|bun>,--token,--wrapper <path>,--force,--jsongateway restart:--safe,--skip-deferral,--force,--wait <duration>,--jsongateway uninstall|start:--jsongateway stop:--disable,--json
Comportamiento del ciclo de vida
Comportamiento del ciclo de vida
- Usa
gateway restartpara reiniciar un servicio administrado. No encadenesgateway stopygateway startcomo sustituto de reinicio. - En macOS,
gateway stopusalaunchctl bootoutde forma predeterminada, lo que elimina el LaunchAgent de la sesión de arranque actual sin conservar una desactivación persistente: la recuperación automática de KeepAlive sigue activa para bloqueos futuros ygateway startvuelve a habilitarlo limpiamente sin unlaunchctl enablemanual. Pasa--disablepara suprimir de forma persistente KeepAlive y RunAtLoad, de modo que el gateway no reaparezca hasta el siguientegateway startexplícito; úsalo cuando una detención manual deba sobrevivir a reinicios del equipo o del sistema. gateway restart --safepide al Gateway en ejecución que compruebe previamente el trabajo activo de OpenClaw y aplace el reinicio hasta que se vacíen la entrega de respuestas, las ejecuciones incrustadas y las ejecuciones de tareas.--safeno se puede combinar con--forceni--wait.gateway restart --wait 30sanula el presupuesto de vaciado de reinicio configurado para ese reinicio. Los números sin unidad son milisegundos; se aceptan unidades comos,myh.--wait 0espera indefinidamente.gateway restart --safe --skip-deferralejecuta el reinicio seguro con conocimiento de OpenClaw, pero omite la compuerta de aplazamiento para que el Gateway emita el reinicio inmediatamente incluso cuando se informen bloqueadores. Vía de escape para operadores ante aplazamientos de ejecuciones de tareas atascadas; requiere--safe.gateway restart --forceomite el vaciado de trabajo activo y reinicia inmediatamente. Úsalo cuando un operador ya haya inspeccionado los bloqueadores de tareas enumerados y quiera recuperar el gateway ahora.- Los comandos de ciclo de vida aceptan
--jsonpara scripting.
Autenticación y SecretRefs durante la instalación
Autenticación y SecretRefs durante la instalación
- Cuando la autenticación con token requiere un token y
gateway.auth.tokenestá administrado por SecretRef,gateway installvalida que el SecretRef se pueda resolver, pero no conserva el token resuelto en los metadatos de entorno del servicio. - Si la autenticación con token requiere un token y el SecretRef de token configurado no se puede resolver, la instalación falla de forma cerrada en lugar de conservar texto sin formato alternativo.
- Para autenticación con contraseña en
gateway run, prefiereOPENCLAW_GATEWAY_PASSWORD,--password-fileo ungateway.auth.passwordrespaldado por SecretRef antes que--passworden línea. - En modo de autenticación inferida,
OPENCLAW_GATEWAY_PASSWORDsolo de shell no relaja los requisitos de token de instalación; usa configuración duradera (gateway.auth.passwordo configenv) al instalar un servicio administrado. - Si tanto
gateway.auth.tokencomogateway.auth.passwordestán configurados ygateway.auth.modeno está definido, la instalación se bloquea hasta que el modo se establezca explícitamente.
Descubrir gateways (Bonjour)
gateway discover busca balizas de Gateway (_openclaw-gw._tcp).
- Multicast DNS-SD:
local. - Unicast DNS-SD (Bonjour de área amplia): elige un dominio (ejemplo:
openclaw.internal.) y configura DNS dividido + un servidor DNS; consulta Bonjour.
role(pista de rol del gateway)transport(pista de transporte, p. ej.gateway)gatewayPort(puerto WebSocket, normalmente18789)sshPort(solo modo de descubrimiento completo; los clientes usan22como destino SSH predeterminado cuando está ausente)tailnetDns(nombre de host MagicDNS, cuando está disponible)gatewayTls/gatewayTlsSha256(TLS habilitado + huella digital del certificado)cliPath(solo modo de descubrimiento completo)
gateway discover
Tiempo de espera por comando (explorar/resolver).
Salida legible por máquina (también desactiva estilo/indicador giratorio).
- La CLI escanea
local.más el dominio de área amplia configurado cuando hay uno habilitado. wsUrlen la salida JSON se deriva del endpoint de servicio resuelto, no de pistas solo TXT comolanHostotailnetDns.- En mDNS
local.y DNS-SD de área amplia,sshPortycliPathsolo se publican cuandodiscovery.mdns.modeesfull.