If you use k9s daily, Sofka is worth 10 minutes. It’s a Kubernetes TUI written in Rust by a single developer, released as v0.1.0 in July 2026. It keeps k9s’s keyboard-driven navigation and :command palette, but rebuilds the internals around a single generic resource pipeline instead of k9s’s per-resource renderer files.
The project has one contributor and no community traction yet, but it’s worth knowing about now.
What’s different from k9s?
k9s is 51,000 lines of Go with a separate hand-written renderer for each resource kind. Sofka replaces that with one generic object pipeline add a new CRD and it renders without writing a new file. That’s the core architectural bet.
Four specific things k9s doesn’t do well:
Background port-forwarding
In k9s, port-forwarding blocks the interface. Sofka runs it as a background task the TUI stays responsive while the tunnel is open.
Native Flux CD support
You can suspend, resume, and reconcile Flux resources directly from the interface. There’s no plugin to install and no separate terminal window needed.
Multiselect for bulk actions
You can select multiple resources and act on all of them at once. k9s handles one resource at a time.
CRD drill-down to actual resources
Sofka shows the custom resources behind a CRD, not just the raw YAML definition. You can navigate into them the same way you navigate into built-in resource types.
Skinnable palettes (Catppuccin, Gruvbox, Nord, Dracula) come included, with semantic color derivation so status tinting and status badges work simultaneously.
Why Rust matters here?
k9s is Go. Go has a garbage collector, and GC pauses affect redraw latency in a TUI you’ve probably noticed the occasional freeze during heavy cluster activity. Rust has no GC. Sofka uses batched redraws from watch messages and cached row computation with dirty flags, so the redraw path stays clean regardless of cluster load.
The Kubernetes watch loop uses kube::runtime::watcher with generation-tagged message streams to prevent navigation stalls during resource updates. The tool makes direct kube API calls instead of spawning subprocesses.
Feature parity with k9s
| Feature | k9s | Sofka |
|---|---|---|
| Keyboard-driven navigation | Yes | Yes |
:command palette with fuzzy search | Yes | Yes |
| Live CPU/MEM metrics | Yes | Yes |
| RBAC-aware resource list | Yes | Yes |
| Log viewer with ANSI colors | Yes | Yes |
| Port-forwarding | Yes, blocks TUI | Yes, background |
| Flux CD support | Plugin only | Built-in |
| Multiselect bulk actions | No | Yes |
| Skinnable palettes | Limited | 4 themes |
| CRD drill-down to actual resources | No | Yes |
| GC pauses on heavy clusters | Occasional | None |
How mature is it?
The first release, v0.1.0, shipped on July 1, 2026. A single developer built and maintains it. The repo has no community traction yet.
Prebuilt binaries exist for macOS (aarch64/x86_64) and Linux (aarch64/x86_64), Nix is supported, and the README is detailed enough to trust it. The tool is production-usable as of v0.1.0.
The project is dual-licensed under MIT and Apache-2.0.
How to try it?
bash
# Nix
nix run github:nklmilojevic/sofka
# macOS — clear quarantine after downloading the binary
xattr -d com.apple.quarantine sofkaPrebuilt binaries are on the GitHub releases page.
Related reading:
Pre-commit Hooks 15x Faster (Biome vs ESLint case study)
The Next Optimization Battle: Making Websites Understandable for AI Agents








