Radar v1.20.0
Modern Kubernetes visibility. Local-first. No account. No cloud dependency. Fast.
Topology, event timeline, and service traffic — plus resource browsing and Helm management. Open source. Free forever.
Installation
Homebrew (macOS/Linux):
brew install skyhook-io/tap/radarScoop (Windows):
scoop bucket add skyhook https://github.com/skyhook-io/scoop-bucket
scoop install radarPowerShell (Windows):
irm https://raw.githubusercontent.com/skyhook-io/radar/main/install.ps1 | iexManual (macOS Apple Silicon):
curl -LO https://github.com/skyhook-io/radar/releases/download/v1.20.0/radar_v1.20.0_darwin_arm64.tar.gz
tar -xzf radar_v1.20.0_darwin_arm64.tar.gz
sudo mv kubectl-radar /usr/local/bin/Manual (macOS Intel):
curl -LO https://github.com/skyhook-io/radar/releases/download/v1.20.0/radar_v1.20.0_darwin_amd64.tar.gz
tar -xzf radar_v1.20.0_darwin_amd64.tar.gz
sudo mv kubectl-radar /usr/local/bin/Manual (Linux amd64):
curl -LO https://github.com/skyhook-io/radar/releases/download/v1.20.0/radar_v1.20.0_linux_amd64.tar.gz
tar -xzf radar_v1.20.0_linux_amd64.tar.gz
sudo mv kubectl-radar /usr/local/bin/Desktop App
Homebrew (macOS):
brew install --cask skyhook-io/tap/radar-desktopDebian/Ubuntu:
curl -LO https://github.com/skyhook-io/radar/releases/download/v1.20.0/radar-desktop_v1.20.0_linux_amd64.deb
sudo dpkg -i radar-desktop_v1.20.0_linux_amd64.debFedora/RHEL:
curl -LO https://github.com/skyhook-io/radar/releases/download/v1.20.0/radar-desktop_v1.20.0_linux_amd64.rpm
sudo rpm -i radar-desktop_v1.20.0_linux_amd64.rpmScoop (Windows):
scoop bucket add skyhook https://github.com/skyhook-io/scoop-bucket
scoop install radar-desktopWindows (direct download): Download from the assets below.
CLI
Then run: kubectl radar
Changelog
- 3935aa7 AI investigations: a built-in example for people who haven't run one yet (#2486)
- 73980dd Accept groups sent as repeated headers in proxy mode
- 4fa114d Add explicit application evidence collection to local resource details (#1847)
- c126422 Add local MCP application evidence collection and diagnosis hints (#1841)
- 3e408f4 Add v1.20.0 What's New entry and show up to seven cards (#2548)
- ace79b0 Argo CD: drop a resource dry-run result once what it checked changes (#2469)
- 8012d37 Argo CD: first-time Enable auto-sync starts with self-heal off, as Argo does (#2477)
- 3f62fcc Argo CD: name dry runs in the sync toast and keep sync tooltips accurate (#2468)
- 9aa65a6 Argo CD: name the ApplicationSet or parent that can turn auto-sync back on (#2470)
- c50a549 Argo CD: syncs keep sync options, pin the compared commit, and default prune off (#2066)
- 3d1103c Argo CD: the resource drawer's Sync opens the options dialog (#2478)
- d9e73f4 Argo CD: working rollback, rollback outcome insights, and Argo 3 auto-sync state (#2060)
- 491e15d Auth docs: strip whichever identity headers Radar is configured to read
- 042894b Back off from a cluster that's down, and say since when (#2457)
- d7c2957 Build GitOps workload descendants from canonical ownership and membership (#2391)
- a3e300c Capacity Demand: name GPU and Pod requests, and give no verdict while a pool is unknown (#2537)
- ecb5701 Chart README: drop the rbac.namespaces removal steps
- 616e255 Chart README: list the empty-list refusal with the others
- aa88b73 Chart: limit Radar to selected namespaces with rbac.namespaces
- ce7abcb Chart: rbac.namespaces is unset by default, and an empty list is refused
- eca0f18 Collect pod metrics per namespace when rbac.namespaces is set
- 2fa4ccf Detect failed cert-manager renewals while certificates remain Ready (#2523)
- 5452273 Diagnose Collector roots through current owned workloads (#2374)
- e363c57 Diagnose Flagger targets separately from owned primary workloads (#2375)
- b6aba60 Document integration surfaces and shared package boundaries (#2480)
- 4cbedb6 Draw Home's Topology and Live Traffic cards as pictures of their views (#2430)
- 88f44f4 Explain Kueue admission with one shared state classification (#2511)
- b7f1d50 Explain Kueue queues and trace Workload admission dependencies (#2512)
- 9b3e7d9 Explain prospective OTel instrumentation reference resolution (#2376)
- 9f23d3a Expose bounded OTel and Flagger facts in agent summaries (#2368)
- 7686107 Give agents a PVC's volume and StorageClass, and a StorageClass's claims (#2503)
- 3c21eb0 Install into a listed namespace without creating it, and require Radar 1.19.1
- 6eb8766 Investigate issues from Home's Active Issues rows (#2429)
- 6862265 Investigation: show the next step's whole first sentence in the jump link (#2484)
- 4c1cdf8 Issues: categorize evicted pods and link them to the evicting node (#2462)
- 23b802f Issues: explain pod creation blocked by slow or unreachable admission webhooks (#2495)
- 4c27c53 Issues: ignore HTTPRoute status entries for parents no longer in spec (RAD-927) (#2550)
- e7cc3eb Issues: name a RollingUpdate surge as the cause of a one-replica ReadWriteOnce rollout deadlock (#2494)
- 956a502 Issues: report ReadWriteOnce PVC shared across replicas as posture (#2461)
- 0fc8a47 KServe: attach serving status context and field semantics (#2518)
- a5720f4 Keep investigation citations through common model format slips (#2506)
- cdd7a29 Keep prerelease tags out of Homebrew and Scoop
- bd6fc1d Keep the current cluster when a context switch can't connect (#2456)
- 527798d Kueue: show queue Workloads with membership, coverage and paging (#2515)
- ecf2eac Kueue: surface actionable blockers in Issues and batch diagnosis (#2517)
- 6410f61 Label an investigation's ruled-out hypotheses and show why each was dropped (#2475)
- e4a8003 Link a ServiceAccount's Secrets, and name declaring ServiceAccounts in a Secret's context (#2502)
- d1e9179 Link a missing Secret to the SealedSecret that fails to produce it (RAD-938) (#2554)
- 406a269 Link admission webhooks to their backend Service, and list a Service's webhooks in resource context (#2500)
- 115d8ae Link cert-manager CertificateRequests, Orders and Challenges to their issuer (#2501)
- 6c4da8a List RBAC changes in get_changes and name grants to outside ServiceAccounts (#2463)
- 7cbc582 Logs: show the line when a structured log has no message to summarize (#2538)
- aadc0c5 MCP instructions: route fixes to manage_gitops (#2473)
- 1ae33d6 MCP setup: tell people to name Radar in their prompt (#2483)
- 78c1541 MCP: accept enum values in any letter case (#2474)
- 641de32 MCP: correct the issues filter and get_resource include help (#2489)
- 20398f2 MCP: correct tool descriptions that name missing arguments or misstate defaults (#2472)
- 27406b5 MCP: plain one-clause guards for repeated field explanations (#2476)
- f0f3a44 MCP: plain wording for telegraphic and all-caps descriptions (#2481)
- 82c1ee9 MCP: same context handling on every tool, and a naming rule for new parameters (#2487)
- 5f0e511 Merge main into rbac-namespaces
- b661dec Nodes table: show an unknown Pod count as a dash, not zero (#2540)
- 63fe6c7 Prerelease tags publish only the Docker image and Helm chart
- 52afdcc Present OTel image upgrade blocks as recorded advisories (#2377)
- d751556 Publish the Helm chart for prerelease tags too
- 7ba9c40 README: restore the top-post Product Hunt badge (#2460)
- ccd6838 RayCluster logs: use current Pods and explain unavailable output (#2514)
- 92f8bcf Read Kubernetes CPU and memory quantities in every form (#2465)
- fc7b061 Record Node label, annotation and taint changes (#2362)
- 18d424a Record the 2026-10-28 Claude Design sync (#2479)
- b153a00 Refresh operational Issues in open namespaced resource views (#2370)
- cb034e3 Report "parent Gateway not found" in the Issues list (RAD-939) (#2555)
- 4a03f3c Report missing Flagger targets, metric templates and provider Secrets (#2373)
- b658036 Report revision serving state, deploy time and access on applications (#2559)
- b618f36 Require every cached kind to be readable in each listed namespace
- 25ef67a Restore workload rollbacks exactly, as kubectl rollout undo does (#2363)
- d9440ae Resume Claude Code hand-offs from ~/.radar/agent so folder trust is remembered (#2485)
- a1e080b Retain Kueue admission and provisioning history in workload Timeline (#2520)
- c8a76bc Return owned Nodes for an explicit get_changes kind=Node or name= query (#2467)
- c954ec2 Scan every backing workload before calling a Service scaled-to-zero (RAD-929) (#2552)
- da6b80e Scoped Radar can join Radar Cloud, and metrics errors name no namespace
- 830d63a Show CRD definitions with a searchable schema explorer and Schema tab (#2535)
- 41f1ee3 Show Continue in your agent in the investigation header (#2427)
- 17fc551 Show JobSet ownership and member navigation in Topology (#2516)
- 1f1e071 Show Kueue-reported pending positions beside workload admission (#2519)
- 90b6d3d Show RabbitMQ resource measurements alongside alarm evidence (#2509)
- a073ff7 Show Strimzi connector task details and snapshot-aware status (#2507)
- de93dc6 Show Vault HA connection and cluster-removal evidence (#2508)
- b67ab6c Show a deleting Job with no active Pods as Deleting, not Pending (#2539)
- c4baec8 Show a resource's last investigation on issue rows (#2496)
- a7c1baf Show a resource's last investigation on its Investigate button (#2491)
- 2e90576 Show which check Cloud connect is running while it prepares (#2243)
- 5be1b84 Stop reading traffic flows for the Home dashboard (#2482)
- 49a6e1c Suppress generic Pending warning for scheduling-gated pods (RAD-930) (#2553)
- 071eee1 Surface cached Strimzi connector findings in diagnosis and related resources (#1846)
- 76b19c7 Tell Compare's sides apart when comparing one resource across clusters (#2562)
- ccd6d4e Traffic: detect Calico and Flannel outside kube-system (#2499)
- b4479df Usage reports schema 4: count what people actually do (#2458)
- 2249ef9 Use the AI accent on Home's investigate line and flatten the issue timing chip (#2471)
- 84c96cc feat(chart): add disableExec to turn off pod exec (#2547)
- deec8c6 feat: add --disable-auto-port-forward
- 1c8a32a feat: show NATS delivery and acknowledgement progress (#2510)
- 6ed334f fix(issues): stop flagging a long-running active Job as a failure (RAD-931) (#2551)
- 523a047 fix(packaging): depend on sonames in the RPM package (#2546)
- cc8ed1b fix(prometheus): retain config across context retirement
- 7e8307a fix(traffic): keep the Hubble connection error when the relay is reachable
- fb6804f gitops: don't suggest CreateNamespace=true when the app already has it (#2549)
- bdc7ce3 issues filter: the documented date example never matched (#2488)
- d0aeecf search: look up an IP or ip:port from a log as a whole address (#2492)