MCPcopy Index your code
hub / github.com/dgunzy/flux9s

github.com/dgunzy/flux9s @v0.11.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.11.0 ↗ · + Follow
1,313 symbols 3,209 edges 117 files 415 documented · 32% updated 2d agov0.11.0 · 2026-07-06★ 2239 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

flux9s

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

CI Crates.io Downloads License Rust edition

Full View

flux9s screenshot

Flux9s Graph View

flux9s graph view

Flux9s Name filter

flux9s filter

Overview

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.

Features

  • Real-time monitoring - Watch Flux resources as they change using Kubernetes Watch API
  • K9s-inspired interface - Familiar navigation and keybindings for K9s users
  • Unified and type-specific views - View all resources together or filter by type
  • Resource operations - Suspend, resume, reconcile, and delete Flux resources
  • YAML viewing - Inspect full resource manifests
  • Kubernetes Events - Per-resource events in the describe view, plus a live :events feed for the current namespace or cluster
  • Graph visualization - Visualize resource relationships and dependencies (Kustomization, HelmRelease, etc.)
  • Reconciliation history - View reconciliation history for resources that track it
  • Favorites - Mark frequently accessed resources for quick access
  • Namespace switching - Monitor resources across namespaces or cluster-wide
  • Status indicators - Visual indicators for resource health and suspension state

Installation

Homebrew (macOS and Linux)

The 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

Pre-built Binaries

cargo-binstall

If you have cargo-binstall installed:

cargo binstall flux9s

This downloads and installs pre-built binaries without compiling from source.

Manual Download

Download pre-built binaries from the Releases page:

  • Linux (x86_64): flux9s-linux-x86_64.tar.gz
  • macOS (Intel): flux9s-macos-x86_64.tar.gz
  • macOS (Apple Silicon): flux9s-macos-aarch64.tar.gz
  • Windows (x86_64): flux9s-windows-x86_64.zip

Extract and move the binary to a directory in your PATH.

Compile from Source

From Crates.io

cargo install flux9s

From Source Repository

git clone https://github.com/dgunzy/flux9s.git
cd flux9s
cargo build --release

The binary will be available at target/release/flux9s.

Quick Start

  1. Ensure you have a Kubernetes cluster with Flux installed
  2. Configure your kubeconfig to point to your cluster
  3. Run flux9s
flux9s

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: flux9s launches in readonly mode by default.
You can change this with flux9s config set readOnly false or toggle it in a session using :readonly.

Usage

Navigation

  • 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 resource
  • r - Resume resource
  • R - Reconcile resource
  • y - View resource YAML
  • f - Toggle favorite
  • g - View resource graph (Kustomization, HelmRelease, etc.)
  • h - View reconciliation history
  • t - Trace ownership chain
  • W - Reconcile with source (Kustomization, HelmRelease)
  • d - Describe resource
  • Ctrl+d - Delete resource (with confirmation)
  • ? - Show/hide help
  • q / Esc - Go back; shows a quit prompt when at the root view
  • Q - Quit immediately (no prompt)
  • Ctrl+C / :q - Quit (also skips the prompt)

Commands

  • :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 help

Resource Views

  • Graph View (g) - 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.
  • History View (h) - View reconciliation history for FluxInstance, ResourceSet, Kustomization, and HelmRelease resources.
  • Events View (: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.
  • Favorites (f) - Mark resources as favorites for quick access. Use :favorites command to view all favorites.

Terminal Commands

  • flux9s config --help - Show the config options
  • flux9s 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.

Acknowledgments

This project is inspired by and built with the following excellent tools:

  • K9s - The terminal UI for Kubernetes that inspired this project
  • Flux - The open and extensible continuous delivery solution for Kubernetes. Powered by GitOps Toolkit.
  • kube-rs - The Rust Kubernetes client library powering the Kubernetes API interactions
  • kopium - The tool used to generate Rust types from Kubernetes CRDs

AI Note

AI was used to get the scaffold of this project together, if there are mistakes or issues please open an issue, or a PR!

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the Apache License, Version 2.0 - see the LICENSE file for details.

Extension points exported contracts — how you extend this code

FluxOperation (Interface)
(no doc) [5 implementers]
src/operations.rs
CommandSubmenu (Interface)
Trait for commands that can provide a submenu Commands implementing this trait will show a submenu when executed withou [2 …
src/tui/submenu.rs
WatchableResource (Interface)
Trait for watchable Flux resources
src/watcher/mod.rs
ResourceStatus (Interface)
(no doc)
src/models/extensions.rs
ThemeExt (Interface)
Helper trait extensions for Theme [1 implementers]
src/tui/views/footer.rs
ResourceDisplay (Interface)
(no doc)
src/models/extensions.rs

Core symbols most depended-on inside this repo

get
called by 335
src/watcher/state.rs
as_str
called by 201
src/models/flux_resource_kind.rs
is_empty
called by 114
src/tui/app/state.rs
len
called by 96
src/tui/app/state.rs
context
called by 61
src/services/cluster_session.rs
handle_key
called by 58
src/tui/app/events.rs
clear
called by 47
src/tui/app/state.rs
set_status_message
called by 47
src/tui/app/core.rs

Shape

Function 677
Class 283
Method 274
Enum 73
Interface 6

Languages

Rust91%
TypeScript9%

Modules by API surface

src/tui/app/events.rs74 symbols
src/tui/app/core.rs67 symbols
src/models/_generated/source_controller.rs66 symbols
src/models/_generated/helm_controller.rs57 symbols
src/models/flux_resource_kind.rs42 symbols
docs/_vendor/github.com/google/docsy/static/js/deflate.js42 symbols
src/tui/app/state.rs39 symbols
src/config/theme_loader.rs38 symbols
src/watcher/state.rs35 symbols
src/kube/mod.rs35 symbols
src/kube/health.rs34 symbols
src/operations.rs33 symbols

For agents

$ claude mcp add flux9s \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page