Run one extension codebase across Chrome, Edge, Firefox, and custom binaries with explicit browser targeting workflows.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.
Chrome extension development
For Chrome extension development, targetchrome (or chromium for the default Chromium binary): extension dev --browser=chrome. Extension.js loads the extension into a fresh, isolated profile and applies a sane set of Chrome launch flags so reload behavior is predictable.
Firefox extension development
For Firefox extension development, targetfirefox: extension dev --browser=firefox. Manifest V3 background scripts compile to a non-persistent scripts array (Firefox does not use service_worker), and Firefox preferences replace the Chromium concept of chrome://flags. See Browser preferences.
Edge extension development
For Edge extension development, targetedge: extension dev --browser=edge. Edge shares the Chromium engine, so most flags and APIs match Chrome, but Extension.js still emits a separate dist/edge artifact for distribution.
Cross-browser extension development
For cross-browser extension development, run multiple targets in one command (extension dev --browser=chrome,firefox) and keep browser differences in browser-prefixed manifest fields. One project, one manifest.json, distinct outputs per browser. See Cross-browser compatibility for the full pipeline.
What to read first
| Need | Read this |
|---|---|
| Choose browser targets quickly | Browsers available |
| Customize launch behavior | Browser flags |
| Configure Firefox preferences | Browser preferences |
| Control profile isolation | Browser profile |
| Run Brave or custom binaries | Running other browsers |
Practical target strategy
- Use named targets (
chrome,edge,firefox) for daily checks. - Use comma-separated targets for release validation.
- Use engine targets only when you need custom binaries.
- Keep browser differences in browser-prefixed manifest fields.
Next steps
- Learn manifest filtering in Cross-browser compatibility.
- Configure browser-specific keys in Browser-specific manifest fields.

