Skip to content

Headlamp

Headlamp is an extensible web and desktop UI for Kubernetes that reaches every cluster API through its own backend proxy and lets plugins add pages at runtime.

  • Category: Developer Tools
  • CNCF maturity: Sandbox (accepted 2023-05-17); also a Kubernetes SIG UI subproject since 2025
  • Language: Go (backend) and TypeScript/React (frontend)
  • License: Apache-2.0
  • Repository: kubernetes-sigs/headlamp
  • Documented at commit: dab1a6c5 (tag v0.43.0, 2026-07-06)

What it is

Headlamp is a graphical interface for operating Kubernetes clusters. It lists and inspects the usual resources (Pods, Deployments, Services, and the rest), edits them, and drives cluster actions such as scaling, log viewing, and port-forwarding. It runs two ways from the same code: a browser app served by a Go backend, and a desktop app that wraps the same backend and frontend in Electron for Linux, macOS, and Windows.

The frontend never talks to a Kubernetes API server directly. Every request goes through the Go backend, which holds the kubeconfig contexts, injects the bearer token, and reverse-proxies to the target cluster. That indirection is what lets one Headlamp instance manage several clusters, keep tokens out of the browser, and avoid CORS entirely. Authorization is left to the cluster: Headlamp proxies the call and the kube-apiserver decides whether it is allowed.

The other defining trait is the plugin system. The frontend loads plugin JavaScript at runtime and hands each plugin a registry through which it can add sidebar entries, routes, and detail-view sections. Vendors use this to ship their own product UI on top of Headlamp rather than forking it. Headlamp sits in the same shelf as Kubernetes Dashboard, Lens, and k9s: a cluster-operations UI rather than a metrics or tracing tool.

When to use it

  • You want a web or desktop UI that manages multiple clusters from one place, with tokens held server-side rather than in the browser.
  • You need to extend the UI for your own platform (custom resources, product-specific views) without forking, and a runtime plugin API fits that.
  • You want an Apache-2.0 tool that runs both in-cluster (served to a browser) and as a local desktop app from the same codebase.
  • Not the right fit if you want a terminal-first, keyboard-driven navigator; k9s covers that ground better.
  • Not an observability platform: it shows cluster state and can surface metrics, but it does not store or query time-series data the way Prometheus or Grafana do.

In this deep-dive

Sources

  1. kubernetes-sigs/headlamp (GitHub) (accessed 2026-07-08)
  2. Headlamp ADOPTERS.md (accessed 2026-07-08)
  3. Headlamp README.md NOTICE (Kubernetes SIG UI move) (accessed 2026-07-08)
  4. Headlamp project page (CNCF) (accessed 2026-07-10)
  5. [Sandbox] Headlamp, cncf/sandbox Issue #25 (accessed 2026-07-10)
  6. Headlamp now in the CNCF Sandbox (Headlamp blog, 2023-10-12) (accessed 2026-07-10)
  7. Microsoft acquires Kinvolk (Azure blog, 2021-04-29) (accessed 2026-07-10)
  8. Headlamp Project to Provide GUI for Kubernetes (Cloud Native Now, KubeCon EU 2025) (accessed 2026-07-10)
  9. Headlamp documentation site (accessed 2026-07-10)
  10. Headlamp plugin functionality docs (accessed 2026-07-10)
  11. GitHub REST API repos/kubernetes-sigs/headlamp (accessed 2026-07-08)
  12. Headlamp: A multicluster management UI for Kubernetes (InfoWorld) (accessed 2026-07-10)