Skip to content

TUI

glidesh ships several terminal UIs, each suited to a different workflow:

  • Console — opened by glidesh with no subcommand (or glidesh console) when no --target/--command is given. Browse groups/hosts, open shells, manage SSH local and reverse port forwards. Saved tunnels auto-reopen across sessions.
  • Plan Execution TUI — opens during glidesh run to show live progress, per-node logs, and a post-run shell.
  • Interactive Group Shell — opens via glidesh console -t <group> (no -c) to broadcast commands across multiple hosts.

When you run a plan, the TUI shows a split-screen view:

  • Top: progress bar with host count, changes, elapsed time
  • Middle: node table with host status, current step, and timing
  • Bottom: scrollable log panel (combined or per-node)
Terminal window
glidesh run -i inventory.kdl -p deploy.kdl
KeyAction
Up/Down or j/kSelect node / scroll logs (depending on focus)
EnterView selected node’s logs
EscBack to combined view
TabSwitch focus between nodes and logs
PgUp/PgDnScroll logs by page
g / GJump to top / bottom of logs
qQuit (confirms if still running)

When viewing a single node’s logs (after pressing Enter), Tab switches focus between the node list and the log panel so you can scroll through the log. Press Esc to return to the combined view.

After a plan completes — whether it succeeded or failed — you can press s on any host in the node table to open an interactive shell directly to that host.

This is the fastest way to debug a failed step: select the failed host, press s, and you are in a remote terminal on that exact machine with no extra commands or windows needed.

Plan completes -> select failed host -> press s -> investigate -> exit -> back to TUI

The TUI suspends while the shell is active. When you type exit (or Ctrl+D), you return to the TUI exactly where you left off.

The footer keybinding hints update after the run completes to show the s shell option.

Shell access respects jump host configuration. If a host was reached through a bastion during the plan, pressing s tunnels through the same bastion automatically.

The glidesh console command opens a dedicated broadcast TUI when targeting multiple hosts without -c:

Terminal window
glidesh console -i inventory.kdl -t web

This TUI has two panels:

  • Output panel: scrollable area showing [hostname]-prefixed results
  • Input bar: type a command and press Enter to run it on all hosts

Commands run concurrently on all targeted hosts (bounded by --concurrency), and output streams in real time. You can scroll through results while a command is running.

KeyAction
EnterRun command on all hosts
Up/DownScroll output
PgUp/PgDnScroll output by page
Ctrl+C / Ctrl+DExit

This is useful for ad-hoc investigation across a fleet — checking disk usage, tailing logs, or verifying a deploy without writing a plan.

For CI pipelines, cron jobs, or when piping output, use --no-tui to get plain text:

Terminal window
glidesh run -i inventory.kdl -p deploy.kdl --no-tui

Output is printed line by line with [group:host] prefixes:

[web:web-1] Connecting...
[web:web-1] Connected (ubuntu-22.04)
[web:web-1] Step 1/3: Deploy binary
[web:web-1] file '/opt/app/bin': changed
[web:web-1] Step 2/3: Restart service
[web:web-1] systemd 'myapp': changed
[web:web-1] OK (2 changed)
--- Run Complete ---
Hosts: 2 total, 2 ok, 0 failed, 4 changed

The TUI is disabled automatically when stdout is not a TTY (e.g., when piping to a file or running in a non-interactive shell). You do not need --no-tui in most CI environments.

For running commands across hosts in CI, use the -c flag — it always produces plain text output regardless of TTY:

Terminal window
glidesh console -i inventory.kdl -t web -c "systemctl status myapp" --no-host-key-check