GitHub - olafurbergs/krowser · GitHub
/" data-turbo-transient="true" />
Skip to content
Type / to search
Sign in<br>Sign upAppearance settings
You signed in with another tab or window. Reload to refresh your session.<br>You signed out in another tab or window. Reload to refresh your session.<br>You switched accounts on another tab or window. Reload to refresh your session.
Dismiss alert
{{ message }}
olafurbergs
krowser
Public
Notifications<br>You must be signed in to change notification settings
Fork
Star
main
BranchesTags
Go to file
CodeOpen more actions menu
Folders and files<br>NameNameLast commit message<br>Last commit date<br>Latest commit
History<br>4 Commits<br>4 Commits
cmd/krowser
cmd/krowser
docs
docs
internal
internal
.gitignore
.gitignore
LICENSE
LICENSE
Makefile
Makefile
README.md
README.md
go.mod
go.mod
go.sum
go.sum
View all files
Repository files navigation
krowser
██╗ ██╗ ██████╗ ██████╗ ██╗ ██╗ ███████╗ ███████╗ ██████╗<br>██║ ██╔╝ ██╔══██╗ ██╔═══██╗ ██║ ██╗ ██║ ██╔════╝ ██╔════╝ ██╔══██╗<br>█████╔╝ ██████╔╝ ██║ ██║ ██║╚██╗██║ ███████╗ █████╗ ██████╔╝<br>██╔═██╗ ██╔══██╗ ██║ ██║ ██║ ╚████║ ╚════██║ ██╔══╝ ██╔══██╗<br>██║ ██╗ ██║ ██║ ╚██████╔╝ ██║ ╚███║ ███████║ ███████╗ ██║ ██║<br>╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚══╝ ╚══════╝ ╚══════╝ ╚═╝ ╚═╝
A slick Kubernetes TUI browser built with Bubble Tea v2,<br>Bubbles v2, and Lip Gloss v2.
Browse clusters, namespaces, and resources, stream syntax-highlighted logs, scale and delete<br>workloads, and manage port-forwards — all from your terminal.
Features
Navigation — context, namespace, and resource (kind) pickers with k9s-inspired keybindings
Resource tables — typed columns, / fuzzy filtering, and auto-refresh
Detail views — YAML and describe output with selectable Secret data (decoded in place)
Pod logs — live follow, container switching, timestamp toggle, and<br>syntax highlighting for log levels, timestamps, numbers, URLs, IPs, UUIDs, and more
Mutating actions — delete, scale, rollout restart, and edit, all behind a confirm dialog
Port-forwards — open and manage port-forwards from the cluster
CPU/memory gauges — a live top view with gradient progress bars when metrics-server is available
Themes — 10 color themes, selectable with T or --theme, with the selection persisted across runs
Extras — toast notifications, focus blur, help overlay
Demo
A ~45s walkthrough recording showing a kind cluster being browsed with krowser:<br>resource tables, syntax-highlighted live logs, YAML detail, theme switching, and the<br>CPU/memory gauges.
asciinema play docs/krowser-demo.cast
The cast is also ready to upload for an embedded player:
asciinema upload docs/krowser-demo.cast
Requirements
Go 1.25+ (the go 1.25 directive triggers an automatic toolchain download on 1.21+)
A kubeconfig with access to a cluster (KUBECONFIG or ~/.kube/config)
A terminal with truecolor support for the full palette
Install
go install github.com/olafurb/krowser@latest
Build & run
make build<br>./bin/krowser --kubeconfig ~/.kube/config
The Makefile also provides make test (with -race), make lint, and make fmt.
CLI flags
Flag<br>Description
--kubeconfig PATH<br>path to the kubeconfig (default: $KUBECONFIG or ~/.kube/config)
--context NAME<br>kubeconfig context to use
--namespace NAME<br>namespace to browse (default: the context namespace, or all namespaces if none is set)
--all-namespaces<br>browse all namespaces
--theme NAME<br>theme name (default: Monokai)
Usage
Keybindings
Key<br>Action
↑ / ↓<br>navigate rows
Enter<br>open detail (a pod/node in top too)
y / d<br>YAML / describe
stream logs
fuzzy filter (type to filter, esc clears)
n / g<br>namespace picker / all namespaces
switch context
pick a kind
refresh
x / s / R / e<br>delete / scale / restart / edit
port-forward
top (metrics)
themes
help overlay
q / esc<br>back
Ctrl-C<br>quit
Logs screen
Key<br>Action
toggle follow mode
toggle timestamps
pick a container
q / esc / ←<br>back
Theming
Press T to open the theme picker or pass --theme "Dracula" on startup. Themes: Monokai,<br>One Dark, Dracula, Nord, Gruvbox Dark, Solarized Dark, Catppuccin Mocha, Tokyo Night,<br>Solarized Light, and Catppuccin Latte.
The theme you select is persisted to ~/.local/share/krowser/theme<br>($XDG_DATA_HOME/krowser/theme if set) and restored on the next launch. A --theme flag<br>takes precedence over the saved selection.
Project layout
cmd/krowser CLI entry point (flags, kubeconfig wiring)<br>internal/k8s Kubernetes client helpers (list, logs, top, forwards, actions)<br>internal/tui Bubble Tea application<br>app.go root model, navigation, theming, chrome<br>resource.go typed resource tables with filtering<br>detail.go YAML / describe / secret views<br>logs.go streamed, syntax-highlighted pod logs<br>top.go live CPU/memory gauges<br>picker.go contexts, namespaces, kinds, containers, themes<br>theme(s).go theme registry and palette<br>loghl/ log syntax-highlighting engine (see Acknowledgments)
Testing
make test
The suite covers the resource tables, pickers, themes, metrics formatting, and...