About this project

sofka is a Kubernetes terminal user interface (TUI) written in Rust, built on kube-rs and ratatui. It is designed to be async everywhere so the UI never blocks on cluster operations. The project is inspired by k9s but reimagined with a focus on asynchronous performance and native integrations. Key features include: - Custom resource browsing with a generic render pipeline, built-in columns for common kinds, and drill-down from CRDs to their custom resources. - Built-in Flux CD support: suspend, resume, and reconcile via native API patches (no flux binary needed). Includes a native Helm inspector that decodes release Secrets itself. - Built-in Argo CD support: suspend, resume, and sync ArgoCD Applications; ApplicationSets support suspend/resume. Uses native API patches, no argocd binary. - Incident explanation: pressing `X` opens a deterministic, evidence-based incident view (no AI, no external service). - Bulk actions: mark rows with space for delete, kill, or Flux actions across many resources at once. - Background port-forwards: starting one doesn't freeze the TUI; `:pf` manages all forwards. - Guardrails and read-only mode: "never delete in prod" is enforced, not just remembered. - Skins: Catppuccin, Gruvbox, Solarized, Nord, Dracula, Tokyo Night, One Dark, Rosé Pine, Rosé Pine Dawn, Monokai, Flexoki, with auto dark/light detection. Installation options include prebuilt binaries for macOS, Linux, and Windows (aarch64/x86_64) from releases, plus Homebrew, Nix, and Cargo. Linux packages include DEB, RPM, Arch, and Alpine APK. A Home Manager module is available for Nix users. Usage supports shell completion for Bash, Zsh, Fish, Elvish, and PowerShell. Command-line options include resource selection, namespace, all-namespaces, context, kubeconfig, read-only/write modes, and experimental native describe. Headless modes (`--check`, `--snapshot`, `info`) work without a TTY and double as CI smoke tests. Configuration uses `config.toml`, `config.yaml`, or `config.yml` under `$XDG_CONFIG_HOME/sofka` (or `~/.config/sofka`). Options can be overridden per cluster or per kubeconfig context, allowing production to be read-only with a light skin while other environments stay as configured. The documentation covers features, comparison with k9s, performance benchmarks, keymaps, configuration, views and thresholds, plugins, safety, providers, debugging, and architecture. The project is dual-licensed under MIT or Apache-2.0.