kubectx is a tool to switch between contexts (clusters) on kubectl faster.
kubectx is a tool designed to simplify switching between Kubernetes clusters (contexts) in kubectl. It streamlines cluster management by enabling users to quickly switch contexts, rename them, or fuzzy-search using fzf for interactive selection.
Key Features:
Quickly switch between Kubernetes clusters and namespaces.
Rename existing contexts for better organization.
Fuzzy search with fzf integration for efficient context selection.
Shell autocompletion support for bash, zsh, and fish shells to reduce typing errors.
Lightweight and compatible with various operating systems.
Audience & Benefit:
Ideal for Kubernetes administrators, developers, and operators who manage multiple clusters or namespaces. kubectx saves time by reducing repetitive tasks and minimizing errors when switching between environments. It enhances productivity in multi-cluster workflows while maintaining simplicity and efficiency.
Available as a Go-based tool, it can be installed via winget on Windows or through various package managers on Linux and macOS.
README
kubectx + kubens: Power tools for kubectl
This repository provides both kubectx and kubens tools.
Install →
What are kubectx and kubens?
kubectx is a tool to switch between contexts (clusters) on kubectl
faster.
kubens is a tool to switch between Kubernetes namespaces (and
configure them for kubectl) easily.
Here's a kubectx demo:
...and here's a kubens demo:
Examples
# switch to another cluster that's in kubeconfig
$ kubectx minikube
Switched to context "minikube".
# switch back to previous cluster
$ kubectx -
Switched to context "oregon".
# rename context
$ kubectx dublin=gke_ahmetb_europe-west1-b_dublin
Context "gke_ahmetb_europe-west1-b_dublin" renamed to "dublin".
# change the active namespace on kubectl
$ kubens kube-system
Context "test" set.
Active namespace is "kube-system".
# go back to the previous namespace
$ kubens -
Context "test" set.
Active namespace is "default".
# change the active namespace even if it doesn't exist
$ kubens not-found-namespace --force
Context "test" set.
Active namespace is "not-found-namespace".
---
$ kubens not-found-namespace -f
Context "test" set.
Active namespace is "not-found-namespace".
If you have fzf installed, you can also
interactively select a context or cluster, or fuzzy-search by typing a few
characters. To learn more, read interactive mode →
Both kubectx and kubens support Tab completion on bash/zsh/fish
shells to help with long context names. You don't have to remember full context
names anymore.
Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.
Git for Windows focuses on offering a lightweight, native set of tools that bring the full feature set of the Git SCM to Windows while providing appropriate user interfaces for experienced Git users and novices alike.
GitHub CLI (gh) is a command-line tool that brings pull requests, issues, GitHub Actions, and other GitHub features to your terminal, so you can do all your work in one place.
The Go programming language is an open source project to make programmers more productive.
Go is expressive, concise, clean, and efficient. Its concurrency mechanisms make it easy to write programs that get the most out of multicore and networked machines, while its novel type system enables flexible and modular program construction. Go compiles quickly to machine code yet has the convenience of garbage collection and the power of run-time reflection. It's a fast, statically typed, compiled language that feels like a dynamically typed, interpreted language.
The Azure command-line interface (Azure CLI) is a set of commands used to create and manage Azure resources. The Azure CLI is available across Azure services and is designed to get you working quickly with Azure, with an emphasis on automation.
The AWS CLI is an open source tool built on top of the AWS SDK for Python (Boto) that provides commands for interacting with AWS services.
With minimal configuration, you can start using all of the functionality provided by the AWS Management Console from your favorite terminal program.
Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.
Git for Windows focuses on offering a lightweight, native set of tools that bring the full feature set of the Git SCM to Windows while providing appropriate user interfaces for experienced Git users and novices alike.
GitHub CLI (gh) is a command-line tool that brings pull requests, issues, GitHub Actions, and other GitHub features to your terminal, so you can do all your work in one place.
The Go programming language is an open source project to make programmers more productive.
Go is expressive, concise, clean, and efficient. Its concurrency mechanisms make it easy to write programs that get the most out of multicore and networked machines, while its novel type system enables flexible and modular program construction. Go compiles quickly to machine code yet has the convenience of garbage collection and the power of run-time reflection. It's a fast, statically typed, compiled language that feels like a dynamically typed, interpreted language.
The Azure command-line interface (Azure CLI) is a set of commands used to create and manage Azure resources. The Azure CLI is available across Azure services and is designed to get you working quickly with Azure, with an emphasis on automation.
The AWS CLI is an open source tool built on top of the AWS SDK for Python (Boto) that provides commands for interacting with AWS services.
With minimal configuration, you can start using all of the functionality provided by the AWS Management Console from your favorite terminal program.
Stable versions of kubectx and kubens are small bash scripts that you
can find in this repository.
Starting with v0.9.0, kubectx and kubensare now rewritten in Go. They
should work the same way (and we'll keep the bash-based implementations around)
but the new features will be added to the new Go programs. Please help us test
this new Go implementation by downloading the binaries from the Releases page
→
This command will set up bash/zsh/fish completion scripts automatically. Make sure you configure your shell to load completions for installed Homebrew formulas.
Newer versions might be available on repos like
Debian Buster (testing),
Sid (unstable)
(if you are unfamiliar with the Debian release process and how to enable
testing/unstable repos, check out the
Debian Wiki):
pacman (Arch Linux)
Available as official Arch Linux package. Install it via:
Add this line to your Plugins File (e.g.
~/.zsh_plugins.txt):
ahmetb/kubectx path:completion kind:fpath
Depending on your setup, you might or might not need to call compinit or
autoload -U compinit && compinit in your ~/.zshrc after you load the Plugins
file. If you use oh-my-zsh, load the
completions before you load oh-my-zsh because oh-my-zsh will call
compinit.
Completion scripts for plain zsh
The completion scripts have to be in a path that belongs to $fpath. Either
link or copy them to an existing folder.
If completion doesn't work, add autoload -U compinit && compinit to your
.zshrc (similar to
zsh-completions).
If you are not using oh-my-zsh, you
could link to /usr/share/zsh/functions/Completion (might require sudo),
depending on the $fpath of your zsh installation.
If you want kubectx and kubens commands to present you an interactive menu
with fuzzy searching, you just need to install
fzf in your $PATH.
If you have fzf installed, but want to opt out of using this feature, set the
environment variable KUBECTX_IGNORE_FZF=1.
If you want to keep fzf interactive mode but need the default behavior of the
command, you can do it by piping the output to another command (e.g. kubectx | cat ).
Customizing colors
If you like to customize the colors indicating the current namespace or context,
set the environment variables KUBECTX_CURRENT_FGCOLOR and
KUBECTX_CURRENT_BGCOLOR (refer color codes
here):
export KUBECTX_CURRENT_FGCOLOR=$(tput setaf 6) # blue text
export KUBECTX_CURRENT_BGCOLOR=$(tput setab 7) # white background
Colors in the output can be disabled by setting the
NO_COLOR environment variable.
If you liked kubectx, you may like my
kubectl-aliases project, too. I
recommend pairing kubectx and kubens with fzf and
kube-ps1.
zoxide is a smarter cd command, inspired by z and autojump. It remembers which directories you use most frequently, so you can "jump" to them in just a few keystrokes. zoxide works on all major shells.
zoxide is a smarter cd command, inspired by z and autojump. It remembers which directories you use most frequently, so you can "jump" to them in just a few keystrokes. zoxide works on all major shells.
AI Shell is a CLI tool that brings the power of artificial intelligence directly to your command line! Designed to help you get command assistance from various AI assistants, AI Shell is a versatile tool to help you become more productive in the command line. We call these various AI assistant providers agents. You can use agents to interact with different generative AI models or other AI/ML/assistant providers in a conversational manner.
AI Shell is a CLI tool that brings the power of artificial intelligence directly to your command line! Designed to help you get command assistance from various AI assistants, AI Shell is a versatile tool to help you become more productive in the command line. We call these various AI assistant providers agents. You can use agents to interact with different generative AI models or other AI/ML/assistant providers in a conversational manner.
Gitleaks is a SAST tool for detecting and preventing hardcoded secrets like passwords, api keys,
and tokens in git repos. Gitleaks is an easy-to-use, all-in-one solution for detecting secrets,
past or present, in your code.
Gitleaks is a SAST tool for detecting and preventing hardcoded secrets like passwords, api keys,
and tokens in git repos. Gitleaks is an easy-to-use, all-in-one solution for detecting secrets,
past or present, in your code.
Gitleaks is a SAST tool for detecting and preventing hardcoded secrets like passwords, api keys,
and tokens in git repos. Gitleaks is an easy-to-use, all-in-one solution for detecting secrets,
past or present, in your code.
Tabby (formerly Terminus) is a highly configurable terminal emulator, SSH and serial client for Windows 10, macOS and Linux
- Integrated SSH and Telnet client and connection manager
- Integrated serial terminal
- Theming and color schemes
- Fully configurable shortcuts and multi-chord shortcuts
- Split panes
- Remembers your tabs
- PowerShell (and PS Core), WSL, Git-Bash, Cygwin, MSYS2, Cmder and CMD support
- Direct file transfer from/to SSH sessions via Zmodem
- Full Unicode support including double-width characters
- Doesn't choke on fast-flowing outputs
- Proper shell experience on Windows including tab completion (via Clink)
- Integrated encrypted container for SSH secrets and configuration
- SSH, SFTP and Telnet client available as a web app (also self-hosted)
Tabby (formerly Terminus) is a highly configurable terminal emulator, SSH and serial client for Windows 10, macOS and Linux
- Integrated SSH and Telnet client and connection manager
- Integrated serial terminal
- Theming and color schemes
- Fully configurable shortcuts and multi-chord shortcuts
- Split panes
- Remembers your tabs
- PowerShell (and PS Core), WSL, Git-Bash, Cygwin, MSYS2, Cmder and CMD support
- Direct file transfer from/to SSH sessions via Zmodem
- Full Unicode support including double-width characters
- Doesn't choke on fast-flowing outputs
- Proper shell experience on Windows including tab completion (via Clink)
- Integrated encrypted container for SSH secrets and configuration
- SSH, SFTP and Telnet client available as a web app (also self-hosted)
Tabby (formerly Terminus) is a highly configurable terminal emulator, SSH and serial client for Windows 10, macOS and Linux
- Integrated SSH and Telnet client and connection manager
- Integrated serial terminal
- Theming and color schemes
- Fully configurable shortcuts and multi-chord shortcuts
- Split panes
- Remembers your tabs
- PowerShell (and PS Core), WSL, Git-Bash, Cygwin, MSYS2, Cmder and CMD support
- Direct file transfer from/to SSH sessions via Zmodem
- Full Unicode support including double-width characters
- Doesn't choke on fast-flowing outputs
- Proper shell experience on Windows including tab completion (via Clink)
- Integrated encrypted container for SSH secrets and configuration
- SSH, SFTP and Telnet client available as a web app (also self-hosted)