UNKNOWN ≠ ZERO
Missing evidence never becomes a healthy value.
A Kubernetes terminal console in Rust · kube-rs · ratatui
See what exists, understand what needs attention, inspect the evidence behind every judgment, and act only when policy allows.
cargo install saur-onEvery frame is selectable text. No screenshots. No fabricated state.
:workflow
SAUR-ON keeps identity, provenance and uncertainty attached to every step, from a failing row to the guarded operation that resolves it.
:pods -A / cpu/%r>80 or health!=healthyFind pressure and failure without losing unknown values.
e explain selectedRead the fields, events and metrics supporting the verdict.
x xray --depth 3Trace verified dependencies and understand the blast radius.
:restart payments/apiPreview, authorize, revalidate and journal the operation.
:why saur-on
Kubernetes gives you a lot of state, but not always a clear answer.
SAUR-ON exists to keep identity, evidence, relationships and action in one place, without turning uncertainty into certainty just to make the interface look clean.
See the cluster. Understand the evidence. Act only when the policy says you should.
:philosophy
Each rule removes a class of lie from the interface before a single row is drawn.
Missing evidence never becomes a healthy value.
A recreated object is a different object.
Topology is evidence, not speculation.
What SAUR-ON requested and what the cluster later became are separate facts.
:architecture
Every layer produces the input for the next. Nothing upstream is inferred from what only a later layer may assert.
Observation, diagnosis, topology and mutation remain separate layers.
:evidence
Measured against an isolated Kubernetes cluster. Numbers describe the recorded run, not a comparative benchmark.
:features
Keyboard-first workflows, live Kubernetes primitives and explicit uncertainty, composed into one fast console.
Native Kubernetes watches keep built-in resources and discovered CRDs continuously current.
Combine quantities, percentages, labels, age and health with three-valued logic that preserves unknowns.
Deterministic resource health cites the exact fields, metrics, events and conditions behind every verdict.
Inspect correlated evidence and meaningful UID-scoped transitions without fabricated history.
Traverse verified ownership, references, selectors, storage and networking relationships across the cluster.
Stream multi-container logs, exec, shell, attach and manage concurrent loopback port forwards.
Use bookmarks, saved views, workspaces, bulk selections, custom keymaps and a global object finder.
Extend commands through bounded plugins or export structured checks, snapshots and evidence bundles.
:safety
Every mutation passes through one policy boundary. SAUR-ON previews the change, checks authorization, binds confirmation to the exact object incarnation, then revalidates identity at commit time.
:integrations
Inspect reconciliation, ownership and release history across the systems already running your cluster.
Kustomizations, HelmReleases, sources and image automation with dependency-aware actions.
:flux reconcile platformApplications, sync status, refresh and guarded rollback — the same policy gateway as every other operation.
:argo app paymentsRead-only history, masked values and manifest identities from the release Secret. No rollback or uninstall.
:helm history ingressPLUGINS: bounded execution, typed inputs and structured reports
HEADLESS: deterministic checks, snapshots and machine-readable output
EVIDENCE BUNDLES: redacted, checksummed export for offline review
:install
Requires a Rust toolchain, a Kubernetes kubeconfig and network access to the API server.
cargo install saur-onCreate ~/.config/sauron/config.toml. It does not exist by default, so create it first:
mkdir -p ~/.config/sauronecho 'readonly = false' >> ~/.config/sauron/config.tomlWith readonly = true you cannot mutate anything.
Launch it normally:
sauronstraight from the shell
sauron --context production-eu pods -Asauron --readonlyas a library
cargo add saur-on