k9s is a terminal UI for navigating, observing, and managing clusters without leaving your shell. It watches your cluster in real time and offers vim-style key bindings for the resources you interact with most. This cheatsheet covers the CLI flags and in-app key bindings you’ll use daily.
Launching k9s
# Launch k9s using your current kubeconfig context
k9s
# List all available CLI options
k9s help
# Show runtime info such as logs and config paths
k9s info
# Launch scoped to a single namespace
k9s -n mycoolns
# Launch directly into a given resource view
k9s -c pod
# Launch using a specific kubeconfig context
k9s --context coolCtx
# Launch in read-only mode with modification commands disabled
k9s --readonly
Navigating Resources
# View a resource by singular, plural, short-name, or alias
:pod
# View a resource in a given namespace
:pod ns-x
# View a resource in another context (switches your current context)
:pod @ctx1
# Switch to another context or namespace picker
:ctx
:ns
# Switch directly to a named context
:ctx context-name
Filtering and Searching
# Filter the current resource view by name (regex supported)
/fred
# Filter by two possible names
/fred|blee
# Inverse filter: keep everything that does NOT match
/! filter
# Filter by label selector
/-l app=fred,env=dev
# Fuzzy find a resource
/-f filter
# View pods filtered by label directly
:pod app=fred,env=dev
# Bail out of filter, command, or view mode
<esc>
Managing Resources
# Describe, view, edit, or view logs for the selected resource
d
v
e
l
# Delete a resource (Tab then Enter to confirm)
ctrl-d
# Kill a resource immediately, equivalent to kubectl delete --now
ctrl-k
# Save the current screen to a dump file
:screendump
# Show active keyboard mnemonics and help
?
# Show all available resource aliases
ctrl-a
Other Views and Quitting
# Launch the cluster pulses view
:pulses
# Launch the XRay view for a resource type
:xray RESOURCE [NAMESPACE]
# Quit k9s
:q
ctrl-c
k9s is a great companion to the Kubectl Cheatsheet on this site: use k9s to browse and triage your cluster interactively, then drop into kubectl for scripted, repeatable operations.
