Native Resources (preview)
Browsing native resources and CRDs is a preview while it matures, so flux9s stays Flux-only unless you opt in:
- For one session:
:native(again to turn it off) - Permanently:
flux9s config set nativeResources true(flux9s 1.2.0+)
While it’s off, flux9s makes no discovery calls and no extra watches, and
:deploy and friends explain how to turn it on. Feedback is welcome — it
becomes the default once it has had some mileage.
Browsing any kind
:<kind> opens a live list of any kind the cluster serves — built-in
resources and third-party CRDs alike — by the names kubectl accepts: the
kind, its plural, or a short name (:deploy, :po, :svc, :httproutes).
When two API groups serve the same name, use plural.group
(:clusters.postgresql.cnpg.io).
- Scope: lists follow
:ns; cluster-scoped kinds (nodes, CRDs) always show everything. A watch keeps the list live while it’s on screen. - Columns: STATUS is kstatus health (the same rules Flux health checks
use). CRDs add the columns their authors declared — what
kubectl getshows. MANAGED-BY says what manages each object (below). - Keys:
ddescribes,yshows YAML (Secret values redacted),/filters by name or namespace. The footer shows only the keys a kind supports:- Deployments, StatefulSets, DaemonSets:
Enteropens the workload detail,rrestarts,lstreams pod logs - CronJobs:
Enteropens the workload detail - Pods:
lstreams logs,Ctrl+ddeletes the pod so its controller replaces it - Anything patchable:
eedits (below)
- Deployments, StatefulSets, DaemonSets:
- Getting back:
Escwalks back through the lists you opened, and:fluxreturns to the Flux list from anywhere.

Flux names keep their meaning — :ks and :hr still filter the Flux list —
and flux9s commands win over kind names (:ns, :events, :logs); use the
plural (:namespaces) for the kind. Kinds are discovered on connect and
after :ctx, and an unknown :<kind> re-checks, so a CRD installed while
flux9s runs is found on the next try.
Very large lists show the first 5,000 rows and say so — narrow with :ns
or /. Only what’s displayed is kept in memory (listing Secrets holds no
secret data).
MANAGED-BY
What kind of manager owns each object, using the conventions the tools write themselves; first match wins:
- Flux —
Flux ks,Flux hr,Flux rset,Flux instance - Argo CD — tracking annotation or instance label
- An owner chain — controller-created objects are followed up
(
Pod → ReplicaSet → Deployment) to whatever manages the top, so a Flux-managed Deployment’s pods readFlux ks. With nothing at the top, the top owner’s kind is shown (e.g.DaemonSet). - Helm — release annotations, on objects nothing owns
- Any other
app.kubernetes.io/managed-by, else-
Describe (d) and the workload detail show the full answer, e.g.
Flux HelmRelease cert-manager/cert-manager (via ReplicaSet/cert-manager-857cf84654).
Editing non-Flux objects
e edits any object whose kind the API server lists as patchable — in kind
lists, inventory and event rows, and native YAML / describe views — through
the same editor flow as Flux resources. RBAC
still decides on save.
Before the editor opens, flux9s checks who manages the object and asks first when something does:
- Flux: “its next reconcile will revert your change”. If the managing Kustomization, HelmRelease, ResourceSet, or FluxInstance is suspended, it says so instead: your change stays until it’s resumed. flux9s reads the manager from the cluster when it’s outside the namespaces you’re watching.
- Helm, Argo CD, or another manager: that tool may overwrite or revert the change.
- A controller owner with nothing above it: its controller may overwrite the change.

y opens the editor; n or Esc backs out. Unmanaged objects open
straight away.
Secrets are never editable — flux9s only holds their values redacted, so
saving would overwrite them. e suggests the matching kubectl edit
instead, as it does for kinds the API won’t patch.
All namespaces
With native resources on, the :ns menu lists every namespace in the
cluster, with namespaces holding Flux resources first and marked ◆ flux.
If your RBAC can’t list namespaces, it shows the Flux namespaces.
Flux-adjacent CRDs
CRDs labeled app.kubernetes.io/part-of=flux (Flagger, tofu-controller,
ExternalArtifact controllers) can join the Flux list itself, view-only — turn
it on with discoverFluxResources or :discover for a session. See
Discovering Flux-adjacent kinds.