Open-source Kubernetes dashboard with live cluster state, streaming logs, in-browser shell, AI diagnose, JIT access, and cost analysis — in a single Go binary. Runs in your cluster. Your data, your machine.
I don't care about beautiful graphs, I care about closing tabs during an incident. Kube-argus replaces k9s + Grafana + kubectl + the cost dashboard with one screen.
Kube-Argus is a single Go binary that ships as a Helm chart. It connects to your cluster's API via the service account, watches resources via informers, and renders a real-time dashboard that knows about the things SREs actually care about: who has access, what's failing, what it costs, and what the AI thinks is wrong.
No operator. No CRDs. No database. Helm provisions a Deployment, a Service, and (optional) an Ingress. State lives in ConfigMaps. Auth is OIDC + Google SSO + admin-emails.
~12 MB image. Multi-arch (amd64 + arm64). Runs as nonroot. Distroless base. Zero ongoing maintenance.
Audit trail, JIT requests, Slack/webhook config — all stored in ConfigMaps that survive pod restarts and stay consistent across replicas.
The dashboard never phones home. Your cluster data stays in your cluster. AI and webhook integrations are opt-in.
Plug into Google, Okta, Keycloak, Dex, Auth0 — or stay simple with admin-emails and a default role.
Every feature exists because somebody got paged and wished they had it.
Pods, nodes, workloads, services, events, ingresses — watched via informers, rendered in real time. No polling, no stale UIs.
SSE-streamed pod logs with search, container picker, and error highlighting. Browser-based exec via xterm.js when you need a shell.
One click on a struggling pod, the LLM tells you why — built on top of live status, events, logs, and last-termination state.
Viewers request shell or restart access. Admins approve from Slack or the dashboard. Every grant is time-bounded and audit-logged.
Per-namespace cost breakdown, spot instance risk scoring, nodepool consolidation hints. Numbers sit next to the workload.
Guided node drains with PDB awareness, live eviction progress, and a dry-run mode. The operation you don't want to get wrong, made safer.
Inline YAML view and edit for every resource type, with syntax highlighting and structured drift detection against the live cluster state.
Every login, exec, restart, scale, and JIT grant logged. Persists across replicas via read-merge-write ConfigMap. WebSocket-driven, no polling.
Push JIT events to Slack with interactive approve/deny, or any HTTPS endpoint with HMAC-SHA256 signing. Filter by event type per destination.
Three popular options against one binary.
| Capability | kube-argus | k9s | Lens / Headlamp | Grafana + kubectl |
|---|---|---|---|---|
| Real-time pod / workload state | ✓ | ✓ | ✓ | partial |
| Browser-based exec terminal | ✓ | CLI only | ✓ | — |
| AI-powered diagnose | ✓ | — | — | — |
| JIT access workflow | ✓ | — | — | — |
| Cost & spot advisor | ✓ | — | — | via plugins |
| Drain wizard with PDB awareness | ✓ | cordon/drain only | cordon/drain only | kubectl only |
| Audit trail (persisted) | ✓ | — | — | — |
| Slack / webhook notifications | ✓ | — | — | via Alertmanager |
| Single binary, no daemons | ✓ | ✓ | Electron / server+UI | multi-component |
| OIDC / Google SSO built-in | ✓ | kubeconfig only | ✓ | via proxy |
The chart is on ArtifactHub. The image is multi-arch on GHCR. The source is on GitHub. The dashboard never phones home — your cluster data stays in your cluster.
internal/{api,auth,audit,jit,notify,httpx} — main.go is now 238 lines of pure wire-upPROMETHEUS_URL env var.
ADMIN_EMAILS + DEFAULT_ROLE for simple setups.
Roles are admin (write access) and viewer (read access). View-as-viewer impersonation lets admins preview
the UI from a viewer's perspective without signing out.
LLM_GATEWAY_URL / LLM_GATEWAY_KEY / LLM_GATEWAY_MODEL.
A 30-second helm install. No daemons, no database, no telemetry.