The cross-browser extension framework.
- Create A New Extension — How to create a new extension.
- Get Started Immediately — Get work done in no time.
- Start From A Template — Start with your favorite tool.
- I have An Extension — Use only specific parts of Extension.js.
Extension.js makes it very easy to develop cross-browser extensions.
Developers use it due to its fast builds, simple interface, and zero-configuration setup.
npx extension create my-extension
cd my-extension
npm run dev
create-a-new-extension.mp4
For a preview of extensions running these technologies, see the templates website.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
---|---|---|---|---|---|---|---|---|
ESNext latest |
TypeScript latest |
WASM latest |
React 18+ |
Vue 3+ |
Angular 👋 |
Svelte 5+ |
Solid 👋 |
Preact 10+ |
👋 = PR Welcome!
See the example below where we request the sample page-redder from Google Chrome Extension Samples.
npx extension dev https://github.com/GoogleChrome/chrome-extensions-samples/tree/main/functional-samples/sample.page-redder --browser=edge
chrome-extension-sample-page-redder-on-edge.mp4
usage-with-an-existing-extension.mp4
If you have an existing extension which is using a package manager, you can install the Extension.js package and manually create the scripts used to run your extension.
Step 1 - Install extension as a devDependency
npm install extension --save-dev
Step 2 - Link your npm scripts with the executable Extension.js commands
{
"scripts": {
"build": "extension build",
"dev": "extension dev",
"preview": "extension preview"
},
"devDependencies": {
// ...other dependencies
"extension": "latest"
}
}
Done. You are all set!
- To develop the extension, run
npm run dev
. - To build the extension in production mode, run
npm run build
. - To visualize the extension in production mode, run
npm run build
andnpm run preview
.
Chrome ✅ |
Chromium ☑️ |
Edge ✅ |
Firefox ✅ |
Opera ☑️ |
Safari ⛔️ |
The browsers listed above represent those with official extension stores. Note that Chromium-based browsers (like Arc, Brave, Vivaldi, and many others) are theoretically supported through the Chrome/Chromium compatibility layer.
Firefox (Android) ⛔️ |
Safari (iOS) ⛔️ |
MIT (c) Cezar Augusto and the Extension.js authors.