Infra Atlas · Toolbox

Kubernetes Toolbox.

If you operate Kubernetes for a living, these are the tools that make the difference between cursor-typing kubectl commands all day and actually seeing what is happening. TUIs in green, languages in gold. ★ marks the picks we install everywhere.

Form
Language
Use case
Picks
k9s replaces kubectl + watch loops

The Kubernetes TUI — navigate namespaces, pods, deployments; tail logs; exec into containers; port-forward; describe; trigger rollouts. If you only install one tool, install this.

TUI Go mature SRE
derailed/k9s
kubectx + kubens replaces kubectl config use-context / -n flag

Switch between clusters and namespaces interactively (with fzf if installed). The fact that this is not built into kubectl is one of those small kubernetes-CLI ergonomic gaps that everyone fills the same way.

CLI Go mature
ahmetb/kubectx
stern replaces kubectl logs (single pod)

Tail logs from multiple pods at once, with regex selectors and a colour per pod. Indispensable when you need to debug a service with N replicas during an incident.

CLI Go mature SRE
stern/stern
kubefwd replaces N separate kubectl port-forwards

Bulk-forwards every service in a namespace to localhost in one command, patches /etc/hosts so the names resolve. Lets you run your laptop app against a remote cluster without rewriting any URL.

CLI Go mature dev
txn2/kubefwd
popeye replaces manual cluster audit

Sanity-scans a cluster for the classic foot-guns — deprecated APIs, missing resource requests, dangling configmaps, pods without probes. Run it before every Kubernetes upgrade.

CLI Go mature SRE
derailed/popeye
helm replaces kubectl apply on a folder of YAMLs

Package manager for Kubernetes. Templates with values, release tracking, rollback. Despite the dragging history with v2 → v3 and Tiller, charts are still the lingua franca for distributing platform components.

CLI Go mature platform
helm/helm
krew replaces manual plugin installation

Plugin manager for kubectl. Once installed, kubectl krew install neat gets you better YAML diffs, or kubectl krew install tree for hierarchical views. The kubectl equivalent of apt.

CLI Go mature
kubernetes-sigs/krew
kind replaces minikube

Spins up a real Kubernetes cluster inside Docker in under a minute. Multi-node, multi-cluster, supports any kubelet version. The default local cluster choice in CI pipelines for the last few years.

CLI Go mature dev
kubernetes-sigs/kind
k3d replaces kind for tiny clusters

k3s wrapped in Docker — lighter than kind, faster to start, fewer features. Pick this when you want a minimal cluster for a quick smoke test on a laptop without a fan running at full speed.

CLI Go mature dev
k3d-io/k3d
skaffold replaces docker build + kubectl apply loop

Inner-loop dev for Kubernetes — watches the filesystem, rebuilds the image, syncs into the running pod, port-forwards. The "save-the-file, see-the-change-in-the-cluster" workflow.

CLI Go mature dev
GoogleContainerTools/skaffold
tilt replaces docker-compose for k8s-native dev

Multi-service live-update for Kubernetes development. Define Tiltfile, get a TUI showing every service's build, deploy and log status. Strong when your dev environment has 5+ microservices.

TUI Go mature dev
tilt-dev/tilt
argocd CLI replaces manual kubectl apply for prod

CLI half of Argo CD — list apps, force-sync, view diffs against git. If your cluster is GitOps-managed by Argo, this is your day-to-day verb for emergencies and ad-hoc checks.

CLI Go mature platform
argoproj/argo-cd
dive replaces docker history (less detail)

Interactive explorer for Docker / OCI image layers — see exactly what files each RUN adds and what they cost. Most "why is this image 1.2 GB" questions get answered in 30 seconds with dive.

TUI Go mature
wagoodman/dive
lazydocker replaces docker CLI for daily ops

TUI for the local Docker daemon — containers, images, volumes, networks, logs, exec. Pairs with lazygit from the same author; if you live in the terminal, both are worth installing.

TUI Go mature
jesseduffield/lazydocker
*

"Replaces" is the mental hook most engineers already use — once you know k9s replaces kubectl + watch, you stop reaching for the old reflex. The tag set is deliberately small (form / language / use case) so the filter stays scanable. Open a PR if there is something obvious we missed.