Files
openclaw/docs/cli/tui.md
Peter Steinberger 96f0983a85 fix(onboarding): skip setup for configured gateways and require inference first (#102883)
* fix(crestodian): keep onboarding RPCs restart-safe

* fix(profiles): isolate approval state migrations

* fix(crestodian): bypass configured gateway setup

* test(crestodian): type onboarding mocks

* fix(onboarding): require inference before Crestodian

* fix(onboarding): enforce verified inference handoff

* fix(macos): reset setup on gateway endpoint edits

* chore(i18n): refresh native source inventory

* fix(gateway): keep socket on request cancellation

* test(packaging): require workspace templates

* fix(onboarding): bind setup to verified inference

* fix(onboarding): align inference gate contracts

* fix(crestodian): classify concurrent policy rejection

* test(crestodian): expect registry restoration

* fix(onboarding): bind setup to configured gateways

* fix(codex): preserve startup phase deadlines

* test(crestodian): match fail-closed policy ordering

* test(onboarding): assert bound gateway handoff

* fix(codex): bind runtime resolution to spawn cwd

* test(crestodian): assert policy rejection order

* fix(cli): preserve gateway routing across restarts

* fix(macos): fail closed during gateway edits

* test(macos): cover gateway route generation races

* chore: keep release notes out of onboarding PR

* fix(ci): refresh onboarding generated checks

* style(swift): align gateway channel formatting

* fix(ci): refresh plugin SDK surface budgets

* fix(ci): resync native string inventory

* refactor(swift): split gateway channel support

* test(doctor): isolate plugin compatibility registry

* test(macos): isolate gateway onboarding fixtures

* test(macos): assert gateway lease health ordering

* fix(codex): reconcile computer-use startup changes
2026-07-11 10:25:14 -07:00

5.0 KiB

summary, read_when, title
summary read_when title
CLI reference for `openclaw tui` (Gateway-backed or local embedded terminal UI)
You want a terminal UI for the Gateway (remote-friendly)
You want to pass url/token/session from scripts
You want to run the TUI in local embedded mode without a Gateway
You want to use openclaw chat or openclaw tui --local
TUI

openclaw tui

Open the terminal UI connected to the Gateway, or run it in local embedded mode.

Related guide: TUI

Options

Flag Default Description
--local false Run against the local embedded agent runtime instead of a Gateway.
--url <url> gateway.remote.url from config Gateway WebSocket URL.
--token <token> (none) Gateway token if required.
--password <pass> (none) Gateway password if required.
--tls-fingerprint <sha256> gateway.remote.tlsFingerprint Expected TLS certificate fingerprint for a pinned wss:// Gateway.
--session <key> main (or global when scope is global) Session key. Inside an agent workspace it auto-selects that agent unless prefixed.
--deliver false Deliver assistant replies through configured channels.
--thinking <level> (model default) Thinking level override.
--message <text> (none) Send an initial message after connecting.
--timeout-ms <ms> agents.defaults.timeoutSeconds Agent timeout. Invalid values log a warning and are ignored.
--history-limit <n> 200 History entries to load on attach.

Aliases: openclaw chat and openclaw terminal invoke this command with --local implied.

Notes

  • --local cannot combine with --url, --token, --password, or --tls-fingerprint.
  • tui resolves configured Gateway auth SecretRefs for token/password auth when possible (env/file/exec providers).
  • With no explicit URL or port, tui follows the active local Gateway port recorded by the running Gateway. Explicit --url, OPENCLAW_GATEWAY_URL, OPENCLAW_GATEWAY_PORT, and remote Gateway config keep precedence.
  • Launched from inside a configured agent workspace directory, TUI auto-selects that agent for the session key default (unless --session is explicitly agent:<id>:...).
  • To show the Gateway hostname in the footer for non-local URL-backed connections, run openclaw config set tui.footer.showRemoteHost true. Off by default; never shown for loopback or embedded local connections.
  • Local mode uses the embedded agent runtime directly. Most local tools work, but Gateway-only features are unavailable.
  • Local mode adds /auth [provider] to the TUI command surface.
  • Plugin approval gates still apply in local mode: tools that require approval prompt for a decision in the terminal, nothing is silently auto-approved.
  • Session goals appear in the footer and can be managed with /goal.

Examples

openclaw chat
openclaw tui --local
openclaw tui
openclaw tui --url ws://127.0.0.1:18789 --token <token>
openclaw tui --session main --deliver
openclaw chat --message "Compare my config to the docs and tell me what to fix"
# when run inside an agent workspace, infers that agent automatically
openclaw tui --session bugfix

Config repair loop

Use local mode to have the embedded agent inspect the current config, compare it against the docs, and help repair it from the same terminal.

If openclaw config validate is already failing, run openclaw configure or openclaw doctor --fix first; openclaw chat does not bypass the invalid-config guard.

openclaw chat

Then inside the TUI:

!openclaw config file
!openclaw docs gateway auth token secretref
!openclaw config validate
!openclaw doctor

Apply targeted fixes with openclaw config set or openclaw configure, then rerun openclaw config validate. See TUI and Config.