openclaw dashboard
Open the Control UI with a short-lived, one-time browser pairing link. A successful handoff leaves
that browser with its own durable device credential, so reopening the dashboard does not depend on
the shared Gateway token.
--no-open: print the URL but do not launch a browser.--json: print one machine-readable connection object without opening a browser, using the clipboard, prompting, or starting the Gateway.--yes: start/install the Gateway without prompting when needed.
Machine-readable output
Use--json for desktop integrations and scripts that need the resolved Control UI URL:
url, plus browserUrl,
browserBootstrapExpiresAtMs, httpUrl, wsUrl, port, and tokenIncluded. Browser integrations
should open browserUrl; native RPC clients that need the shared Gateway credential can continue to
use url. If the Gateway is not ready or a browser handoff cannot be issued, the command returns
{"ok":false,"reason":"..."} and exits non-zero. SecretRef-managed shared tokens are never included
in url.
Notes:
- Resolves configured
gateway.auth.tokenSecretRefs when possible. browserUrlcarries a single-use, ten-minute bootstrap in the URL fragment. The Control UI strips it immediately, binds it to the browser’s signed device identity, and stores only the resulting per-device credential.- Follows
gateway.tls.enabled: TLS-enabled gateways print/openhttps://Control UI URLs and connect overwss://. - For
lanor a wildcardcustombind, same-host launches always use loopback because a wildcard is not a browser destination. Plaintexttailnetandcustombinds also use127.0.0.1so the browser has a secure context; TLS-enabled specific hosts keep the configured address so certificate names match. - Before delivering an authenticated loopback URL for a specific-interface bind, the command probes the configured interface and verifies that it and
127.0.0.1are owned by the same Gateway process. Ambiguous listener ownership fails closed with status guidance. - The interactive command prints only the clean base URL; the clipboard/browser launch receives the
one-time
browserUrl, never the shared token. SecretRef-managed shared tokens therefore do not leak into terminal output, clipboard history, or browser-launch arguments. - If clipboard/browser delivery fails for a token-authenticated URL, the command logs a safe manual-auth hint naming
OPENCLAW_GATEWAY_TOKEN,gateway.auth.token, and the URL fragment keytoken, without printing the token value. - If the shared token cannot be placed in a URL and clipboard/browser delivery fails, run
openclaw dashboard --jsonand open its short-livedbrowserUrlwithin ten minutes.