
Popeye
Read-only scanner that lints live Kubernetes clusters for misconfigurations, unused resources, and over/under allocation, with console, JSON, and HTML reports.
Popeye is a read-only linter for live Kubernetes clusters. It inspects resources as they are deployed rather than manifests on disk, and reports misconfigurations, stale or unused resources, and deviations from best practices. It does not modify any cluster resources. If the cluster runs a metric-server, it also reports likely CPU/memory over- or under-allocation and warns when the cluster may run out of capacity.
Linters cover Nodes, Namespaces, Pods, Services, ServiceAccounts, Secrets, ConfigMaps, Deployments, StatefulSets, DaemonSets, PersistentVolumes and Claims, HPAs, PodDisruptionBudgets, RBAC roles and bindings, Ingress, NetworkPolicies, and more. Example checks include port mismatches, containers using untagged or latest images, missing probes or resource requests/limits, unused ConfigMaps, Secrets and ServiceAccounts, node conditions, and utilization above a threshold (default 80% CPU/MEM). Each resource has a short alias such as po, svc, dp or pvc.
It runs against your current kubeconfig context. Use -n for a namespace, -A for all namespaces, --context to pick a context, and -s pod,svc to run specific linters. Linters can be tuned with a "spinach" YAML config passed via -f spinach.yaml. Reports can be rendered in the console, as JSON, or as HTML. Popeye also publishes Prometheus metrics, and the repo includes a sample Grafana dashboard. It is aimed at Kubernetes operators, SREs, and platform engineers auditing cluster health. It runs on Linux, macOS and Windows.
Installation
# via Homebrew
brew install derailed/popeye/popeye
# via Go
go install github.com/derailed/popeye@latest



Alternatives & related tools
Docker CLI
Source repository for the Docker command-line client, written in Go and built with docker buildx bake, with cross-platform and glibc/musl build targets.
Krew
Package manager for kubectl plugins: discover, install, and manage plugins from a central index, similar to apt, dnf, or brew.
freeze
Generate PNG, SVG, and WebP images of code and terminal output with syntax highlighting and customizable styling.
scc
Code counter written in Go that reports lines of code, comments, complexity, ULOC and COCOMO estimates across many languages, with multiple output formats.
reviewdog
Parses linter output and posts findings in changed lines as review comments on GitHub, GitLab, and Bitbucket, or filters lint results by diff locally.
add a badge to your README
Maintain Popeye? Show that it's featured on trmn. The badge links back to this page.
[](https://www.trmn.sh/tools/popeye?utm_source=badge)<a href="https://www.trmn.sh/tools/popeye?utm_source=badge"><img src="https://www.trmn.sh/badge/popeye.svg" alt="Featured on trmn" height="20"></a>