{"id":51160263,"url":"https://github.com/bjarneo/ku","last_synced_at":"2026-07-14T01:00:48.068Z","repository":{"id":364581385,"uuid":"1268441659","full_name":"bjarneo/ku","owner":"bjarneo","description":"A fast, keyboard-driven Kubernetes TUI. Browse any resource, edit objects, follow logs, and shell into pods. ","archived":false,"fork":false,"pushed_at":"2026-06-24T17:20:22.000Z","size":443,"stargazers_count":412,"open_issues_count":2,"forks_count":16,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-06-24T19:09:16.300Z","etag":null,"topics":["bubbletea","charmlibs","cli","client-go","devops","go","golang","k8s","k9s","kubectl","kubernetes","terminal","tui"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bjarneo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-06-13T14:38:25.000Z","updated_at":"2026-06-24T18:54:45.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/bjarneo/ku","commit_stats":null,"previous_names":["bjarneo/kli","bjarneo/ku"],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/bjarneo/ku","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bjarneo%2Fku","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bjarneo%2Fku/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bjarneo%2Fku/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bjarneo%2Fku/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bjarneo","download_url":"https://codeload.github.com/bjarneo/ku/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bjarneo%2Fku/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35441637,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-13T02:00:06.543Z","response_time":119,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bubbletea","charmlibs","cli","client-go","devops","go","golang","k8s","k9s","kubectl","kubernetes","terminal","tui"],"created_at":"2026-06-26T13:00:49.918Z","updated_at":"2026-07-14T01:00:48.062Z","avatar_url":"https://github.com/bjarneo.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"# ku\n\n```\n\\|/          (__)\n     `\\------(oo)\n       ||    (__)\n       ||w--||     \\|/\n   \\|/\n```\n\n`ku` is short for **KU**bernetes. It is also the Norwegian word for cow.\n\nA fast, keyboard-driven Kubernetes TUI. Browse any resource, read and edit\nobjects, follow logs, port-forward Services, and open a shell in a pod, without\nleaving the terminal.\n\nLooking for a mouse-driven Kubernetes UI? Try [Lens](https://k8slens.dev/) or\n[Headlamp](https://headlamp.dev/).\n\nInspired by k9s, Lens, and lazygit.\n\nhttps://github.com/user-attachments/assets/48756c6b-00ae-470d-8fb5-3f93ecbd46df\n\n## Install\n\nInstall the latest release with the installer:\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/bjarneo/ku/main/install.sh | sh\n```\n\nOr with Go:\n\n```bash\ngo install github.com/bjarneo/ku@latest\n```\n\nOr from a clone:\n\n```bash\nmake install   # builds and installs to ~/.local/bin, /usr/local/bin, or your last $PATH dir\ngo build -o ku .\n```\n\nBuilding from source requires Go 1.26.3+. Running ku requires a reachable\ncluster.\n\n## Quick start\n\n```\nku                       # current context, remembered namespace\nku -n kube-system        # start in a namespace\nku --resource deploy     # start on a resource type\nku --theme tokyonight    # switch theme\nku --edit                # start in edit mode (default is read-only)\nku --dev                 # developer view, app resources only\nku upgrade               # replace the current binary with the latest release\n```\n\nPress `?` for help, `Ctrl+K` for the command palette, and `Shift+E` to toggle\nedit mode.\n\n## Modes\n\n`ku` starts read-only. Every mutating or live access action is off: edit,\ndelete, rollout restart, scale, CronJob trigger, cordon, drain, shell into pods\nor nodes, and Service port-forward. Read, describe, YAML, logs, and the\n`kubectl` command preview still work. For all you fat-fingers out there, your\ncluster is safe.\n\nTo make changes, press `Shift+E` or open the command palette (`Ctrl+K`) and pick\n\"Enter edit mode\", then confirm the prompt. The header chip flips from a green\n`● READ-ONLY` to a red `● EDIT`, and the mutating keys come back. Press\n`Shift+E` again or pick \"Return to read-only\" to switch back. Pass `--edit` to\nstart in edit mode instead.\n\n`--dev` switches to a developer view that hides cluster admin resources (nodes,\npersistent volumes, storage classes, namespaces, events) and disables node\noperations. CRD discovery is off too. Use it when you only manage your own app.\nIt composes with edit mode.\n\n```\nku                       # read-only, full nav\nku --edit                # edit mode, full nav\nku --dev                 # read-only, developer view\nku --dev --edit          # edit mode, developer view\n```\n\nDisabled keys are dropped from the footer hints and the command palette, and `?`\nsummarizes the active mode.\n\n## Configuration\n\n`ku` reads an optional config file from `~/.config/ku/config.yaml` for sidebar\ncustomization and stores session state in `~/.config/ku/state.json`.\n\n### Add custom resources (CRDs) to the sidebar\n\nThe sidebar lists common built-in resources by default. CRDs are not shown until\nyou add them. Seed the config, then edit the `sidebar:` list:\n\n```bash\nku config init     # write ~/.config/ku/config.yaml with the defaults\nku config path     # print the config file location\n```\n\nAdd an item under any section (or a new one). The `resource` field accepts a\nplural, singular, kind, short name, or group-qualified key. Use the\ngroup-qualified form (`\u003cplural\u003e.\u003cgroup\u003e`) to avoid ambiguity:\n\n```yaml\nsidebar:\n  - section: CRDs\n    items:\n      - { label: ScaledObjects, resource: scaledobjects.keda.sh }\n      - { label: Certificates, resource: certificates.cert-manager.io }\n      - { label: HPAs, resource: horizontalpodautoscalers }\n```\n\nRestart `ku` to apply the change. Resources your cluster does not expose are\ndropped, and empty sections are hidden.\n\nSee [Configuration](docs/configuration.md) for the full reference.\n\n## Highlights\n\n- A cockpit overview on launch: cluster health, node CPU and memory gauges, pod and deployment status, and recent warnings.\n- Server-rendered tables for any resource, the same columns as `kubectl get`, including CRDs.\n- lazygit-style layout: a left resource nav, `Tab` between panes, and a status bar that always shows the keys that work right now.\n- Config summaries, raw YAML, logs, Service port-forward, edit-in-editor, shell into pods or nodes, delete, scale, restart, and CronJob trigger, all inside the TUI.\n- ANSI colors that match your terminal in light or dark mode, with Tokyo Night as a fallback (`--theme tokyonight`).\n- A customizable sidebar menu via an optional config file (`ku config init`): add CRDs like HPAs, KEDA ScaledObjects, or OpenTelemetry collectors.\n- `C` shows the equivalent `kubectl` command, and `O` opens upstream Kubernetes docs for known resources.\n- Remembers your last context and namespace.\n\n## Docs\n\n- [Getting started](docs/getting-started.md)\n- [Configuration](docs/configuration.md)\n- [Keybindings](docs/keybindings.md)\n- [Features](docs/features.md)\n\nFull index: [docs/](docs/README.md).\n\n## License\n\n[MIT](LICENSE)\n\n## Created by\n\n[x.com/iamdothash](https://x.com/iamdothash)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbjarneo%2Fku","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbjarneo%2Fku","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbjarneo%2Fku/lists"}