Dashboard (Control UI)

El dashboard del Gateway es la interfaz de Control UI servida en / por defecto (sobreescribe con gateway.controlUi.basePath).

Acceso rápido (Gateway local):

Referencias clave:

La autenticación se aplica en el handshake WebSocket mediante connect.params.auth (token o contraseña). Consulta gateway.auth en Configuración del Gateway.

Nota de seguridad: el Control UI es una superficie de administración (chat, configuración, aprobaciones exec). No lo expongas públicamente. La UI mantiene los tokens de URL del dashboard en sessionStorage para la sesión actual de la pestaña del navegador y la URL del gateway seleccionada, y los elimina de la URL tras la carga. Prefiere localhost, Tailscale Serve o un túnel SSH.

Ruta rápida (recomendado)

  • Tras el onboarding, el CLI auto-abre el dashboard e imprime un enlace limpio (sin token).
  • Vuelve a abrir en cualquier momento: openclaw dashboard (copia el enlace, abre el navegador si es posible, muestra indicación SSH si es headless).
  • Si la UI solicita auth, pega el token de gateway.auth.token (o OPENCLAW_GATEWAY_TOKEN) en los ajustes del Control UI.

Conceptos básicos de tokens (local vs remoto)

  • Localhost: abre http://127.0.0.1:18789/.
  • Origen del token: gateway.auth.token (o OPENCLAW_GATEWAY_TOKEN); openclaw dashboard puede pasarlo vía fragmento de URL para bootstrap único, y el Control UI lo mantiene en sessionStorage para la sesión actual de la pestaña del navegador y la URL del gateway seleccionada en lugar de localStorage.
  • Si gateway.auth.token está gestionado por SecretRef, openclaw dashboard imprime/copia/abre una URL sin token por diseño. Esto evita exponer tokens gestionados externamente en logs del shell, historial del portapapeles o argumentos de lanzamiento del navegador.
  • Si gateway.auth.token está configurado como SecretRef y no está resuelto en tu shell actual, openclaw dashboard sigue imprimiendo una URL sin token más guía de configuración de auth accionable.
  • No localhost: usa Tailscale Serve (sin token para Control UI/WebSocket si gateway.auth.allowTailscale: true, asume host del gateway de confianza; los endpoints HTTP API siguen necesitando token/contraseña), bind a tailnet con token, o un túnel SSH. Consulta Superficies web.

Si ves “unauthorized” / 1008

  • Asegúrate de que el gateway sea accesible (local: openclaw status; remoto: túnel SSH ssh -N -L 18789:127.0.0.1:18789 user@host luego abre http://127.0.0.1:18789/).
  • Para AUTH_TOKEN_MISMATCH, los clientes pueden hacer un reintento de confianza con un token de dispositivo en caché cuando el gateway devuelve indicaciones de reintento. Si la auth sigue fallando después de ese reintento, resuelve la desincronización de tokens manualmente.
  • Para pasos de reparación de desincronización de tokens, sigue Lista de verificación de recuperación de desincronización de tokens.
  • Recupera o proporciona el token desde el host del gateway:
    • Config en texto plano: openclaw config get gateway.auth.token
    • Config gestionada por SecretRef: resuelve el proveedor de secretos externo o exporta OPENCLAW_GATEWAY_TOKEN en este shell, luego vuelve a ejecutar openclaw dashboard
    • Sin token configurado: openclaw doctor --generate-gateway-token
  • En los ajustes del dashboard, pega el token en el campo de auth, luego conecta.