Skip to content

TUI shortcuts

Terminal window
kaio-cli tui

The 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.
Every tab under [Tab], then a stack created end to end: name it, write its compose.yml in $EDITOR, add a variable, deploy.
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.

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
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.

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.

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.

If the file changed, the stack is redeployed after confirmation; pending environment changes are applied at the same time.

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)
Key Action
d Delete the selected item
p Prune all unused items of that type
v Scan the selected image for CVEs (Images 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.

p executes a global prune: containers, images and networks.

Every destructive action (delete, prune, rollback, apply) pops a confirmation modal: y to confirm, n or Esc to cancel.

Kaio, built by Régis Gaidot