Every other Kubernetes client hands you a pod list and leaves you to work out
what is wrong. PodSteer reads the cluster and tells you — ranked, grouped, and
with what to do about it.
Opening a cluster does not hand you a pod list to read. PodSteer assesses the cluster and ranks what it finds: crash loops grouped by the workload they belong to, pods nothing will ever schedule, jobs that gave up, nodes under pressure. Each finding says what to do about it.
Capacity measured against requests
A cluster can refuse new pods while every usage graph looks calm, because scheduling is decided by requests, not usage. PodSteer draws both on one track, and names the number nobody prints: how much of what you reserved you are actually using.
Every kind, including your own
Pods, nodes and the six workload controllers get purpose-built views. Everything else — including every CRD your operators install — is rendered from the API server's own table printer, so a freshly installed operator is browsable with no update to PodSteer.
Several clusters at once
One tab per cluster, each with its own namespace, search and refresh. No layer of PodSteer has a notion of "the current cluster", so the tabs are real rather than a selector with extra steps.
Logs, a shell, and the object itself
Stream logs, exec into a container, edit the manifest, scale, restart or delete — from the same overlay that shows the object, without losing your place in the list behind it.
A trend, kept locally
Kubernetes reports only the present. PodSteer samples each connected cluster while it runs and keeps the result on your machine — for a day, a week, or not at all. It is written to the per-user application directory your operating system provides, and sent nowhere.
The number nobody prints
Requests decide what schedules. Not usage.
A cluster can refuse new pods while every usage graph looks calm, because
scheduling is decided by what pods reserved, not by what they use.
PodSteer draws both on one track and names the gap between them — so
"47 of 102 cores requested, 9% of that actually used" is a
sentence you can act on rather than two dials you have to reconcile.
How it is built
Native, not Electron
Go and the operating system's own webview. There is no bundled browser, which is why it starts in under a second and idles in tens of megabytes rather than hundreds.
Your kubeconfig, and nothing else
PodSteer talks to the clusters your kubeconfig names, through the same client library kubectl uses. No account, no telemetry, no update check, and no network access at all from the interface itself.
Open source, Apache-2.0
Every dependency it ships is permissively licensed, the inventory is generated from what is actually linked into the binary, and the build fails if that stops being true.
Questions
The things people ask first.
Is PodSteer really free?
Yes, and it needs no account. The application is Apache-2.0 licensed, which is a grant you keep rather than a trial that lapses. If paid services for teams follow later they will stand alongside it, not be carved out of it.
Can PodSteer change my clusters?
Yes — it can scale, restart, edit and delete objects, using the credentials your kubeconfig already grants. It enforces no permissions of its own and cannot: restricting what it may do means restricting those credentials, with RBAC, exactly as you would for kubectl.
What does it send over the network?
Only Kubernetes API traffic, to the clusters your kubeconfig names. There is no account, no telemetry and no update check, and the interface itself has no network access at all — that is enforced by a content security policy inside the application, not just promised here.
How is this different from k9s, Lens or kubectl?
Those show you the cluster; PodSteer assesses it. Instead of a list to read, you get ranked findings with what to do about each, and capacity measured against requests rather than usage — the number that actually decides whether a pod schedules.
Does it work with my managed Kubernetes?
It talks to the API server through the same client library kubectl uses, so anything your kubeconfig can reach works: EKS, GKE, AKS, OpenShift, k3s, kind and self-managed clusters alike. Custom resources your operators install are browsable without an update to PodSteer.
Why does macOS say the app is damaged?
Because it is not yet signed with an Apple Developer ID, and macOS reports every unsigned download that way. Clearing the quarantine flag once with xattr -dr com.apple.quarantine /Applications/PodSteer.app fixes it. Verify the download against the published SHA-256 checksums rather than taking our word.
The application is free, and stays that way.
PodSteer is Apache-2.0 licensed and needs no account. It reads the kubeconfig
you already have and talks to nothing else. If paid services for teams follow
later, they will be additions standing alongside it — not pieces taken out of
it.