Skip to main content

A terminal UI for Kubernetes focused on fast operational workflows

Project description

kuno

A terminal UI for Kubernetes, focused on the parts of cluster work that happen most often: finding a resource, tailing its logs, reading a manifest or describe output, checking events. Everything is keyboard-driven and fast.

Requirements

  • uv
  • A valid kubeconfig

Install

uv tool install kuno

If you don't have uv:

curl -LsSf https://astral.sh/uv/install.sh | sh
uv tool install kuno

kuno requires Python 3.11+ and uses match/case syntax. If your system Python is older, uv tool install automatically downloads a compatible interpreter.

Then run:

kuno

To update:

uv tool upgrade kuno

Install from source

git clone https://github.com/1cadumagalhaes/kuno
cd kuno
uv sync
uv run python -m kuno

Usage

kuno [-c CONTEXT] [-n NAMESPACE] [-d]
flag description
-c, --context Kubernetes context to use (overrides config default)
-n, --ns, --namespace Namespace to use (overrides config default)
-d, --debug Write debug output to /tmp/kuno_debug.log

Navigation

j / k or arrow keys move through the resource list. g / G jump to top and bottom.

Press : to open the command bar, or ctrl+p for the Textual system command palette.

Key Bindings (main explorer)

Key Action
j / k or arrows Navigate list
g / G Jump top / bottom
Enter Drill into selected resource
d Describe selected resource
i Toggle Info side panel
y View YAML manifest
r Refresh current view
L or l Open Logs for selected resource
C Jump to Contexts view
N Jump to Namespaces view
ctrl+d Delete selected resource (with confirmation)
ctrl+r Restart selected deployment/statefulset (with confirmation)
ctrl+e View Events
ctrl+o Sort cycle
Backspace Go back
? Show all keybindings
: Open command bar
ctrl+p Textual system command palette

: Commands

command description
:pods / :containers switch to pods / containers
:deploy / :deployments switch to deployments view
:sts / :statefulsets switch to statefulsets view
:svc / :services switch to services view
:pvc switch to PVC view
:secrets switch to secrets view
:contexts switch to contexts view
:namespaces / :ns [name] / :namespace [name] switch or set namespace
:ctx <name> switch context
:logs open logs for selected resource
:yaml view raw manifest
:describe describe output with inline events
:events view events
:del / :delete delete selected resource (with confirmation)
:restart rollout restart selected resource (with confirmation)
:info / :hide-info toggle the info side panel
:config open config screen
:theme [name] cycle or set theme
:help show this command list

Logs Screen

Key Action
y / ctrl+c Copy text selection (if any)
d Open log detail panel
f Toggle follow mode
j / k Previous / next line
g / G Jump to top / bottom
/ Focus filter input
s Focus since (time) input
t Toggle timestamps
w Toggle line wrapping
m Cycle display mode (raw / structured)
r Reload logs
ctrl+u Clear filter
n / N Cycle search matches
[ / ] Previous / next pod (workload views)
ctrl+h / ctrl+l Previous / next container

Manifest / Describe Screens

/ toggles search. [ and ] jump between YAML keys at any nesting level.

Configuration

kuno reads from ~/.config/kuno/config.toml on startup and writes back when you save from :config.

[ui]
theme = "nord"
yaml_theme = "monokai"

[logs]
wrap = false
timestamps = false
mode = "raw"        # raw or structured
tail_lines = 500

[defaults]
# context = "my-context"
# namespace = "default"

theme accepts any Textual built-in theme. yaml_theme accepts any Pygments style name.

Development

uv sync
make test
make check   # format + lint + typecheck + tests
make run     # run against current kubeconfig

To target a specific context or namespace during development:

make run CTX=my-context NS=my-namespace

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kuno-0.1.1.tar.gz (48.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

kuno-0.1.1-py3-none-any.whl (53.1 kB view details)

Uploaded Python 3

File details

Details for the file kuno-0.1.1.tar.gz.

File metadata

  • Download URL: kuno-0.1.1.tar.gz
  • Upload date:
  • Size: 48.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for kuno-0.1.1.tar.gz
Algorithm Hash digest
SHA256 bbd0bbac839e637f3513178f22a4cdd46217a46dae3a22551b1f792bd74a76de
MD5 059e3c17e20edc36baa03c9c1d4ceeb1
BLAKE2b-256 01b049433981385df45c7114978a1d9dde12fae3f11bd028e2fdbae00d832802

See more details on using hashes here.

Provenance

The following attestation bundles were made for kuno-0.1.1.tar.gz:

Publisher: release.yml on 1cadumagalhaes/kuno

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kuno-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: kuno-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 53.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for kuno-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 984e5dba21a6503211131433610c3cd39c5b15e2bc4572eeb7809c4f95a6fa51
MD5 b0f477943d4cdd97467f71a72f887ddb
BLAKE2b-256 94354b63051c4854e3ff494aa82695b60bf177d5621fce42e78a8f3ba345bff1

See more details on using hashes here.

Provenance

The following attestation bundles were made for kuno-0.1.1-py3-none-any.whl:

Publisher: release.yml on 1cadumagalhaes/kuno

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page