Build browser extensions for Chrome, Edge, and Firefox with one modern workflow. Extension.js handles manifest compilation, browser-specific output, reload behavior, and packaging so you can focus on product features.
Use familiar web tooling like TypeScript, React, Vue, and Tailwind CSS. Keep direct access to native extension APIs.
| If you are... | Start here |
|---|---|
| Moving fast with AI tools and templates | Templates and Get started immediately |
| A seasoned web developer new to extensions | Create your first extension and Manifest |
| Shipping production extensions across browsers | Cross-browser compatibility and Workflows overview |
| Goal | Command | Example |
|---|---|---|
| Scaffold a project | create |
npx extension@latest create my-extension --template=new-react |
| Develop with watch mode | dev |
extension dev --browser=firefox |
| Build production artifacts | build |
extension build --browser=chrome,firefox --zip |
| Build and launch production output | start |
extension start --browser=edge |
| Launch existing build output | preview |
extension preview --browser=chrome |
Use the create command to scaffold a new project and --template to start from a stack-specific baseline.
For a list of all supported templates, check out the Templates page.
If you already have an extension, install the extension package and wire scripts once. This keeps local development, testing, and release builds consistent.
extension package as a devDependencyextension commandsThat's it! You're all set.
npm run dev for daily iteration and watch mode.npm run start for production build + immediate launch.npm run build for store-ready production artifacts.create -> dev -> build as your default loop.--browser=chrome,firefox before release.extension.config.js.