TUI shortcuts
kaio-cli tuiThe TUI is fully event-driven: a single message loop multiplexes keyboard input, periodic refreshes, the live SSE event stream, log streaming and one-shot data fetches, so network calls never block rendering. It reaches feature parity with the web app and the CLI.
![The TUI walked through with Tab: the Stacks tree, a folded container group, the images, volumes, networks and events tables, then a new stack named in the [n] dialog, its compose.yml written in $EDITOR, a variable added and the stack deployed.](/_astro/tui.CyxtPgrM_1rGnt1.webp)
Navigation
Section titled “Navigation”| Key | Action |
|---|---|
Tab / Shift+Tab |
Switch tabs: Stacks (default), Containers, Images, Volumes, Networks, Nodes, Events, System |
↑ / ↓ or j / k |
Scroll lists |
| Mouse | Wheel to scroll, click to select a row or switch tabs |
q |
Quit |
Live CPU and RAM sparklines (12 h, with current value and peak) sit alongside the global status table on every tab.
Stacks tab
Section titled “Stacks tab”Each stack shows an aggregated STATE column (running / partial / paused /
stopped, with a running count) and lists its containers underneath.
| Key | Action |
|---|---|
s |
Start the stack, or resume it when it is paused |
p |
Pause the stack, or resume it when it is paused |
u |
Update (pull & recreate) |
r |
Restart |
c |
Check for image updates |
l |
Stream the logs of every container, prefixed by service (q to close) |
v |
Version history, then r to rollback, d to delete a version |
e |
Edit environment variables |
a |
Apply pending changes |
C |
Copy the stack to another server, or here under another name |
n |
New stack (no selection needed) |
E |
Edit the compose.yml in $VISUAL / $EDITOR |
Enter |
View the compose.yml (scrollable) |
d |
Delete |
Copy dialog (C)
Section titled “Copy dialog (C)”| Key | Action |
|---|---|
↑ / ↓ |
Choose the destination: this server, or any node that is online |
i |
Rename the copy; Enter or Esc leaves the field |
v |
Carry the volume data across |
s |
Start the copy once it has landed |
b |
Accept that mounted host paths stay behind |
a |
Accept losing volumes Docker named itself |
- / + |
Move every published port by a thousand, for a clone sharing a host |
Enter |
Copy |
Esc |
Cancel |
The source is never touched. A copy that is refused says why in the status line, so nothing is changed on either end.
Environment editor (e)
Section titled “Environment editor (e)”| Key | Action |
|---|---|
a |
Add |
e / Enter |
Edit |
d |
Delete |
s |
Toggle secret |
w |
Save as pending |
q |
Close |
Inside the inline editor: Tab switches between key and value, Enter
validates, Esc cancels. Stacks with unapplied variables show ✎ env pending.
Creating a stack (n)
Section titled “Creating a stack (n)”Type a name, then write the compose file in your editor ($VISUAL, $EDITOR,
fallback vi). Leaving the template unchanged cancels. The variables table
opens next: add variables if needed, E to reopen the compose file, w to
deploy (q twice to cancel). If the deployment fails, the draft reopens so you
can fix it.
Editing the compose file (E)
Section titled “Editing the compose file (E)”If the file changed, the stack is redeployed after confirmation; pending environment changes are applied at the same time.
Containers tab
Section titled “Containers tab”Enter expands or collapses a stack group. With a container selected:
| Key | Action |
|---|---|
s |
Start |
x |
Stop |
r |
Restart |
p |
Pause / unpause |
d |
Delete (with confirmation) |
l |
Stream logs full-screen (q to close); on a stack group row, the whole stack |
! |
Attach an interactive shell (Ctrl-] to detach) |
Images / Volumes / Networks tabs
Section titled “Images / Volumes / Networks tabs”| Key | Action |
|---|---|
d |
Delete the selected item |
p |
Prune all unused items of that type |
v |
Scan the selected image for CVEs (Images tab) |
Nodes tab
Section titled “Nodes tab”The Kaio servers that have joined this one. See Multiple servers.
| Key | Action |
|---|---|
c |
Probe the selected node |
C |
Probe every node |
d |
Remove the selected node from the registry (with confirmation) |
Each row carries a name, a URL and the result of the last probe: status, the
version the node reports, and the last successful contact. A server enters this
list by running kaio-cli join on it; the TUI reads the registry and probes it,
it never creates an entry.
System tab
Section titled “System tab”p executes a global prune: containers, images and networks.
Confirmations
Section titled “Confirmations”Every destructive action (delete, prune, rollback, apply) pops a confirmation
modal: y to confirm, n or Esc to cancel.
Related
Section titled “Related”Kaio, built by Régis Gaidot