Dashboard (Control UI)
The Gateway dashboard is the browser Control UI served at/ by default
(override with gateway.controlUi.basePath).
Quick open (local Gateway):
Key references:
- Control UI for usage and UI capabilities.
- Tailscale for Serve/Funnel automation.
- Web surfaces for bind modes and security notes.
connect.params.auth
(token or password). See gateway.auth in Gateway configuration.
Security note: the Control UI is an admin surface (chat, config, exec approvals).
Do not expose it publicly. The UI keeps dashboard URL tokens in memory for the current tab
and strips them from the URL after load.
Prefer localhost, Tailscale Serve, or an SSH tunnel.
Fast path (recommended)
- After onboarding, the CLI auto-opens the dashboard and prints a clean (non-tokenized) link.
- Re-open anytime:
openclaw dashboard(copies link, opens browser if possible, shows SSH hint if headless). - If the UI prompts for auth, paste the token from
gateway.auth.token(orOPENCLAW_GATEWAY_TOKEN) into Control UI settings.
Token basics (local vs remote)
- Localhost: open
http://127.0.0.1:18789/. - Token source:
gateway.auth.token(orOPENCLAW_GATEWAY_TOKEN);openclaw dashboardcan pass it via URL fragment for one-time bootstrap, but the Control UI does not persist gateway tokens in localStorage. - If
gateway.auth.tokenis SecretRef-managed,openclaw dashboardprints/copies/opens a non-tokenized URL by design. This avoids exposing externally managed tokens in shell logs, clipboard history, or browser-launch arguments. - If
gateway.auth.tokenis configured as a SecretRef and is unresolved in your current shell,openclaw dashboardstill prints a non-tokenized URL plus actionable auth setup guidance. - Not localhost: use Tailscale Serve (tokenless for Control UI/WebSocket if
gateway.auth.allowTailscale: true, assumes trusted gateway host; HTTP APIs still need token/password), tailnet bind with a token, or an SSH tunnel. See Web surfaces.
If you see “unauthorized” / 1008
- Ensure the gateway is reachable (local:
openclaw status; remote: SSH tunnelssh -N -L 18789:127.0.0.1:18789 user@hostthen openhttp://127.0.0.1:18789/). - Retrieve or supply the token from the gateway host:
- Plaintext config:
openclaw config get gateway.auth.token - SecretRef-managed config: resolve the external secret provider or export
OPENCLAW_GATEWAY_TOKENin this shell, then rerunopenclaw dashboard - No token configured:
openclaw doctor --generate-gateway-token
- Plaintext config:
- In the dashboard settings, paste the token into the auth field, then connect.