A K9s-inspired terminal UI for monitoring Flux GitOps resources in real-time.



flux9s provides a terminal-based interface for monitoring and managing Flux CD resources, inspired by the excellent K9s project. It offers real-time monitoring of Flux Custom Resources (CRDs) including Kustomizations, GitRepositories, HelmReleases, and more.
:events feed for the current namespace or clusterThe easiest way to install on macOS and Linux:
brew install dgunzy/tap/flux9s
Or tap the repository first:
brew tap dgunzy/tap
brew install flux9s
If you have cargo-binstall installed:
cargo binstall flux9s
This downloads and installs pre-built binaries without compiling from source.
Download pre-built binaries from the Releases page:
flux9s-linux-x86_64.tar.gzflux9s-macos-x86_64.tar.gzflux9s-macos-aarch64.tar.gzflux9s-windows-x86_64.zipExtract and move the binary to a directory in your PATH.
cargo install flux9s
git clone https://github.com/dgunzy/flux9s.git
cd flux9s
cargo build --release
The binary will be available at target/release/flux9s.
kubeconfig to point to your clusterflux9sflux9s
By default, flux9s watches the flux-system namespace. Use :ns all to view all namespaces or :ns <namespace> to switch to a specific namespace.
Note:
flux9slaunches in readonly mode by default.
You can change this withflux9s config set readOnly falseor toggle it in a session using:readonly.
j / k - Navigate up/down: - Command mode (e.g., :kustomization, :gitrepository)Enter - View resource details/ - Filter resources by name (list views) or search text (YAML/describe/trace views)n / N - Next/previous search match (in text views)Shift+N / Shift+A / Shift+T / Shift+S - Sort by name/age/type/status (press again to reverse)s - Suspend resourcer - Resume resourceR - Reconcile resourcey - View resource YAMLf - Toggle favoriteg - View resource graph (Kustomization, HelmRelease, etc.)h - View reconciliation historyt - Trace ownership chainW - Reconcile with source (Kustomization, HelmRelease)d - Describe resourceCtrl+d - Delete resource (with confirmation)? - Show/hide helpq / Esc - Go back; shows a quit prompt when at the root viewQ - Quit immediately (no prompt)Ctrl+C / :q - Quit (also skips the prompt):ctx <name> - Switch to a different Kubernetes context:ctx - Open interactive context selection menu:ns <namespace> - Switch namespace:ns all - View all namespaces:favorites or :fav - View favorite resources:events or :ev - Live Kubernetes events feed (current namespace scope):skin {skin-name} - set skin directly:skin - open interactive theme selection menu with live preview (17 built-in themes + custom):q or :q! - Quit:help - Show helpg) - Visualize resource relationships and dependencies. Shows upstream sources and downstream managed resources. Move the highlighted focus between nodes with j/k (the view scrolls to keep it visible), press Enter to open the focused resource's detail view, and Esc to return to the graph. Supported for Kustomization, HelmRelease, ArtifactGenerator, FluxInstance, and ResourceSet.h) - View reconciliation history for FluxInstance, ResourceSet, Kustomization, and HelmRelease resources.:events) - Live Kubernetes events feed for the current namespace (or cluster-wide with :ns all), newest first with Warnings highlighted. Enter jumps to the involved resource; the describe view (d) also shows a per-resource Events section.f) - Mark resources as favorites for quick access. Use :favorites command to view all favorites.flux9s config --help - Show the config optionsflux9s config set {KEY} {VALUE} - set a yaml option with the cli.config set ui.skinReadOnly rose-pine - set a skin that is in your systems flux9s/skins dir when readonly enabled.flux9s config set connectTimeoutSeconds 15 - set the startup Kubernetes API health-check timeout.flux9s config skins set navy.yaml - import a skin, validate, set in config.Note: Not all K9s skins are compatible with flux9s. flux9s skins follow a similar format but may require adjustments to work properly.
This project is inspired by and built with the following excellent tools:
AI was used to get the scaffold of this project together, if there are mistakes or issues please open an issue, or a PR!
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the Apache License, Version 2.0 - see the LICENSE file for details.
$ claude mcp add flux9s \
-- python -m otcore.mcp_server <graph>