Documentation Index
Fetch the complete documentation index at: https://extension.js.org/llms.txt
Use this file to discover all available pages before exploring further.

CLI version: Run
extension --version (or npx extension@latest --version) for the build you are using. The extension package on
npm lists the latest publish.
GitHub releases track
changelog-style notes without tying these docs to a specific patch number.Video walkthrough
Choose your path
| If you are⦠| Start here |
|---|---|
| New to browser extensions altogether | What is a browser extension? and Create your first extension |
| 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 |
| Debugging Manifest V3 service workers | Manifest V3 troubleshooting and Background scripts |
| Shipping production extensions across browsers | Cross-browser compatibility and Workflows overview |
Choose the right command
| 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 |
Start a new extension
create command to scaffold a new project and --template to start from a stack-specific baseline.
Use Extension.js with an existing extension
extension package and wire scripts once. This keeps local development, testing, and release builds consistent.
Step 1: install the extension package as a devDependency
Step 2: link your npm scripts to the extension commands
package.json
- Run
npm run devfor daily iteration and watch mode. - Run
npm run startfor production build + immediate launch. - Run
npm run buildfor store-ready production artifacts.
Best practices
- Keep one command flow: Use
createβdevβbuildas your default loop. - Target browsers explicitly: Validate with
--browser=chrome,firefoxbefore release. - Centralize defaults: Put shared command/browser settings in
extension.config.js.
Next steps
Create your first extension
Guided walkthrough for your first build.
Templates
Browse starter templates for every stack.
Playwright E2E
Add quality gates to your workflow.
Telemetry and privacy
Review the privacy contract.

