Package Exports
- extension
Readme
Extension.js
The cross-browser extension framework
- Create a new extension — How to create a new extension.
- Watch demo — See how creating a new extension works.
- Start from an example — Start from a working baseline.
- I have an extension — Use only specific parts of Extension.js.
Create cross-browser extensions without manual build configuration.
Use Extension.js to develop, build, and preview across browsers with a unified workflow.
Create a new extension
Use the create command to generate a new extension. Also works with pnpm, yarn, and bun.
npx extension@latest create my-extension
cd my-extension
npm run devWatch demo
Web standards and framework support
Get started from a sample
Get started
Start developing an extension using a sample from Chrome Extension Samples
See the example below where we request the sample page-redder from Google Chrome Extension Samples.
Watch demo
Try Yourself
npx extension@latest dev https://github.com/GoogleChrome/chrome-extensions-samples/tree/main/functional-samples/sample.page-redder --browser=edgeI have an extension
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.
See how it works
Step 1 - Install extension as a devDependency
npm install extension@latest --save-devStep 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 buildandnpm run preview.
Using a specific browser for development
| Chrome browser ✅ |
Edge browser ✅ |
Firefox browser ✅ |
Safari browser (soon) |
Chromium-based ✅ |
Gecko-based ✅ |
Browser flags and custom binaries
Use these flags with extension dev, extension start, or extension preview:
- Select a browser:
--browser <chrome | edge | firefox> - Custom Chromium binary:
--chromium-binary <path-to-binary> - Custom Gecko (Firefox) binary:
--gecko-binary <path-to-binary>
Examples:
# Chrome (system default)
npx extension@latest dev --browser=chrome
# Edge
npx extension@latest dev --browser=edge
# Custom Chrome/Chromium path
npx extension@latest dev --chromium-binary "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"
# Custom Firefox path
npx extension@latest dev --gecko-binary "/Applications/Firefox.app/Contents/MacOS/firefox"License
MIT (c) Cezar Augusto and the Extension.js Authors.