k9s

k9s: A Terminal UI for the Cluster

k9s 592,566 (github.com/derailed/k9s (https://github.com/derailed/k9s 34,694 ), Apache-2.0, about 34,700 stars) is a full-screen terminal UI written in Go, at 0.51.0 (6 June 2026) here. It installs as one binary: brew 6,457 install derailed/k9s/k9s, winget 26,463 install k9s, snap install k9s --devmode or go install github.com/derailed/k9s@latest. It reads your kubeconfig and current context like kubectl 5,150 , so it works over SSH, inside WSL 6 and on a server with no browser. To capture a screen as text, run it in a detached tmux 49,533 session:

k9s on BookNest's namespace, captured from a 95-column tmux sessionYAML
tmux new-session -d -s l2-k9s -x 95 -y 17 \
  "k9s -n booknest -c pods --readonly --logoless --splashless"
sleep 8
tmux capture-pane -p -t l2-k9s | sed 's/ *$//'
tmux kill-session -t l2-k9s
Output
 Context: kind-l2-tools [R]                        <0> all        <d>       Describe        <o…
 Cluster: kind-l2-tools                            <1> booknest   <?>       Help            <f>
 User:    kind-l2-tools                            <2> default    <shift-j> Jump Owner      <w>
 K9s Rev: v0.51.0                                                 <l>       Logs            <y>
 K8s Rev: v1.37.0                                                 <p>       Logs Previous
 CPU:     n/a                                                     <shift-f> Port-Forward
 MEM:     n/a
┌───────────────────────────────────── pods(booknest)[5] ─────────────────────────────────────┐
│ NAME↑                          PF READY STATUS   RESTARTS IP           NODE                 │
│ booknest-api-9997c5b78-6xcfh   ●  1/1   Running         0 10.244.0.6   l2-tools-control-pla │
│ booknest-api-9997c5b78-tpld6   ●  1/1   Running         0 10.244.0.5   l2-tools-control-pla │
│ booknest-postgres-0            ●  1/1   Running         0 10.244.0.10  l2-tools-control-pla │
│ booknest-web-56b46984d4-55vpf  ●  1/1   Running         0 10.244.0.8   l2-tools-control-pla │
│ booknest-web-56b46984d4-qjq9r  ●  1/1   Running         0 10.244.0.7   l2-tools-control-pla │
└─────────────────────────────────────────────────────────────────────────────────────────────┘
  <pod>

The header shows the context, the key bindings for the current view and [R] for read-only mode. CPU and MEM read n/a because this cluster has no metrics-server 6,745 (metrics-server and kubectl top). In a real terminal you type : and a resource name or short name (:deploy, :svc, :events) to switch views, / to filter rows, d to describe the selected row, l for its logs and shift-f to port-forward. Without --readonly, ctrl-d deletes and e opens the object in your editor, so give a production context readOnly: true in its k9s context file ($XDG_DATA_HOME/k9s/clusters/...).