One namespace,
everything in it, live.

kubectl get -w on steroids:
a whole namespace, live, and all of it linked up.

installmacOS · Linux
curl -fsSL https://getkfs.org/install.sh | sh

or brew install fu/tap/kfs · other ways

01 What it is

kfs shows a Kubernetes namespace on one page that updates in place: the GitOps apps that deploy it, its deployments, replicasets and pods with CPU and memory, its services, ingress routes, configmaps and secrets. Below them runs a change log of everything that happens there — including what happened before you started.

Select a row and everything linked to it lights up, across sections: the app that deploys it, the pods it runs, the secrets and configmaps they read, the services and ingress routes in front of them.

02 What you get

One page, live
Pick a namespace, optionally a label filter. No sub commands, no screens to remember.
The why, not just the state
When an Argo CD or Flux app is not green, kfs looks at what it manages and says which workload is failing and why.
A memory
The change log starts with the events Kubernetes still keeps, so you see what happened before you looked.
Hands on
Logs, shell, port-forward, describe and yaml on the selected row.
Careful with secrets
Values are never kept in the list and only shown when you ask.
kubectl at heart
Same libraries, same flags: -n, --context, --kubeconfig, exec auth plugins.

03 Install

  1. One line macOS, Linux

    curl -fsSL https://getkfs.org/install.sh | sh

    Picks the build for your machine, checks it against the release checksums and puts kfs in /usr/local/bin (or ~/.local/bin). Read the script first if you like.

  2. Or with Homebrew

    brew install fu/tap/kfs
  3. Or with Go

    go install github.com/fu/kfs@latest
  4. Or a binary

    Builds for macOS, Linux and Windows are on the releases page. Unpack one and put kfs on your PATH.

  5. Run it

    kfs reads your kubeconfig exactly like kubectl does. There is nothing to set up.

    kfs -n shop

Coming from k7s? Run brew uninstall k7s, then install kfs as above. The config now lives in ~/.config/kfs/.

04 Usage

$ kfs                       # the current namespace
$ kfs -n shop               # namespace shop
$ kfs -n shop -l app=web    # only one app in it
$ kfs -n shop --once        # print the sections once and exit

05 Keys

[c] [n] [f]        context, namespace, filter
[tab]              next section
[up] [down]        move  (or the mouse wheel)
[shift]+section    sort by the next column
[d]                describe the row
[l] [h] [w]        logs, shell, port-forward
[q] [a]            scroll the change log
[Q] [A]            move the divider
[esc]              back, quit
kfs -n shoplive
 kfs | ctx dev | ns shop | filter app=web
|gitops
>1  o  o  web     shop  o main-app
:
|deployments
o1  web   3/3   3   3  o  web:1.4.2
.
|pods
o1  web-7d4b9c6f5-x2k8q  1/1  o  3m
o2  web-7d4b9c6f5-pq9vz  1/1  o  3m
:
+ changes (42) ===   --   .   == ---

The recording goes here_

Select a row: what it touches lights up. The rail on the left is time — changes travel down it.