CLI commands

Gateway

El Gateway es el servidor WebSocket de OpenClaw (canales, nodos, sesiones, hooks). Los subcomandos de esta página están bajo openclaw gateway ….

Ejecutar el Gateway

Ejecuta un proceso local de Gateway:

bash
openclaw gateway

Alias en primer plano:

bash
openclaw gateway run
Startup behavior
  • De forma predeterminada, el Gateway se niega a iniciar a menos que gateway.mode=local esté definido en ~/.openclaw/openclaw.json. Usa --allow-unconfigured para ejecuciones ad hoc/de desarrollo.
  • Se espera que openclaw onboard --mode local y openclaw setup escriban gateway.mode=local. Si el archivo existe pero falta gateway.mode, trátalo 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 daño sospechoso en la configuración y se niega a "adivinar local" por ti.
  • Se bloquea el enlace más allá de loopback sin autenticación (protección de seguridad).
  • lan, tailnet y custom actualmente se resuelven mediante rutas BYOH solo IPv4.
  • BYOH solo IPv6 no es compatible de forma nativa en esta ruta actualmente. Usa un sidecar o proxy IPv4 si el host en sí es solo IPv6.
  • SIGUSR1 activa un reinicio en proceso cuando está autorizado (commands.restart está habilitado de forma predeterminada; define commands.restart: false para bloquear el reinicio manual, mientras que la aplicación/actualización de herramientas/configuración del gateway permanece permitida).
  • Los manejadores de SIGINT/SIGTERM detienen el proceso del gateway, pero no restauran ningún estado personalizado de la terminal. Si envuelves la CLI con una TUI o entrada en modo raw, restaura la terminal antes de salir.

Opciones

OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tcG9ydCA8cG9ydA " type="number"> Puerto WebSocket (el valor predeterminado viene de la configuración/env; normalmente 18789).

OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tYmluZCA8bG9vcGJhY2t8bGFufHRhaWxuZXR8YXV0b3xjdXN0b20 " type="string"> Modo de enlace del listener. lan, tailnet y custom actualmente se resuelven mediante rutas solo IPv4.

"--auth

OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tdG9rZW4gPHRva2Vu " type="string"> Sustitución del token (también define OPENCLAW_GATEWAY_TOKEN para el proceso).

"--password
"--tailscale
--tailscale-reset-on-exitboolean

Restablecer la configuración serve/funnel de Tailscale al apagar.

--bind custom + gateway.customBindHoststring

Actualmente espera una dirección IPv4. Para BYOH solo IPv6, coloca un sidecar o proxy IPv4 delante del Gateway y apunta OpenClaw a ese endpoint IPv4.

--allow-unconfiguredboolean

Permitir que el gateway inicie sin gateway.mode=local en la configuración. Omite la protección de inicio solo para arranques ad hoc/de desarrollo; no escribe ni repara el archivo de configuración.

--devboolean

Crear una configuración de desarrollo + workspace si faltan (omite BOOTSTRAP.md).

--resetboolean

Restablecer configuración de desarrollo + credenciales + sesiones + workspace (requiere --dev).

--forceboolean

Terminar cualquier listener existente en el puerto seleccionado antes de iniciar.

--verboseboolean

Registros detallados.

--cli-backend-logsboolean

Mostrar solo los registros del backend de la CLI en la consola (y habilitar stdout/stderr).

"--ws-log
--compactboolean

Alias de --ws-log compact.

--raw-streamboolean

Registrar eventos sin procesar del flujo del modelo en jsonl.

Reiniciar el Gateway

bash
openclaw gateway restartopenclaw gateway restart --safeopenclaw gateway restart --safe --skip-deferralopenclaw gateway restart --force

openclaw gateway restart --safe pide al Gateway en ejecución que haga una comprobación previa del trabajo activo y programe un reinicio combinado después de que el trabajo activo se vacíe. El reinicio seguro predeterminado espera el trabajo activo hasta el gateway.reload.deferralTimeoutMs configurado (predeterminado 5 minutos); cuando ese presupuesto expira, el reinicio se fuerza. Define gateway.reload.deferralTimeoutMs en 0 para una espera segura indefinida que nunca fuerza. restart simple mantiene el comportamiento existente del gestor de servicios; --force sigue siendo la ruta de sustitución 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 haya quedado fijado por una ejecución de tarea atascada y --safe por sí solo pueda estar limitado por gateway.reload.deferralTimeoutMs. --skip-deferral requiere --safe.

