A K9s-inspired terminal UI for Flux resources, controller health, and GitOps state

Demo Video

Main interface demonstration showing navigation, resource viewing, and operations

Video playback is not available. The demo shows flux9s navigating resources, viewing details, and managing Flux deployments.

Watch flux9s in action - navigate resources, view details, and manage your Flux deployments

-

Crates.io Downloads

-

GitHub Stars

-

GitHub Downloads

-

Releases

What flux9s is

flux9s is a terminal UI for operators who want live visibility into Flux resources and the cluster state around them without leaving the shell. It watches Flux resources in real time, keeps a local in-memory view of their current state, and lets you move quickly between lists, details, YAML, traces, graphs, and reconciliation history.

The project is intentionally keyboard-first and closely follows familiar K9s patterns: j/k navigation, : command mode, context and namespace switching, footer help, and k9s-style skins.

The problem it solves

Flux already provides strong controller APIs, and the Flux Operator Web UI is an excellent browser-based experience for dashboards and cluster-wide visibility. flux9s was built to complement that workflow, not replace it.

Use flux9s when you want to stay in the terminal and:

  • see Flux reconciliation state update live
  • inspect Kustomizations, HelmReleases, sources, and Flux Operator resources in one place
  • trace ownership chains and visualize managed workloads
  • check controller readiness and Flux bundle version from the same interface
  • run quick actions such as suspend, resume, reconcile, reconcile-with-source, and delete

Why it stays fast

flux9s uses the Kubernetes Watch API for supported Flux resource types instead of repeatedly polling. By default it starts scoped to a namespace, with the default configuration targeting flux-system, and only switches to cluster-wide watches when you explicitly choose all. That keeps API usage and terminal updates lighter on larger clusters.

The same watch-driven model is also used to surface Flux controller pod state and deployment metadata in the header, which is how the UI can show controller readiness and the detected Flux bundle version alongside resource health.

Built for Flux and Flux Operator

Beyond core Flux controller resources, flux9s also understands Flux Operator resources such as FluxInstance, ResourceSet, ResourceSetInputProvider, and FluxReport. That support shows up in practical features, not just extra rows in a table: graph and history views extend to operator-managed resources, and the graph builder follows the same relationship-discovery patterns used by the Flux Operator Web UI.

For a deeper code-level walkthrough, see the Developer Guide. If you want to get running quickly, jump to Getting Started.