π― Goal
Convert the kdm show command from a static CLI table output into a fully interactive TUI dashboard β similar to tools like k9s, LazyDocker, and btop.
π Current Behavior
kdm show retrieves and displays workload resources or cluster metadata in plain, formatted tables.
Subcommands:
| Subcommand |
Description |
kdm show runners |
Combined table of all active Kubernetes pods and Docker containers |
kdm show pods |
Kubernetes pods only |
kdm show containers |
Docker containers only |
kdm show nodes |
Kubernetes cluster node details |
kdm show minikube |
Local Minikube profile and connection status |
Example usage:
kdm show runners
kdm show pods
kdm show minikube
π Proposed Interactive Dashboard
Since KDM is built with Ink (React for CLIs), the goal is to build a fully interactive TUI β not static terminal output.
Architecture
kdm show
β
βΌ
Ink React Component
βββ useInput() β keyboard event handler
βββ useState() β active tab, search query, selected row
βββ Kubernetes / Docker API layer β fetch resources
βββ Modal overlay component β resource details
β
βΌ
Terminal UI
Layout
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Pods | Containers | Nodes | Runners | Minikube β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Search: nginx π β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β NAME STATUS AGE CPU MEMORY β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β nginx-123 Running 2h 15% 120MB β
β backend-api CrashLoop 30m 40% 300MB β
β redis-cache Running 5h 8% 90MB β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β TAB:Switch /:Search ENTER:Details Q:Quit β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
User Flow
- User runs
kdm show β default Pods tab loads.
- Press
β / β or Tab / Shift+Tab to switch between tabs.
- Press
/ to activate the search bar β the table filters instantly as you type.
- Use
β / β to navigate rows.
- Press
Enter on a row to open a detail overlay popup:
ββββββββββββββββββββββββββ
β nginx-123 β
ββββββββββββββββββββββββββ€
β Status : Running β
β CPU : 15% β
β Memory : 120MB β
β Node : worker-01 β
ββββββββββββββββββββββββββ
- Press
Esc to dismiss the overlay. Press Q to quit.
Keyboard Shortcuts
| Key |
Action |
β / β / Tab |
Switch tabs |
β / β |
Navigate table rows |
/ |
Activate search filter |
Enter |
Open resource detail overlay |
Esc |
Close overlay |
Q |
Quit |
Recommended Libraries
π Contribution Workflow
- Fork the repo and create a feature branch (e.g.,
feature/interactive-kdm-show).
- Implement the interactive TUI for
kdm show using the layout and flow described above.
- Submit a PR explicitly linked to this issue (e.g.,
Closes #135).
- πΈ Include a screenshot or recording of the implemented UI in your PR to verify the new dashboard experience.
π― Goal
Convert the
kdm showcommand from a static CLI table output into a fully interactive TUI dashboard β similar to tools like k9s, LazyDocker, and btop.π Current Behavior
kdm showretrieves and displays workload resources or cluster metadata in plain, formatted tables.Subcommands:
kdm show runnerskdm show podskdm show containerskdm show nodeskdm show minikubeExample usage:
π Proposed Interactive Dashboard
Since KDM is built with Ink (React for CLIs), the goal is to build a fully interactive TUI β not static terminal output.
Architecture
Layout
User Flow
kdm showβ default Pods tab loads.β/βorTab/Shift+Tabto switch between tabs./to activate the search bar β the table filters instantly as you type.β/βto navigate rows.Enteron a row to open a detail overlay popup:Escto dismiss the overlay. PressQto quit.Keyboard Shortcuts
β/β/Tabβ/β/EnterEscQRecommended Libraries
ink-tabink-text-inputink-tablechalk<Box>with flexboxπ Contribution Workflow
feature/interactive-kdm-show).kdm showusing the layout and flow described above.Closes #135).