Radar OSS · Diagnose

AI investigations for your Kubernetes cluster. Your own agent, keyless.

Point Diagnose at a misbehaving resource and the agent CLI you already have - Claude Code, Codex, or Cursor - investigates it against Radar's live cluster model: root cause, the evidence behind it, and a fix you approve before anything changes. No API key, no account, nothing sent to Radar.

Apache 2.0 · Bring your own agent · Read-only until you approve a fix

A real investigation, not a mock - captured end-to-end in the walkthrough below.

Watch it work

One investigation, start to finish.

A Deployment crashing on a renamed ConfigMap key, investigated by Claude Code through Radar - captured from a real run, unretouched. Click through the four moments that matter.

Step 01Deterministic engine · no AI yet

Radar already knows what's broken

Both checkout-worker pods are stuck in CreateContainerConfigError. The deterministic Issues engine has already classified the failure - down to the missing ConfigMap key - and the row carries a Diagnose button. That's the whole setup: one click.

The problem

AI troubleshooting usually starts with a paste.

The way most teams use AI on a broken cluster today is copy-paste: a pod description into a chat window, then the events, then the logs, one round-trip at a time, with you as the transport layer. The tools that fix that mostly introduce two new problems - another API key to provision, and another vendor's judgment about how much cluster access is safe to give a model.

Diagnose takes a different deal. You already pay for an agent. Radar hands it structured, scrubbed, read-only access to the live cluster model it already maintains, runs the investigation on your machine, and gives you back a verdict built to be checked. Radar never sees a byte of it.

Built for checking

Three verdicts. All of them honest.

Root cause, argued

Evidence, remediation, and why the recommended fix is the safe pick - confidence as a coarse band, not a fake percentage.

All-clear means verified

Absence of evidence is not health. A green verdict means the agent checked, not that it found nothing.

Inconclusive is an answer

RBAC-denied, missing data, ambiguous state - said plainly instead of dressed up as a diagnosis.

Safe by design

The boundaries live in the tool layer, not the prompt.

You can't instruct a model into safety. Every guarantee below is enforced where a prompt injection can't negotiate with it - and where one can't be, Radar says so out loud.

Read-only by construction

Write tools aren't present on the investigation surface - not disabled, absent - and a regression test fails the build if one leaks in.

Apply is a separate session

An approved fix runs in a fresh session bound to that one confirmed change, so injected reads can't steer writes.

Exits cut during runs

Built-in web search is off during a run. Where a CLI can't be fully closed (Cursor), Radar says so in a consent step.

Your keys stay yours

No API key to Radar, no account. The agent runs under your existing subscription, and the consent card says where data goes.

GitOps-aware applies

Direct changes to Argo-, Flux-, or Helm-managed resources gate behind an explicit acknowledgment - they'd revert on the next sync.

Local, on your machine

Ships in standalone OSS Radar, runs against your kubeconfig, loopback-checked. Nothing touches Radar's servers.

The full reasoning behind these boundaries is in our post Read-Only Is Not a Safety Boundary - and all of it is code you can read, not policy you have to trust.

The foundation

AI on top of a deterministic layer - not instead of one.

Diagnose doesn't reason over raw YAML floods. It starts from the same structured layers the rest of Radar is built on: the deterministic Issues engine that already classified what's broken, and the MCP tool surface that hands agents topology, correlated timelines, and scrubbed logs. Our 52-scenario benchmark measured that tool surface, not Diagnose itself - and it's why Diagnose is built on it: an agent on the structured tools out-diagnosed the same agent on raw kubectl (80.8% vs 77.6% pass rate) with 76% fewer tool calls.

The health signal the investigation starts from is computed, not asserted by the model - so the agent confirms or refutes a real diagnosis instead of being told something is broken and manufacturing a story to match. Rules where rules win, a model where judgment helps, and a clear line between them.

Open source

Apache 2.0. Yours to inspect, fork, or self-host.

Radar's source is on GitHub. Every feature on this page is in the binary you install with brew install. No telemetry, no mandatory login, no cluster data out. The one outbound call is an anonymous version check when the UI opens. If we ever change that, you'll see it in a diff first.

skyhook-io/radar
2.7k★ GitHub stars
Apache 2.0 · Actively maintained
FAQ

Questions we get about Diagnose.

Do I need an API key or a Radar account?
No, and that's the point. Diagnose drives the agent CLI you already have - Claude Code, Codex, or Cursor - under your existing account. Radar detects supported CLIs on your PATH; if none is installed, the feature stays out of your way.
Where does my cluster data go?
Not to Radar - investigations run on your machine and nothing about them touches our servers. What the agent reads does go to your model provider (Anthropic, OpenAI, or Cursor's backend) under your own account, and the consent card before your first run says exactly that rather than burying it.
Can Diagnose change my cluster?
Not during an investigation. The tool surface the agent drives is read-only by construction - write tools aren't present, and a regression test fails if one leaks in. An approved fix runs afterward in a separate session bound to that one confirmed change, and applies to GitOps- or Helm-managed resources add an explicit acknowledgment, because a direct change would be reverted on the next sync.
What happens when it can't figure out the cause?
It tells you. "Inconclusive" is a first-class verdict - RBAC-denied reads, missing data, ambiguous state - shown calmly instead of dressed up as an answer. Confidence on real findings is a coarse band (low / medium / high), deliberately not a percentage pretending to more precision than a model has.
Which agent CLIs are supported, and how isolated are they?
Claude Code, Codex, and Cursor. Claude Code runs with all built-in tools disabled - cluster access is Radar's tools only. Codex defaults to an isolated mode that ignores your user config, with your full setup available as an explicit trusted option. Cursor is sandboxed but can't suppress your own globally-configured MCP servers, so it gets its own consent card saying exactly that.
Is this the same engine as the Issues queue?
No - and the separation is deliberate. Issues stays deterministic: rules over live state, the same answer every time, no model involved. Diagnose is the opt-in AI layer that starts from those diagnoses and Radar's structured cluster model when you explicitly ask for an investigation.

Your agent already knows Kubernetes. Give it the cluster.

Install Radar, click Diagnose on the thing that's broken, and watch your own agent argue the root cause.

Apache 2.0 · Self-host forever · Cloud for fleet, alerts, SSO