DEV Community

Ganesh Giri
Ganesh Giri

Posted on

I Built KubeAura: An AI-Powered Kubernetes Dashboard (and I'm Open Sourcing It)

After months of juggling between kubectl terminals, dashboards, and logs, I finally got fed up. So I built KubeAura — a single-binary Kubernetes cockpit that actually gets out of your way. And today, I'm excited to open source it.

The Problem

You know that feeling? You're debugging a failing pod, and you find yourself:

  • SSHing into different machines to check logs
  • Running kubectl get pods a dozen times
  • Asking ChatGPT "why would this pod crash?" without real cluster context
  • Wishing someone built a k9s alternative with actual intelligence baked in

I was living that. So I asked: what if your Kubernetes dashboard talked back?

Introducing KubeAura

KubeAura is a full-featured Kubernetes cockpit with one guiding philosophy: you already have a kubeconfig, just run it.

kubeaura        # reads your current kube context, opens http://127.0.0.1:7654
Enter fullscreen mode Exit fullscreen mode

That's it. No server deployment, no database, nothing. One binary. Your machine. Your cluster.

What You Get

🖥️ Command Center Dashboard

  • Live cluster health and metrics heatmaps
  • Pod phase charts, deployment status, restart leaderboard
  • 19 resource kinds: Pods, Deployments, StatefulSets, Services, Ingresses, DaemonSets, Jobs, RBAC, Namespaces, and more
  • Live CPU/memory usage inline with requests and limits

🧠 AI Assistant (Pluggable)
Choose your own model—or run locally with zero data leaving your machine:

  • Hosted Claude (via Anthropic API)
  • Local models (Ollama: llama, mistral, qwen, phi3)
  • Any OpenAI-compatible endpoint (OpenAI, LocalAI, vLLM, Groq, OpenRouter)

🎙️ Voice Commands
Tap the mic and talk naturally:

  • "How many pods are running?" → Live answer from your cluster
  • "Why is broken-api failing?" → Root cause analysis
  • "Scale web-frontend to 3" → Confirmation-gated mutation
  • Spoken answers read aloud. No typing required.

📊 Observability Features

  • Alerts (Pulse): One triage view of everything wrong—crashloops, OOMKills, degraded workloads, expiring certs
  • Topology Graph: Ingress → Service → Workload → Pod with replica health
  • Metrics: Node heatmaps, top resource consumers, per-service usage
  • Quotas: ResourceQuota dashboard with progress bars

🔌 Ecosystem Integrations (detect-don't-install)

  • Security: Trivy Operator CVE reports
  • Policy: Kyverno/OPA PolicyReports compliance
  • GitOps: Argo CD + Flux sync status
  • Autoscaling: HPA + KEDA status
  • Certificates: cert-manager expiry alerts

🪟 Native Desktop App
Same binary runs as a desktop window on macOS, Windows, or Linux—with system webview, no Electron bloat.

Why I Built This

Every Kubernetes dashboard I tried either:

  1. Required deploying infrastructure (no thanks)
  2. Didn't understand my cluster context (you need kubectl anyway)
  3. Had the UI but no smarts (static dashboards are boring)

KubeAura flips the script: stateless, single-binary, and actually intelligent. It's k9s meets Lens meets ChatGPT, but as one 40MB binary you trust.

Getting Started (30 seconds)

macOS / Linux:

curl -sSfL https://raw.githubusercontent.com/devganeshg/kubeaura/main/scripts/install.sh | sh
kubeaura
Enter fullscreen mode Exit fullscreen mode

Windows:
Download the .zip from releases and extract to your PATH.

Docker:

docker run --rm -p 7654:7654 \
  -v ~/.kube:/home/nonroot/.kube:ro \
  ghcr.io/devganeshg/kubeaura
Enter fullscreen mode Exit fullscreen mode

Then open http://127.0.0.1:7654.

Turning on the AI (Optional)

Everything works without AI, but it's where the magic happens.

Local Ollama (fully private):

ollama serve &
ollama pull llama3.2
export KUBEAURA_AI_PROVIDER=ollama
kubeaura
Enter fullscreen mode Exit fullscreen mode

Hosted Claude:

export ANTHROPIC_API_KEY=sk-ant-...
kubeaura
Enter fullscreen mode Exit fullscreen mode

Or use OpenAI, LocalAI, vLLM, Groq, OpenRouter—whatever you want.

Features That Impressed Even Me

1. Cluster Diagnosis

Click "Diagnose" on any pod and get a root cause analysis grounded in real spec, events, and logs.

2. Voice Control

  • Tap the mic on any view
  • Speak naturally: "Is anything broken?"
  • Get a spoken answer
  • Conversation mode keeps the mic open—hands-free workflows

3. RBAC-Honest UI

Actions you can't perform are automatically greyed out. Forbidden reads degrade per-panel instead of breaking the page. It respects what you can actually do.

4. Desktop App

The desktop window uses system webview—true native windows on macOS/Windows/Linux with the KubeAura icon. No Electron, no Node, nothing extra to ship.

5. Security by Default

  • Binds 127.0.0.1 (loopback only)
  • Refuses cross-origin and DNS-rebinding attacks
  • API keys never written to disk
  • Data only leaves your machine if you choose a hosted model

The Tech

  • Backend: Go (single binary, ~40MB with UI embedded)
  • Frontend: Vanilla JavaScript + HTML5, no build step, embedded with go:embed
  • Cluster Access: client-go + Kubernetes API
  • UI Style: KubeAura gradient (orange to hot pink) over warm charcoal glass, dark/light modes
  • Desktop: System webview shell (WKWebView/WebView2/WebKitGTK)

Where's This Headed?

Right now (v0.1), KubeAura covers the core:

  • Cluster observation (dashboards, metrics, alerts, topology)
  • Resource management (YAML editing, logs, exec, port-forward, scale, restart, delete)
  • AI assistance (diagnosis, triage, review, explain, summarize, generate)

Planned (not yet built):

  • Interactive TTY terminal (current exec is one-shot)
  • YAML schema autocomplete
  • Helm / Kustomize app catalog
  • Plugin SDK
  • Prometheus/Alertmanager bridge

Contributing

I'm looking for contributors! The project has:

  • ✅ Comprehensive README and docs
  • ✅ Contributing guidelines + Code of Conduct
  • ✅ Easy-to-extend architecture
  • ✅ Active maintenance

Good first-issue areas:

  • UI polish (more icons, animations)
  • Additional AI backends (Bedrock, Vertex AI, etc.)
  • Resource kind additions
  • Performance optimizations

See CONTRIBUTING.md.

Why Open Source?

Kubernetes is a team sport. The best tools come from communities, not silos. KubeAura is Apache 2.0 licensed because I believe:

  • Your Kubernetes dashboard shouldn't phone home
  • Your kubeconfig shouldn't need a server deployment
  • AI should augment operators, not replace judgment

One More Thing

If you try it, I'd love to hear:

  • What breaks (GitHub issues)
  • What you loved (star it 🌟)
  • Ideas for AI features (discussions)
  • Or just come say hi

⭐ GitHub🌐 Website📦 Releases


What's Your Take?

Are you tired of juggling kubectl, dashboards, and logs? Ever wished your Kubernetes dashboard could answer questions?

Drop a comment below—I'd love to hear about your cluster management workflow and whether KubeAura solves a real problem for you.

Let's make Kubernetes operations less of a headache. One voice command at a time.

Top comments (1)

Collapse
 
mads_hansen_27b33ebfee4c9 profile image
Mads Hansen

The single-binary/local-first shape is compelling. For the hosted-model path, one operational detail I’d make visible is the exact evidence envelope sent off-cluster. Pod specs, events, and logs routinely contain secret references, internal hostnames, environment values, customer identifiers, or tokens accidentally printed by an app.

A useful guardrail would be a deterministic redaction layer plus a preview showing resource UID/namespace, selected fields, log window, and bytes leaving the machine before the model call. Keep Secret bodies excluded regardless of RBAC, cap event/log volume, and record the evidence hash with the diagnosis. Then an operator can reproduce why the assistant reached a conclusion without storing the sensitive payload itself. “Local dashboard” and “hosted inference” can coexist safely, but that boundary deserves first-class UI.