<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Ganesh Giri</title>
    <description>The latest articles on DEV Community by Ganesh Giri (@ganesh_giri).</description>
    <link>https://dev.to/ganesh_giri</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1793132%2F00b136af-7c26-4db9-9457-d502a252aa32.png</url>
      <title>DEV Community: Ganesh Giri</title>
      <link>https://dev.to/ganesh_giri</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ganesh_giri"/>
    <language>en</language>
    <item>
      <title>I Built KubeAura: An AI-Powered Kubernetes Dashboard (and I'm Open Sourcing It)</title>
      <dc:creator>Ganesh Giri</dc:creator>
      <pubDate>Sun, 26 Jul 2026 19:02:30 +0000</pubDate>
      <link>https://dev.to/ganesh_giri/i-built-kubeaura-an-ai-powered-kubernetes-dashboard-and-im-open-sourcing-it-2afn</link>
      <guid>https://dev.to/ganesh_giri/i-built-kubeaura-an-ai-powered-kubernetes-dashboard-and-im-open-sourcing-it-2afn</guid>
      <description>&lt;p&gt;After months of juggling between kubectl terminals, dashboards, and logs, I finally got fed up. So I built &lt;a href="https://github.com/devganeshg/kubeaura" rel="noopener noreferrer"&gt;&lt;strong&gt;KubeAura&lt;/strong&gt;&lt;/a&gt; — a single-binary Kubernetes cockpit that actually gets out of your way. And today, I'm excited to open source it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;You know that feeling? You're debugging a failing pod, and you find yourself:&lt;/p&gt;

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

&lt;p&gt;I was living that. So I asked: &lt;strong&gt;what if your Kubernetes dashboard talked back?&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Introducing KubeAura
&lt;/h2&gt;

&lt;p&gt;KubeAura is a &lt;strong&gt;full-featured Kubernetes cockpit&lt;/strong&gt; with one guiding philosophy: &lt;em&gt;you already have a kubeconfig, just run it&lt;/em&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;kubeaura        &lt;span class="c"&gt;# reads your current kube context, opens http://127.0.0.1:7654&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's it. No server deployment, no database, nothing. One binary. Your machine. Your cluster.&lt;/p&gt;

&lt;h3&gt;
  
  
  What You Get
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;🖥️ Command Center Dashboard&lt;/strong&gt;&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;🧠 AI Assistant (Pluggable)&lt;/strong&gt;&lt;br&gt;
Choose your own model—or run locally with zero data leaving your machine:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Hosted Claude (via Anthropic API)&lt;/li&gt;
&lt;li&gt;Local models (Ollama: llama, mistral, qwen, phi3)&lt;/li&gt;
&lt;li&gt;Any OpenAI-compatible endpoint (OpenAI, LocalAI, vLLM, Groq, OpenRouter)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;🎙️ Voice Commands&lt;/strong&gt;&lt;br&gt;
Tap the mic and talk naturally:&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;📊 Observability Features&lt;/strong&gt;&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;🔌 Ecosystem Integrations&lt;/strong&gt; (detect-don't-install)&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;🪟 Native Desktop App&lt;/strong&gt;&lt;br&gt;
Same binary runs as a desktop window on macOS, Windows, or Linux—with system webview, no Electron bloat.&lt;/p&gt;
&lt;h3&gt;
  
  
  Why I Built This
&lt;/h3&gt;

&lt;p&gt;Every Kubernetes dashboard I tried either:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Required deploying infrastructure (no thanks)&lt;/li&gt;
&lt;li&gt;Didn't understand my cluster context (you need kubectl anyway)&lt;/li&gt;
&lt;li&gt;Had the UI but no smarts (static dashboards are boring)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;KubeAura flips the script: &lt;strong&gt;stateless, single-binary, and actually intelligent&lt;/strong&gt;. It's k9s meets Lens meets ChatGPT, but as one 40MB binary you trust.&lt;/p&gt;
&lt;h2&gt;
  
  
  Getting Started (30 seconds)
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;macOS / Linux:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-sSfL&lt;/span&gt; https://raw.githubusercontent.com/devganeshg/kubeaura/main/scripts/install.sh | sh
kubeaura
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Windows:&lt;/strong&gt;&lt;br&gt;
Download the &lt;code&gt;.zip&lt;/code&gt; from &lt;a href="https://github.com/devganeshg/kubeaura/releases" rel="noopener noreferrer"&gt;releases&lt;/a&gt; and extract to your PATH.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Docker:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker run &lt;span class="nt"&gt;--rm&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; 7654:7654 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-v&lt;/span&gt; ~/.kube:/home/nonroot/.kube:ro &lt;span class="se"&gt;\&lt;/span&gt;
  ghcr.io/devganeshg/kubeaura
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then open &lt;a href="http://127.0.0.1:7654" rel="noopener noreferrer"&gt;http://127.0.0.1:7654&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Turning on the AI (Optional)
&lt;/h2&gt;

&lt;p&gt;Everything works without AI, but it's where the magic happens.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Local Ollama (fully private):&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ollama serve &amp;amp;
ollama pull llama3.2
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;KUBEAURA_AI_PROVIDER&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;ollama
kubeaura
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Hosted Claude:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;ANTHROPIC_API_KEY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;sk-ant-...
kubeaura
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Or use OpenAI, LocalAI, vLLM, Groq, OpenRouter—whatever you want.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Features That Impressed Even Me
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Cluster Diagnosis
&lt;/h3&gt;

&lt;p&gt;Click "Diagnose" on any pod and get a root cause analysis grounded in real spec, events, and logs.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Voice Control
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Tap the mic on any view&lt;/li&gt;
&lt;li&gt;Speak naturally: &lt;em&gt;"Is anything broken?"&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;Get a spoken answer&lt;/li&gt;
&lt;li&gt;Conversation mode keeps the mic open—hands-free workflows&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. RBAC-Honest UI
&lt;/h3&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Desktop App
&lt;/h3&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Security by Default
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Binds &lt;code&gt;127.0.0.1&lt;/code&gt; (loopback only)&lt;/li&gt;
&lt;li&gt;Refuses cross-origin and DNS-rebinding attacks&lt;/li&gt;
&lt;li&gt;API keys never written to disk&lt;/li&gt;
&lt;li&gt;Data only leaves your machine if you choose a hosted model&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Tech
&lt;/h2&gt;

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

&lt;h2&gt;
  
  
  Where's This Headed?
&lt;/h2&gt;

&lt;p&gt;Right now (v0.1), KubeAura covers the core:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cluster observation (dashboards, metrics, alerts, topology)&lt;/li&gt;
&lt;li&gt;Resource management (YAML editing, logs, exec, port-forward, scale, restart, delete)&lt;/li&gt;
&lt;li&gt;AI assistance (diagnosis, triage, review, explain, summarize, generate)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Planned (not yet built):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Interactive TTY terminal (current exec is one-shot)&lt;/li&gt;
&lt;li&gt;YAML schema autocomplete&lt;/li&gt;
&lt;li&gt;Helm / Kustomize app catalog&lt;/li&gt;
&lt;li&gt;Plugin SDK&lt;/li&gt;
&lt;li&gt;Prometheus/Alertmanager bridge&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Contributing
&lt;/h2&gt;

&lt;p&gt;I'm looking for contributors! The project has:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✅ Comprehensive README and docs&lt;/li&gt;
&lt;li&gt;✅ Contributing guidelines + Code of Conduct&lt;/li&gt;
&lt;li&gt;✅ Easy-to-extend architecture&lt;/li&gt;
&lt;li&gt;✅ Active maintenance&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Good first-issue areas:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;UI polish (more icons, animations)&lt;/li&gt;
&lt;li&gt;Additional AI backends (Bedrock, Vertex AI, etc.)&lt;/li&gt;
&lt;li&gt;Resource kind additions&lt;/li&gt;
&lt;li&gt;Performance optimizations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;See &lt;a href="https://github.com/devganeshg/kubeaura/blob/main/CONTRIBUTING.md" rel="noopener noreferrer"&gt;CONTRIBUTING.md&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Open Source?
&lt;/h2&gt;

&lt;p&gt;Kubernetes is a team sport. The best tools come from communities, not silos. KubeAura is Apache 2.0 licensed because I believe:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Your Kubernetes dashboard shouldn't phone home&lt;/li&gt;
&lt;li&gt;Your kubeconfig shouldn't need a server deployment&lt;/li&gt;
&lt;li&gt;AI should augment operators, not replace judgment&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  One More Thing
&lt;/h2&gt;

&lt;p&gt;If you try it, I'd love to hear:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What breaks (GitHub issues)&lt;/li&gt;
&lt;li&gt;What you loved (star it 🌟)&lt;/li&gt;
&lt;li&gt;Ideas for AI features (discussions)&lt;/li&gt;
&lt;li&gt;Or just come say hi&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/devganeshg/kubeaura" rel="noopener noreferrer"&gt;⭐ GitHub&lt;/a&gt;&lt;/strong&gt; • &lt;a href="https://devganeshg.github.io/kubeaura/" rel="noopener noreferrer"&gt;🌐 Website&lt;/a&gt; • &lt;a href="https://github.com/devganeshg/kubeaura/releases" rel="noopener noreferrer"&gt;📦 Releases&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  What's Your Take?
&lt;/h2&gt;

&lt;p&gt;Are you tired of juggling kubectl, dashboards, and logs? Ever wished your Kubernetes dashboard could answer questions?&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Let's make Kubernetes operations less of a headache. One voice command at a time.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>kubernetes</category>
      <category>devops</category>
      <category>ai</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
