A fast, keyboard-driven Kubernetes TUI. Browse any resource, read and edit objects, follow logs, and open a shell in a pod, without leaving the terminal. Inspired by k9s, Lens, and lazygit.
kli-github.mp4
Install the latest release with the installer:
curl -fsSL https://raw.githubusercontent.com/bjarneo/kli/main/install.sh | shOr with Go:
go install github.com/bjarneo/kli@latestOr from a clone:
make install # builds and installs to ~/.local/bin, /usr/local/bin, or your last $PATH dir
go build -o kli .Building from source requires Go 1.26.3+. Running kli requires a reachable cluster.
kli # current context, remembered namespace
kli -n kube-system # start in a namespace
kli --resource deploy # start on a resource type
kli --theme tokyonight # switch theme
kli upgrade # replace the current binary with the latest release
Press ? for help and Ctrl+K for the command palette.
kli reads an optional config file from ~/.config/kli/config.yaml for sidebar
customization and stores session state in ~/.config/kli/state.json.
See Configuration for kli config init, sidebar
examples, resource names, and opt-in resources.
- A cockpit overview on launch: cluster health, node CPU and memory gauges, pod and deployment status, and recent warnings.
- Server-rendered tables for any resource, the same columns as
kubectl get, including CRDs. - lazygit-style layout: a left resource nav,
Tabbetween panes, and a status bar that always shows the keys that work right now. - Config summaries, raw YAML, logs, edit-in-editor, shell into pods or nodes, delete, scale, restart, and CronJob trigger, all inside the TUI.
- ANSI colors that match your terminal in light or dark mode, with Tokyo Night as a fallback (
--theme tokyonight). - A customizable sidebar menu via an optional config file (
kli config init): add CRDs like HPAs, KEDA ScaledObjects, or OpenTelemetry collectors. Cshows the equivalentkubectlcommand, andOopens upstream Kubernetes docs for known resources.- Remembers your last context and namespace.
Full index: docs/.