Perfilado del Gateway

  • Define OPENCLAW_GATEWAY_STARTUP_TRACE=1 para registrar tiempos por fase durante el inicio del Gateway, incluido el retraso eventLoopMax por fase y los tiempos de tablas de búsqueda de plugins para installed-index, registro de manifiestos, planificación de inicio y trabajo de owner-map.
  • Define OPENCLAW_GATEWAY_RESTART_TRACE=1 para registrar líneas restart trace: con alcance de reinicio para el manejo de señales de reinicio, vaciado de trabajo activo, fases de apagado, siguiente inicio, tiempo hasta ready y métricas de memoria.
  • Define OPENCLAW_DIAGNOSTICS=timeline con OPENCLAW_DIAGNOSTICS_TIMELINE_PATH=<path> para escribir una línea temporal de diagnóstico de inicio JSONL de mejor esfuerzo para arneses de QA externos. También puedes habilitar la marca con diagnostics.flags: ["timeline"] en la configuración; la ruta sigue proporcionándose por env. Añade OPENCLAW_DIAGNOSTICS_EVENT_LOOP=1 para incluir muestras del bucle de eventos.
  • Ejecuta primero pnpm build, luego pnpm test:startup:gateway -- --runs 5 --warmup 1 para comparar el inicio del Gateway contra la entrada de CLI compilada. El benchmark registra la primera salida del proceso, /healthz, /readyz, tiempos de traza de inicio, retraso del bucle de eventos y detalles de tiempos de tablas de búsqueda de plugins.
  • Ejecuta primero pnpm build, luego pnpm test:restart:gateway -- --case skipChannels --runs 1 --restarts 5 para comparar el reinicio en proceso del Gateway contra la entrada de CLI compilada en macOS o Linux. El benchmark de reinicio usa SIGUSR1, habilita trazas de inicio y reinicio en el proceso hijo, y registra el siguiente /healthz, el siguiente /readyz, tiempo de inactividad, tiempo hasta ready, CPU, RSS y métricas de traza de reinicio.
  • Trata /healthz como disponibilidad del proceso y /readyz como preparación utilizable. Las líneas de traza y la salida del benchmark son para atribución de propietarios; no trates un tramo de traza o una muestra como una conclusión completa de rendimiento.

Consultar un Gateway en ejecución

Todos los comandos de consulta usan RPC por WebSocket.

Output modes

  • Predeterminado: legible para humanos (con color en TTY).
  • --json: JSON legible por máquina (sin estilo/spinner).
  • --no-color (o NO_COLOR=1): deshabilita ANSI mientras conserva el diseño humano.

Shared options

  • --url <url>: URL WebSocket del Gateway.
  • --token <token>: token del Gateway.
  • --password <password>: contraseña del Gateway.
  • --timeout <ms>: tiempo de espera/presupuesto (varía según el comando).
  • --expect-final: esperar una respuesta "final" (llamadas de agente).

gateway health

bash
openclaw gateway health --url ws://127.0.0.1:18789openclaw gateway health --port 18789

El endpoint HTTP /healthz es una sonda de disponibilidad: devuelve una respuesta cuando el servidor puede responder HTTP. El endpoint HTTP /readyz es más estricto y permanece en rojo mientras los sidecars de plugins de inicio, canales o hooks configurados todavía se están estabilizando. Las respuestas de preparación detalladas locales o autenticadas incluyen un bloque de diagnóstico eventLoop con retraso del bucle de eventos, utilización del bucle de eventos, proporción de núcleos de CPU y una marca degraded.

OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tcG9ydCA8cG9ydA " type="number"> Apuntar a un Gateway local loopback en este puerto. Esto anula OPENCLAW_GATEWAY_URL y OPENCLAW_GATEWAY_PORT para la llamada de estado.

gateway usage-cost

Obtener resúmenes de coste de uso desde los registros de sesión.

bash
openclaw gateway usage-costopenclaw gateway usage-cost --days 7openclaw gateway usage-cost --agent work --jsonopenclaw gateway usage-cost --all-agentsopenclaw gateway usage-cost --json
"--days
"--agent
--all-agentsboolean

Agregar el resumen de costes entre todos los agentes configurados. No se puede combinar con --agent.

gateway stability

Obtener el registrador de estabilidad de diagnóstico reciente desde un Gateway en ejecución.

bash
openclaw gateway stabilityopenclaw gateway stability --type payload.largeopenclaw gateway stability --bundle latestopenclaw gateway stability --bundle latest --exportopenclaw gateway stability --json

OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tbGltaXQgPGxpbWl0 " type="number" default="25"> Número máximo de eventos recientes que se incluirán (máx. 1000).

OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tdHlwZSA8dHlwZQ " type="string"> Filtrar por tipo de evento de diagnóstico, como payload.large o diagnostic.memory.pressure.

"--since-seq
--bundle [path]string

Leer un paquete de estabilidad persistido en lugar de llamar al Gateway en ejecución. Usa --bundle latest (o solo --bundle) para el paquete más nuevo bajo el directorio de estado, o pasa directamente una ruta JSON de paquete.

--exportboolean

Escribir un zip de diagnósticos de soporte compartible en lugar de imprimir detalles de estabilidad.

OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tb3V0cHV0IDxwYXRo " type="string"> Ruta de salida para --export.

Privacy and bundle behavior
  • Los registros conservan metadatos operativos: nombres de eventos, conteos, tamaños en bytes, lecturas de memoria, estado de colas/sesiones, ids de aprobación, nombres de canales/plugins y resúmenes de sesiones redactados. No conservan texto de chat, cuerpos de webhook, salidas de herramientas, cuerpos sin procesar de solicitudes o respuestas, tokens, cookies, valores secretos, nombres de host ni ids de sesión sin procesar. Define diagnostics.enabled: false para deshabilitar el registrador por completo.
  • En salidas fatales del Gateway, tiempos de espera de apagado y fallos de inicio tras reinicio, OpenClaw escribe la misma instantánea de diagnóstico en ~/.openclaw/logs/stability/openclaw-stability-*.json cuando el registrador tiene eventos. Inspecciona el paquete más nuevo con openclaw gateway stability --bundle latest; --limit, --type y --since-seq también se aplican a la salida del paquete.

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 paquete, consulta Exportación de diagnósticos.

bash
openclaw gateway diagnostics exportopenclaw gateway diagnostics export --output openclaw-diagnostics.zipopenclaw gateway diagnostics export --json
"--log-lines
"--log-bytes
"--url
"--token
"--password
"--timeout
--no-stability-bundleboolean

Omite la búsqueda del paquete de estabilidad persistido.

--jsonboolean

Imprime la ruta escrita, el tamaño y el manifiesto como JSON.

La exportación contiene un manifiesto, un resumen en Markdown, la forma de la configuración, detalles de configuración sanitizados, resúmenes de registro sanitizados, instantáneas sanitizadas de estado/salud de Gateway y el paquete de estabilidad más reciente cuando existe uno.

Está pensada para compartirse. Conserva detalles operativos que ayudan con la depuración, como campos de registro seguros de OpenClaw, nombres de subsistemas, códigos de estado, duraciones, modos configurados, puertos, ids de plugins, ids de proveedores, ajustes de funciones no secretos y mensajes de registro operativos redactados. Omite o redacta texto de chat, cuerpos de webhook, salidas de herramientas, credenciales, cookies, identificadores de cuenta/mensaje, texto de prompts/instrucciones, nombres de host y valores secretos. Cuando un mensaje de tipo LogTape parece texto de carga de usuario/chat/herramienta, la exportación conserva solo que se omitió un mensaje y su conteo de bytes.

gateway status

gateway status muestra el servicio de Gateway (launchd/systemd/schtasks) más una comprobación opcional de conectividad/capacidad de autenticación.

bash
openclaw gateway statusopenclaw gateway status --jsonopenclaw gateway status --require-rpc
"--url
"--token
"--password
"--timeout
--no-probeboolean

Omite la comprobación de conectividad (vista solo del servicio).

--deepboolean

También analiza servicios de nivel de sistema.

--require-rpcboolean

Eleva la comprobación de conectividad predeterminada a una comprobación de lectura y sale con código distinto de cero cuando esa comprobación de lectura falla. No se puede combinar con --no-probe.

