// included in Krust v1.4.3

K9r.
Terminal UI for Krust core. #

A keyboard-first Kubernetes TUI backed by the same Rust engine that powers Krust: live pod cache, background refresh, k9s-style keys, and terminal-native logs, shell, YAML, and actions.

# Install Krust + K9r
$ brew install --cask vanchonlee/tap/krust
$ k9r --namespace default
includes: Krust.app + k9r
k9s-style keys Warm cache/watch Same Rust core
K9r terminal UI showing cached Kubernetes pod rows, namespace shortcuts, resource actions, CPU and memory columns, and keyboard hints

// Shared engine

Not a rewrite.
A second surface. #

K9r uses the same Rust Kubernetes engine behind Krust. The terminal UI owns layout, selection, commands, and keybindings; Krust core owns Kubernetes clients, watches, stores, logs, YAML operations, Helm, exec, security checks, and port-forward plumbing.

That keeps the product split clean: Krust is the visual macOS app; K9r is the terminal workflow for operators who want speed inside tmux, SSH-style sessions, or a keyboard-only environment.

krust-core
watchers
logs
yaml
helm
exec
security
port-forward
metrics
Krust macOS GUI K9r terminal UI

// Core workflows

A full terminal operating surface #

K9r is not a toy shell around pods. It covers the daily Kubernetes loop: pick context, scan resources, drill into owners, stream logs, edit YAML, open shells, port-forward, and take safe actions without leaving the terminal.

Context + Namespace

Pick kube contexts, switch namespaces, keep recent namespaces close, and jump through command mode without leaving the terminal.

Resource Tables

Browse pods, workloads, services, events, Helm, port-forwards, security, and core cluster resources with grouped navigation.

Live Pods

Pod rows are backed by the Krust watcher and store model, with filtering, table navigation, container drill-down, and status refresh.

Logs

Open pod or container logs, follow the tail, toggle timestamps and wrapping, clear the view, and save logs when you need an artifact.

YAML

View YAML in the TUI, edit with $VISUAL or $EDITOR, dry-run changes, and apply through Krust core.

Shell + Attach

Open pod shell, attach to containers, or start a node debug shell from the terminal flow.

Safe Actions

Delete, restart, scale, rollback, CronJob trigger/suspend, and node cordon/uncordon/drain flows use explicit confirmations.

Port Forward

Start and view active port-forwards from the terminal while reusing Krust's core forwarding model.

// Performance

Warm cache.
Fast terminal flow. #

K9r is fast because it keeps the cluster close. Pods and resources stay warm in a local runtime, and Kubernetes changes stream in continuously. Most navigation reads what K9r already knows instead of stopping to ask the API server again.

That changes how the terminal feels on a noisy cluster: filters respond immediately, workload-to-pod drill-downs do not wait on a round trip, and the UI keeps moving while fresh data arrives in the background.

1Warm cluster statepods and resources stay ready locally
2Live updateschanges stream in as they happen
3Instant screensviews render from hot data first
4No blocking waitsAPI refreshes happen in the background

// Operating loops

Built for terminal muscle memory #

K9r keeps the common Kubernetes loop close to the keyboard: context, namespace, resource, child resources, logs, YAML, shell, attach, and safe actions.

Recent namespaces

Keep the namespaces you touched recently on numeric shortcuts, with all always available first.

Resource drill-down

Enter from workload to pods, pod to containers, and container to logs while preserving the route stack for Escape-back navigation.

Command + filter

Use : for resource jumps and / for table filtering, with autocomplete designed around Kubernetes aliases.

Safe mutations

Delete, restart, scale, trigger, cordon, drain, attach, shell, and edit flows require explicit intent before changing cluster state.

// Product fit

Choose the surface
that matches the work. #

Krust, k9r, and krust-core are the same product family with different responsibilities: visual desktop workflows, terminal workflows, and shared Kubernetes engine behavior.

K9r terminalKrust macOSkrust-core
InterfaceTerminal UIKeyboard-first flowNative macOS GUIVisual incident workspaceRust libraryShared engine and APIs
Best forFast terminal navigation, logs, shell, attach, YAML, and safe actionsInspectors, topology, multi-window debugging, AI diagnostics, and desktop workflowsWatchers, caches, metrics, logs, RBAC, topology, CRDs, Helm, exec, and port-forwarding
Key modelk9s-style hotkeysLower relearning costNative macOS shortcutsMenus, panels, inspectorsAPI-firstNo UI assumptions
State modelWarm cache/watchRender from local state firstWarm cache/watchShared with visual surfacesSource of truthKubernetes clients and stores
StatusIncluded with KrustDistributed as the k9r commandPublic macOS appInternal shared core
PlatformmacOS firstPackaged with KrustmacOS 14+Rust core used by Krust and k9r

Two workflows. One Kubernetes engine. #

Use Krust when you want the full native macOS GUI. Use K9r when you want the same engine compressed into a terminal session.

# Install Krust + K9r
$ brew install --cask vanchonlee/tap/krust
This installs both Krust.app and the k9r terminal command.
Open Krust Landing Review Workflows