FreeLens Extensions: The Short Answer
FreeLens installs extensions from npm. Open the Extensions page (⌘⇧E on macOS, Ctrl+Shift+E on Linux and Windows), paste the package name — for example @freelensapp/resource-map-extension — and press Install. There is no curated in-app marketplace yet, so the package name is the address: you get it from the extension’s repository or its npm page.
Two things trip up almost everyone arriving from OpenLens. First, @freelensapp/freelens-node-pod-menu is deprecated and now ships as an empty package — installing it does nothing, because that functionality moved into FreeLens itself. Second, OpenLens and Lens extensions are not drop-in compatible; several have been ported, but you install the FreeLens port, not the original.
This catalogue is current as of FreeLens v1.10.3 (July 2026). If you are still deciding which client to standardise on, see FreeLens vs OpenLens vs Lens.
How to Install a FreeLens Extension
- Open FreeLens and go to File → Extensions, or press
⌘⇧E/Ctrl+Shift+E. - Paste the npm package name into the input field — the scoped name in full, including the
@freelensapp/prefix where it applies. - Press Install. FreeLens downloads the package from the npm registry and unpacks it.
- Wait for the extension to appear in the installed list with its Enabled toggle on. Some extensions add a new entry to the left sidebar; others add menu items to existing resource views, so a missing sidebar icon does not mean the install failed.
Extensions are per-user, not per-cluster: once installed, an extension is available for every cluster in your catalogue. If an extension needs CRDs that a given cluster does not have — the Karpenter or FluxCD extensions, for instance — its views simply stay empty on that cluster rather than erroring.
Official FreeLens Extensions
These live under the freelensapp GitHub organisation and are maintained alongside the app itself.
| Extension | npm package | What it gives you |
|---|---|---|
| FluxCD | @freelensapp/fluxcd-extension | Kustomizations, HelmReleases, GitRepositories and sources as first-class views, with reconciliation state. The most adopted extension by a wide margin |
| AI | @freelensapp/ai-extension | An LLM assistant inside the IDE for explaining resources and drafting manifests |
| Gateway API | @freelensapp/gateway-api-extension | Gateways, HTTPRoutes and GatewayClasses — the successor to Ingress |
| Resource Map | @freelensapp/resource-map-extension | Live force-directed graph of resources and their relations. Ported from the OpenLens original |
| Karpenter | @freelensapp/karpenter-extension | NodePools, NodeClaims and provisioning decisions for the node autoscaler |
| Kamaji | @freelensapp/kamaji-extension | Hosted control planes managed by Kamaji |
| Sveltos | @freelensapp/sveltos-extension | Add-on distribution across fleets of clusters |
| Agent Bridge | @freelensapp/agentbridge-extension | Exposes the cluster to an external AI agent (Claude, Copilot, OpenCode) |
| For Claude | @freelensapp/for-claude-extension | Claude-specific integration, still early (0.x) |
@freelensapp/freelens-node-pod-menu | Deprecated — empty package. Do not install it |
If you run Karpenter, the extension pairs naturally with the trade-offs covered in Karpenter vs Cluster Autoscaler — seeing NodeClaims appear and consolidate in real time makes the disruption behaviour much easier to reason about than reading events.
Community Extensions
Maintained by individuals outside the core organisation. They are genuinely useful, but check the version number before you rely on one in a work setting — several are still 0.x.
| Extension | npm package | What it gives you |
|---|---|---|
| Credential Explorer | freelens-credential-explorer | Secret health and ownership: age, expiry, and the Secret → Deployment → Pods → ServiceAccount chain |
| Duplicate | @omarluq/freelens-duplicate-extension | Clones a running pod into a debug copy without editing manifests |
| Argo | @sebastian-prokesch/freelens-argo-extension | Argo CD Applications and Argo Workflows resources |
| Workload Topology | freelens-workload-topology | Topology view focused on workloads rather than the whole resource graph |
| Pod File Browser | freelens-pod-filebrowser | Browses a pod’s filesystem without dropping into kubectl exec |
| JobSet | freelens-jobset-extension | JobSet resources, relevant for batch and ML workloads |
Spotting Expiring Tokens, Certificates and Stale Secrets
This is the single most common thing people go looking for an extension to solve, and stock FreeLens does not do it: the Secrets view shows you that a Secret exists, not whether the thing inside it has expired. A TLS certificate three days from expiry looks exactly like one with a year left.
Credential Explorer (freelens-credential-explorer) is the extension aimed squarely at that gap. It builds a dashboard around the questions you actually ask during an incident: how old is this Secret, when does it expire, which namespace is it in, and what is consuming it — following the chain from Secret through Deployment and Pods to the ServiceAccount. It recognises credentials from Vault, External Secrets, Argo CD, cert-manager and TLS certificates, Helm releases, and plain Opaque secrets.
Two caveats worth knowing before you install it: it declares itself a proof of concept at 0.1.x, and it requires FreeLens v1.9.0 or later. For a cluster where certificate expiry is a genuine production risk, treat it as a fast triage view rather than as your alerting — the durable answer is a cert-manager alert or a Prometheus rule on certmanager_certificate_expiration_timestamp_seconds, which pages you at three in the morning when a desktop IDE cannot.
Why freelens-node-pod-menu Does Nothing Any More
Early FreeLens shipped without the node and pod context menus that OpenLens users expected — shell into a pod, cordon a node, view logs from the right-click menu. The gap was filled by a separate extension, @freelensapp/freelens-node-pod-menu, and just about every migration guide written in 2025 tells you to install it.
That functionality has since been absorbed into FreeLens itself. The package still exists on npm and still installs cleanly, but it is now an empty package that provides nothing. If you followed an older guide and are wondering why the extension appears installed yet contributes no visible feature, this is why — and the menus you were after are already there in the core app. Uninstall it and move on.
Can You Install OpenLens or Lens Extensions?
Not directly. FreeLens forked from OpenLens, so the extension API is closely related and porting is usually mechanical, but the packages are published separately and an original Lens extension is not guaranteed to load. In practice a good number of the popular OpenLens extensions have already been ported — the resource map is the obvious example — and the pattern is to look for a freelens- flavoured package rather than to force the original.
If the extension you depend on has no port, forking and adapting it is a realistic afternoon of work where the licence permits, and the project publishes an example extension as a starting template. That is a meaningful difference from Lens Desktop, where the licensing of the binaries is the constraint rather than the code.
When an Extension Will Not Install
- Nothing happens after pressing Install. Check the package name character for character — the scope matters, and
@freelensapp/resource-map-extensionandfreelens-resource-map-extensionare not the same string. The npm name is authoritative, not the GitHub repository name. - The extension installs but its views are empty. Almost always missing CRDs on that cluster. The FluxCD, Karpenter, Gateway API, Sveltos and Kamaji extensions all render nothing useful against a cluster that does not run the corresponding controller.
- It installed but added no sidebar entry. Not every extension adds one; some only extend existing detail panes and context menus.
- It worked before an upgrade and now does not. Community extensions track FreeLens releases loosely. Pin your FreeLens version if an extension is load-bearing for your workflow, and check the extension’s declared minimum version before upgrading the app.
Frequently Asked Questions
How do I install extensions in FreeLens?
Open the Extensions page with ⌘⇧E on macOS or Ctrl+Shift+E on Linux and Windows, paste the extension’s npm package name (for example @freelensapp/fluxcd-extension) and press Install. FreeLens pulls the package straight from the npm registry — there is no separate marketplace to browse, so the package name is what you need.
Do OpenLens and Lens extensions work in FreeLens?
Not as-is. FreeLens forked from OpenLens so the extension API is close and porting is usually straightforward, but packages are published separately and an original Lens extension is not guaranteed to load. Look for a FreeLens port — many popular OpenLens extensions, including the resource map, already have one.
Why does the freelens-node-pod-menu extension do nothing?
Because it is deprecated and now ships as an empty package. It existed to add back node and pod context menus that early FreeLens lacked; that functionality has since moved into the core app. Older migration guides still recommend installing it — you can safely uninstall it, the menus are already there.
Is there a FreeLens extension that shows when Secrets or certificates expire?
Yes — freelens-credential-explorer. It reports Secret age and expiry and maps the Secret → Deployment → Pods → ServiceAccount chain, recognising credentials from Vault, External Secrets, Argo CD, cert-manager, Helm and plain Opaque secrets. It is a 0.1.x proof of concept and needs FreeLens v1.9.0 or later, so use it for triage rather than as your expiry alerting.
Are FreeLens extensions installed per cluster or per user?
Per user. An installed extension is available across every cluster in your catalogue. If a cluster lacks the CRDs an extension depends on — Flux, Karpenter, Gateway API — its views stay empty on that cluster instead of failing.
Which FreeLens extension is the most widely used?
The FluxCD extension, by a clear margin. It surfaces Kustomizations, HelmReleases, GitRepositories and their reconciliation state as first-class views, which is the single biggest gap in stock FreeLens for teams running GitOps.
Further Reading
- FreeLens vs OpenLens vs Lens — which of the three to standardise on, and what changed after Mirantis restricted the Lens binaries.
- Headlamp vs FreeLens vs Lens — the CNCF option, and when a web-based UI beats a desktop app.
- Kubernetes Dashboard alternatives in 2026 — the wider field, including k9s and Headlamp.
- Radar — a newer entrant built around topology and a persistent event timeline.