Semántica de estado
  • gateway status sigue disponible para diagnósticos incluso cuando la configuración local de CLI falta o no es válida.
  • gateway status predeterminado prueba el estado del servicio, la conexión WebSocket y la capacidad de autenticación visible en el momento del handshake. No prueba operaciones de lectura/escritura/administración.
  • Las comprobaciones de diagnóstico no mutan la autenticación de dispositivos por primera vez: reutilizan un token de dispositivo en caché existente cuando existe uno, pero no crean una nueva identidad de dispositivo de CLI ni un registro de emparejamiento de dispositivo de solo lectura solo para comprobar el estado.
  • gateway status resuelve SecretRefs de autenticación configuradas para la autenticación de la comprobación cuando es posible.
  • Si una SecretRef de autenticación requerida no se resuelve en esta ruta de comando, gateway status --json informa rpc.authWarning cuando la conectividad/autenticación de la comprobación falla; pasa --token/--password explícitamente o resuelve primero la fuente del secreto.
  • Si la comprobación tiene éxito, las advertencias de referencias de autenticación no resueltas se suprimen para evitar falsos positivos.
  • Cuando la comprobación está habilitada, la salida JSON incluye gateway.version cuando el Gateway en ejecución la informa; --require-rpc puede recurrir a la carga RPC status.runtimeVersion si la comprobación de handshake de seguimiento no puede proporcionar metadatos de versión.
  • Usa --require-rpc en scripts y automatización cuando un servicio en escucha no es suficiente y también necesitas que las llamadas RPC con alcance de lectura estén sanas.
  • --deep añade un análisis 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 configuraciones deberían ejecutar un gateway por máquina.
  • --deep también informa una delegación reciente de reinicio del supervisor de Gateway cuando el proceso del servicio salió limpiamente por un reinicio de supervisor externo.
  • --deep ejecuta validación de configuración en modo consciente de plugins (pluginValidation: "full") y muestra advertencias de manifiestos de plugins configurados (por ejemplo, metadatos de configuración de canal faltantes) para que las comprobaciones de instalación y actualización las detecten. gateway status predeterminado conserva la ruta rápida de solo lectura que omite la validación de plugins.
  • La salida humana incluye la ruta resuelta del archivo de registro más una instantánea de rutas/validez de configuración de CLI frente a servicio para ayudar a diagnosticar divergencias de perfil o directorio de estado.
Comprobaciones de deriva de autenticación de systemd en Linux
  • En instalaciones systemd de Linux, las comprobaciones de deriva de autenticación del servicio leen valores Environment= y EnvironmentFile= de la unidad (incluidos %h, rutas entre comillas, múltiples archivos y archivos opcionales -).
  • Las comprobaciones de deriva resuelven SecretRefs de gateway.auth.token usando el entorno de ejecución fusionado (primero el entorno del comando de servicio y luego el entorno del proceso como respaldo).
  • Si la autenticación con token no está efectivamente activa (gateway.auth.mode explícito de password/none/trusted-proxy, o modo no definido donde la contraseña puede prevalecer y ningún candidato de token puede prevalecer), las comprobaciones de deriva de token omiten la resolución del token de configuración.

gateway probe

gateway probe es el comando de "depurar todo". Siempre comprueba:

  • tu gateway remoto configurado (si está definido), y
  • localhost (local loopback) incluso si hay un remoto configurado.

Si pasas --url, ese destino explícito se añade antes de ambos. La salida humana etiqueta los destinos como:

  • URL (explícita)
  • Remoto (configurado) o Remoto (configurado, inactivo)
  • Local loopback
bash
openclaw gateway probeopenclaw gateway probe --jsonopenclaw gateway probe --port 18789

OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tcG9ydCA8cG9ydA " type="number"> Usa este puerto para el destino de comprobación local loopback y el puerto remoto del túnel SSH. Sin --url, esto selecciona el destino local loopback en lugar de la URL de entorno de gateway configurada, el puerto de entorno o los destinos remotos.

Interpretación
  • Reachable: yes significa que al menos un destino aceptó una conexión WebSocket.
  • Capability: read-only|write-capable|admin-capable|pairing-pending|connect-only informa lo que la comprobación pudo probar sobre la autenticación. Es independiente de la alcanzabilidad.
  • Read probe: ok significa 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.read significa que la conexión tuvo éxito, pero la RPC con alcance de lectura está limitada. Esto se informa como alcanzabilidad degradada, no como fallo completo.
  • Read probe: failed después de Connect: ok significa que Gateway aceptó la conexión WebSocket, pero los diagnósticos de lectura de seguimiento agotaron el tiempo de espera o fallaron. Esto también es alcanzabilidad degradada, no un Gateway inalcanzable.
  • Al igual que gateway status, la comprobación reutiliza la autenticación de dispositivo en caché existente, pero no crea identidad de dispositivo por primera vez ni estado de emparejamiento.
  • El código de salida es distinto de cero solo cuando ningún destino comprobado es alcanzable.
Salida JSON

