TUI Dashboard
Full-screen Ratatui dashboard - close to the web Console, in your terminal
laser tui (alias laser ui) launches a full-screen Ratatui dashboard with mouse and keyboard support, a command palette, and persistent history. It runs against the same backend as every headless verb and ships in the same binary, so there is no extra install, separate authentication step, or separate config.
Launch
laser tuiOr run any verb inside the TUI to render its output in the dashboard:
laser deployment list --interactive
laser tenant get --interactiveThe --interactive flag seeds the TUI with the resolved verb and shows the result alongside the navigation panes.
Layout
The dashboard mirrors the organization hierarchy:
- Welcome / Dashboard - account, active context, environment overview, starter shortcut.
- Tenant - members, roles, invitations, API keys, cloud accounts, billing.
- Division - environments under a division.
- Environment - deployments under an environment.
- Deployment - tabbed detail view: overview, credentials, configs, heartbeats, metrics, logs, access-rules, snapshots, activity, connectors.
- Resource tables - paginated list views with breadcrumb-aware filters.
A status bar along the bottom shows the active context, polling state, and the current screen. The Welcome screen lists detected env overrides (LD_API_KEY, LD_CONTEXT).
Key Bindings
The TUI keeps direct key bindings to a minimum so they never collide with shell or terminal conventions. Everything else routes through the command palette (start typing on any screen, or press : to make it explicit).
Navigation
| Key | Action |
|---|---|
↑ / ↓ | Move up / down in lists, scroll panes |
← / → | Back / forward, or pane focus on the dashboard |
Enter | Drill into the selected resource, or execute the typed command |
Esc | Back one screen; on the Logs tab also clears the filter |
Tab | Next deployment tab; on the dashboard toggles tree / detail focus |
Shift+Tab | Previous deployment tab |
1...9 / 0 | Jump directly to deployment tab N (0 maps to tab 10) |
Ctrl+C / Ctrl+D | Quit |
Function and Modifier Keys
| Key | Action |
|---|---|
F5 | Force-refresh the active screen (works regardless of auto-poll) |
F4 | Cycle the runtime filter (iggy / connectors / warden) on the deployment view |
Ctrl+P | Toggle background auto-poll on / off |
PageUp / PageDown | Page-scroll the active pane |
Ctrl+B / Ctrl+F | Page-scroll up / down (vim-style alternative) |
< / > | Page-scroll up / down (modifier-free alternative) |
Command Palette
The bottom of the screen is always an input. Type any character on a navigable screen and the palette opens automatically; press : to start the line with the prefix explicitly. Two kinds of input are accepted:
- TUI verbs prefixed with
:(e.g.:create,:upgrade,:refresh) operate on the current screen. - CLI commands without a prefix (e.g.
deployment list,tenant get) are parsed by clap and executed inside the TUI.
| Key (palette open) | Action |
|---|---|
Enter | Execute the line (or accept the highlighted suggestion) |
Tab | Accept / cycle the next candidate |
↑ / ↓ | Cycle command history (up = older) |
Esc | Reset the input; second press exits |
TUI verbs
| Verb | Effect |
|---|---|
:auth / :login | Open the auth wizard |
:logout | Sign out of the active context |
:purge | Delete every context and keyring entry (confirmation required) |
:whoami | Show the active context and tenant |
:nav / :browse | Open the navigator from the welcome screen |
:dashboard / :overview | Jump to the dashboard |
:welcome / :home / :hello | Return to the welcome screen |
:help / :? | Show the help panel |
:use <context> | Switch the active context |
:contexts / :ctxs | List all contexts |
:show | Show details for the selected resource |
:format <table|json|yaml|name> | Change the output format used by inline command results |
:new / :create | Open the create wizard for the current scope |
:edit | Edit the selected resource |
:delete / :rm | Delete the selected resource (with confirmation) |
:upgrade | Open the upgrade wizard for the current deployment |
:managed / :byoc / :starter | Open the matching deployment provisioning wizard |
:reveal | Reveal masked deployment credentials |
:activate | Activate the selected config version |
:download | Generate a download URL for the selected snapshot |
:filter | Focus the filter input on logs / metrics tabs |
:copy / :select | Toggle terminal mouse-capture so you can drag-select text |
:save | Save the current command output to a file |
:raw | Show the raw response payload for the last command |
:clear | Clear the message log |
:refresh / :reload | Force-refresh the active screen (same as F5) |
:poll | Toggle auto-poll (same as Ctrl+P) |
:exit / :quit / :q | Exit the TUI |
History is persisted at $XDG_DATA_HOME/laser/history (1000-entry cap, atomic writes).
Wizards
Create, upgrade, and delete flows surface as wizards with inline form validation:
- Managed deployment wizard - cloud, region, tier, cluster mode, storage type and size, availability mode, encryption, retention, spend limit. Available regions, tiers, and storage types are pulled live from
laser cloud tiersandlaser cloud storages. - BYOC deployment wizard - the same fields as managed, plus the AWS account ID, role ARN, external ID, and VPC details (or the GCP project, service account, and VPC for GCP deployments).
- Starter deployment wizard - a one-screen Free-tier provisioner that defaults to
us-east-1on AWS orus-central1on GCP. - Upgrade wizard - tier and storage deltas with valid targets pulled from the API.
- Delete confirmation - destructive operations require typed confirmation, and protected resources additionally require a one-time code.
Mouse
Mouse events are wired through crossterm:
- Left click to select rows, switch tabs, and toggle focus.
- Wheel up and down to scroll lists and detail panes.
Mouse support can be disabled by your terminal. Every action has a keyboard equivalent.
Polling
The TUI polls the backend every five seconds. Toggle auto-poll with Ctrl+P (or :poll); force an immediate refresh with F5 (or :refresh). The status bar reflects the current polling state.
Theming
The dashboard ships with a monochrome high-contrast palette. Color output is suppressed when NO_COLOR is set or --no-color is passed. The TUI runs in the terminal's alt-screen mode, so your scrollback is left untouched on exit.
When to Use the TUI vs Headless Verbs
| Use the TUI when | Use headless verbs when |
|---|---|
| Exploring a new tenant | Scripting, CI, or cron jobs |
| Creating deployments interactively | Composing pipelines |
| Tailing live logs or metrics | Returning JSON to another tool |
| Triaging an incident | Embedding in agents |
Both modes share the same authentication, context, and backend, so you can swap freely.