Skip to content

freelensapp/freelens-example-extension

Repository files navigation

@freelensapp/example-extension

Home GitHub DeepWiki Release Integration tests npm

This repository serves as an example how to build and publish extensions for Freelens application.

Visit wiki page about creating extensions for more informations.

Requirements

  • Kubernetes >= 1.24
  • Freelens >= 1.5.2

API supported

  • example.freelens.app/v1alpha1

To install Custom Resource Definition for this example run:

kubectl apply -f examples/crds/customresourcedefinition.yaml

Examples provide a resource for test:

kubectl apply -f examples/test/example.yaml

Install

To install open Freelens and go to Extensions (ctrl+shift+E or cmd+shift+E), and install @freelensapp/example-extension.

or:

Use a following URL in the browser: freelens://app/extensions/install/%40freelensapp%2Fexample-extension

Build from the source

You can build the extension using this repository.

Prerequisites

Use NVM or mise-en-place or windows-nvm to install the required Node.js version.

From the root of this repository:

nvm install
# or
mise install
# or
winget install CoreyButler.NVMforWindows
nvm install 22.16.0
nvm use 22.16.0

Install Pnpm:

corepack install
# or
curl -fsSL https://get.pnpm.io/install.sh | sh -
# or
winget install pnpm.pnpm

Build extension

pnpm i
pnpm build
pnpm pack

One script to build then pack the extension to test:

pnpm pack:dev

Install built extension

The tarball for the extension will be placed in the current directory. In Freelens, navigate to the Extensions list and provide the path to the tarball to be loaded, or drag and drop the extension tarball into the Freelens window. After loading for a moment, the extension should appear in the list of enabled extensions.

Check code statically

pnpm lint:check

or

pnpm trunk:check

and

pnpm build
pnpm knip:check

Testing the extension with unpublished Freelens

In Freelens working repository:

rm -f *.tgz
pnpm i
pnpm build
pnpm pack -r

then for extension:

echo "overrides:" >> pnpm-workspace.yaml
for i in ../freelens/*.tgz; do
  name=$(tar zxOf $i package/package.json | jq -r .name)
  echo "  \"$name\": $i" >> pnpm-workspace.yaml
done

pnpm clean:node_modules
pnpm build

License

Copyright (c) 2025 Freelens Authors.

MIT License

About

Example of a Freelens extension

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 5