Khelp(er)
A user-friendly CLI tool to manage Kubernetes contexts with ease.
Features
- 🔍 List all available Kubernetes contexts
- 👁️ View the current active context with details
- 🔄 Switch between contexts with interactive selection
- ✏️ Edit context configurations with your preferred editor
- 📤 Export specific contexts for sharing or backup
- 🗑️ Delete contexts with optional cleanup of orphaned resources
- ➕ Add contexts from external kubeconfig files
- 🔄 Update to the latest version using built-in self-update
- 🛠️ Shell Completions for bash, zsh, fish, and PowerShell
Installation
easy install script, source located at install.sh
|
From Cargo
Windows
Using Cargo
cargo install khelp
Manual Download
Download the latest .zip file for Windows from Releases, extract it, and add the directory containing khelp.exe to your PATH.
Usage
Overview
)
List
View all available Kubernetes contexts in your configuration:
Example output:
Kubernetes available contexts:
------------------------
* minikube
production
staging
development
Current
Display details about the currently active context:
Example output:
Current context: minikube
Cluster: minikube
User: minikube
Namespace: default
Switch
Switch to a different context:
This will display an interactive menu to select the target context. You can also specify the context directly:
Edit
Open a context configuration in your default editor:
Or specify a context to edit:
The tool will open your default editor (defined by $EDITOR or $VISUAL environment variables) with the context configuration. Changes are automatically saved back to your Kubernetes config file.
Export
Export a specific context configuration to stdout:
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: example
server: https://192.168.64.2:8443
name: dev
contexts:
- context:
cluster: dev
user: dev-user
namespace: default
name: dev
current-context: dev
kind: Config
preferences:
users:
- name: dev-user
user:
client-certificate-data: example
client-key-data: example
This is useful for sharing configurations or creating backups of specific contexts.
Delete
Delete a Kubernetes context:
This will display an interactive menu to select the context to delete. You can also specify the context directly:
By default, you'll be prompted for confirmation. You can skip the confirmation with --force:
The delete command can also clean up orphaned clusters and users (resources no longer referenced by any context):
Example output:
✓ Deleted context: staging
✓ Deleted orphaned cluster: staging-cluster
✓ Deleted orphaned user: staging-user
Note: If you delete the current context, khelp will automatically switch you to another available context.
Add
Import contexts from an external kubeconfig file:
By default, if a context with the same name already exists, it will be skipped:
Import Summary:
───────────────
− Skipped context(s): production
− Skipped cluster(s): production-cluster
− Skipped user(s): production-user
Tip: Use --rename to rename conflicting entries or --overwrite to overwrite them.
To rename conflicting entries automatically:
Import Summary:
───────────────
✓ Added context(s): production-imported
✓ Added cluster(s): production-cluster-imported
✓ Added user(s): production-user-imported
To overwrite existing entries:
You can also automatically switch to the newly imported context:
Completions
Generate shell completions for supported shells:
Where [SHELL] can be one of: bash, zsh, fish, powershell, or elvish.
Example:
# Output bash completions to stdout
# Install completions for your current shell
# Install completions for a specific shell
Installing completions will:
- Create the appropriate completions directory if needed
- Generate and save the completion script
- Update your shell configuration file to load the completions
- Make the script executable
After installing completions, you'll need to restart your shell or source your configuration file:
# For bash
# For zsh
# For fish
# No action needed, fish loads completions automatically
Update
Check for and apply updates to khelp:
# Check for updates (without applying)
# Check for and apply updates
The update command connects to GitHub to check for new releases. If a newer version is available, it can automatically download and update your installation.
Environment Variables
EDITORorVISUAL: Specifies the editor to use when editing context configurations (defaults tovion Unix systems andnotepadon Windows)