Introduction
kubectx and kubens are companion CLI tools that make switching between Kubernetes contexts and namespaces fast and effortless. If you manage multiple clusters daily, these tools eliminate the tedious kubectl config use-context commands and turn multi-cluster workflows into a single keystroke.
What kubectx Does
- Switches between kubectl contexts (clusters) with a single command
- kubens companion switches the active namespace without verbose flags
- Supports interactive fuzzy selection when paired with fzf
- Provides alias and rename capabilities for long context names
- Works with any standard kubeconfig file and all Kubernetes distributions
Architecture Overview
kubectx is written in Go and operates directly on your ~/.kube/config file. It reads and modifies the current-context field and namespace preferences using the standard kubeconfig library. There is no daemon or background process — each invocation is a stateless read-modify-write on the kubeconfig. The optional fzf integration pipes context or namespace lists into fzf for interactive selection.
Self-Hosting & Configuration
- Install via Homebrew (
brew install kubectx), apt, or download a single binary from GitHub releases - Works out of the box with any valid
KUBECONFIGenvironment variable or~/.kube/config - Pair with fzf for interactive fuzzy selection:
brew install fzf - Shell completions available for bash, zsh, and fish
- Rename contexts with
kubectx new-name=old-namefor cleaner aliases
Key Features
- Zero configuration required — reads your existing kubeconfig
- Sub-millisecond switching with no API calls to the cluster
kubectx -toggles back to the previous context likecd -- fzf integration for interactive multi-cluster navigation
- Lightweight single binary with no runtime dependencies
Comparison with Similar Tools
- kubectl config use-context — built-in but verbose and lacks fuzzy search
- kubie — similar context switching with per-shell isolation but heavier
- k9s — full terminal UI for Kubernetes, overkill for just switching contexts
- kubeswitch — supports multiple kubeconfig stores but more complex setup
FAQ
Q: Does kubectx work with EKS, GKE, and AKS clusters? A: Yes, kubectx works with any cluster that has a valid kubeconfig entry regardless of the provider.
Q: Can I use kubectx in CI/CD pipelines? A: Yes, kubectx is a stateless binary that reads KUBECONFIG. It works in any environment where kubectl works.
Q: What is the difference between kubectx and kubens? A: kubectx switches cluster contexts while kubens switches the default namespace within the current context. Both ship together.
Q: Does it modify my kubeconfig file? A: It updates the current-context and namespace fields in your kubeconfig, the same changes kubectl config would make.