Nivel superior:

  • ok: al menos un destino es alcanzable.
  • degraded: al menos un destino aceptó una conexión, pero no completó todos los diagnósticos RPC detallados.
  • capability: mejor capacidad observada entre los destinos alcanzables (read_only, write_capable, admin_capable, pairing_pending, connected_no_operator_scope o unknown).
  • 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 con code, message y targetIds opcionales.
  • network: sugerencias de URL local loopback/tailnet derivadas de la configuración actual y la red del host.
  • discovery.timeoutMs y discovery.count: el presupuesto de descubrimiento y conteo de resultados reales usados para esta pasada de comprobación.

Por destino (targets[].connect):

  • ok: alcanzabilidad después de la clasificación de conexión + degradación.
  • rpcOk: éxito completo de RPC detallada.
  • scopeLimited: la RPC detallada falló por falta de alcance de operador.

Por destino (targets[].auth):

  • role: rol de autenticación informado en hello-ok cuando está disponible.
  • scopes: alcances concedidos informados en hello-ok cuando están disponibles.
  • capability: la clasificación de capacidad de autenticación expuesta para ese destino.
Códigos de advertencia comunes
  • ssh_tunnel_failed: falló la configuración del túnel SSH; el comando recurrió a comprobaciones directas.
  • multiple_gateways: identidades de gateway distintas eran alcanzables, o OpenClaw no pudo probar que los destinos alcanzables son el mismo gateway. Un túnel SSH, una URL de proxy o una URL remota configurada hacia el mismo gateway no activa esta advertencia.
  • auth_secretref_unresolved: no se pudo resolver una SecretRef de autenticación configurada para un destino fallido.
  • probe_scope_limited: la conexión WebSocket tuvo éxito, pero la comprobación de lectura estuvo limitada por la falta de operator.read.

Remoto por SSH (paridad con la app de Mac)

El modo "Remoto por 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 alcanzable en ws://127.0.0.1:<port>.

Equivalente de CLI:

bash
openclaw gateway probe --ssh user@gateway-host

OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tc3NoIDx0YXJnZXQ " type="string"> user@host o user@host:port (el puerto predeterminado es 22).

--ssh-autoboolean

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 existe). Se ignoran las sugerencias solo TXT.

Configuración (opcional, usada como valores predeterminados):

  • gateway.remote.sshTarget
  • gateway.remote.sshIdentity

gateway call <method>

Ayudante RPC de bajo nivel.

bash
openclaw gateway call statusopenclaw gateway call logs.tail --params '{"sinceMs": 60000}'
"--params
"--url
"--token
"--password
"--timeout
--expect-finalboolean

Principalmente para RPCs de estilo agente que transmiten eventos intermedios antes de una carga final.

--jsonboolean

Salida JSON legible por máquina.

Gestionar el servicio de Gateway

bash
openclaw gateway installopenclaw gateway startopenclaw gateway stopopenclaw gateway restartopenclaw gateway uninstall

Instalar con un contenedor

Usa --wrapper cuando el servicio administrado deba iniciarse mediante otro ejecutable, por ejemplo un adaptador de gestor de secretos o un ayudante para ejecutar como otro usuario. El contenedor recibe los argumentos normales del Gateway y es responsable de terminar ejecutando openclaw o Node con esos argumentos.

bash
cat > ~/.local/bin/openclaw-doppler <<'EOF'#!/usr/bin/env bashset -euo pipefailexec doppler run --project my-project --config production -- openclaw "$@"EOFchmod +x ~/.local/bin/openclaw-doppler openclaw gateway install --wrapper ~/.local/bin/openclaw-doppler --forceopenclaw gateway restart

También puedes definir el contenedor mediante el entorno. gateway install valida que la ruta sea un archivo ejecutable, escribe el contenedor en ProgramArguments del servicio y conserva OPENCLAW_WRAPPER en el entorno del servicio para reinstalaciones forzadas, actualizaciones y reparaciones de doctor posteriores.

bash
OPENCLAW_WRAPPER="$HOME/.local/bin/openclaw-doppler" openclaw gateway install --forceopenclaw doctor

Para quitar un contenedor conservado, vacía OPENCLAW_WRAPPER al reinstalar:

bash
OPENCLAW_WRAPPER= openclaw gateway install --forceopenclaw gateway restart
Command options
  • gateway status: --url, --token, --password, --timeout, --no-probe, --require-rpc, --deep, --json
  • gateway install: --port, --runtime <node|bun>, --token, --wrapper <path>, --force, --json
  • gateway restart: --safe, --skip-deferral, --force, --wait <duration>, --json
  • gateway uninstall|start: --json
  • gateway stop: --disable, --json
