The TUI
kubelings (in cmd/kubelings) is a bubbletea
terminal UI. It is UI-only — every action delegates to the bash runner, so the
TUI and CLI stay in lockstep.
just tui # build + launch# orgo run ./cmd/kubelingsLayout
Section titled “Layout”- Welcome splash on launch (project, author, how-it-works, cluster lifecycle).
Any key enters;
areopens it. - Left — lessons grouped by module with progress markers
◌ / ◐ / ✓. - Right — the selected lesson: description, status, and a Cluster block
(local kind context, node count, k8s version, namespace
kubelings, and the iximiuz playground it mirrors). - Footer — the key bar and a spinner while a task runs.
| Key | Action |
|---|---|
↑/↓ j/k | navigate lessons |
↵ / space | play — cluster up (if needed) → init → drop into shell |
i | init the scenario |
v | verify your fix |
r | reset (wipe namespace + re-init) |
h | show hint |
s | show solution (asks to confirm) |
t | shell wired to the cluster |
u / d | cluster up / down |
g | refresh status & progress |
a | about / welcome |
? | help |
q | quit (cluster stays up) |
The play flow
Section titled “The play flow”Pressing ↵ on a lesson does the whole setup in one keystroke:
- brings the
kindcluster up if it isn’t already, - runs the lesson’s init tasks (builds the broken scenario),
- drops you into a shell wired to the cluster (context
kind-kubelings, namespacekubelings) that prints the task.
Inside that shell you have helper commands:
task · hint · verify · solution · klreset · k=kubectlType verify to run the check without leaving the shell; exit returns to the TUI
and the marker updates.
Switching scenarios
Section titled “Switching scenarios”Starting a different scenario while one is still active prompts destroy / keep / cancel — so you don’t clobber in-progress work by accident.
Progress markers
Section titled “Progress markers”Markers are persisted in .labctl/progress.tsv and shared with the CLI, so
whether you run a lesson from the TUI or run-challenge-local.sh, the state stays
in sync.