Lifecycle behavior
  • Usa gateway restart para reiniciar un servicio administrado. No encadenes gateway stop y gateway start como sustituto de reinicio.
  • En macOS, gateway stop usa launchctl bootout de forma predeterminada, lo que elimina el LaunchAgent de la sesión de arranque actual sin conservar una deshabilitación: la recuperación automática de KeepAlive permanece activa para futuros bloqueos y gateway start vuelve a habilitarlo limpiamente sin un launchctl enable manual. Pasa --disable para suprimir KeepAlive y RunAtLoad de forma persistente, de modo que el Gateway no se vuelva a iniciar hasta el siguiente gateway start explícito; usa esto cuando una detención manual deba sobrevivir a reinicios del equipo o del sistema.
  • gateway restart --safe pide al Gateway en ejecución que compruebe previamente el trabajo activo y programe un único reinicio combinado después de que el trabajo activo se vacíe. El reinicio seguro predeterminado espera el trabajo activo hasta el gateway.reload.deferralTimeoutMs configurado (5 minutos de forma predeterminada); cuando ese presupuesto expira, el reinicio se fuerza. Establece gateway.reload.deferralTimeoutMs en 0 para una espera segura indefinida que nunca fuerza. --safe no se puede combinar con --force ni --wait.
  • gateway restart --wait 30s anula el presupuesto configurado de vaciado de reinicio para ese reinicio. Los números sin unidad son milisegundos; se aceptan unidades como s, m y h. --wait 0 espera indefinidamente.
  • gateway restart --safe --skip-deferral ejecuta el reinicio seguro compatible con OpenClaw, pero omite la puerta de aplazamiento para que el Gateway emita el reinicio de inmediato incluso cuando se informen bloqueadores. Es una vía de escape para operadores ante aplazamientos de ejecuciones de tareas atascadas; requiere --safe.
  • gateway restart --force omite el vaciado del trabajo activo y reinicia de inmediato. Úsalo cuando un operador ya haya inspeccionado los bloqueadores de tareas listados y quiera que el Gateway vuelva ahora.
  • Los comandos de ciclo de vida aceptan --json para scripts.
Auth and SecretRefs at install time
  • Cuando la autenticación por token requiere un token y gateway.auth.token está administrado por SecretRef, gateway install valida que el SecretRef se pueda resolver, pero no conserva el token resuelto en los metadatos de entorno del servicio.
  • Si la autenticación por token requiere un token y el SecretRef de token configurado no se resuelve, la instalación falla de forma cerrada en lugar de conservar texto sin formato de respaldo.
  • Para autenticación por contraseña en gateway run, prefiere OPENCLAW_GATEWAY_PASSWORD, --password-file o un gateway.auth.password respaldado por SecretRef antes que --password en línea.
  • En modo de autenticación inferida, OPENCLAW_GATEWAY_PASSWORD solo de shell no relaja los requisitos de token de instalación; usa configuración duradera (gateway.auth.password o env de configuración) al instalar un servicio administrado.
  • Si tanto gateway.auth.token como gateway.auth.password están configurados y gateway.auth.mode no 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).

  • DNS-SD multicast: local.
  • DNS-SD unicast (Bonjour de área amplia): elige un dominio (ejemplo: openclaw.internal.) y configura DNS dividido + un servidor DNS; consulta Bonjour.

Solo los Gateways con descubrimiento Bonjour habilitado (predeterminado) anuncian la baliza.

Los registros de descubrimiento de área amplia pueden incluir estas sugerencias TXT:

  • role (sugerencia de rol del Gateway)
  • transport (sugerencia de transporte, por ejemplo gateway)
  • gatewayPort (puerto WebSocket, normalmente 18789)
  • sshPort (solo en modo de descubrimiento completo; los clientes usan 22 como destino SSH predeterminado cuando no está presente)
  • tailnetDns (nombre de host MagicDNS, cuando está disponible)
  • gatewayTls / gatewayTlsSha256 (TLS habilitado + huella digital del certificado)
  • cliPath (solo en modo de descubrimiento completo)

gateway discover

bash
openclaw gateway discover
"--timeout
--jsonboolean

Salida legible por máquina (también deshabilita estilos/indicador de carga).

Ejemplos:

bash
openclaw gateway discover --timeout 4000openclaw gateway discover --json | jq '.beacons[].wsUrl'

Relacionado

Was this useful?
On this page

On this page