Local by design
Extension.js runs on your machine: develop, run, and build extensions with the CLI. It ends at packaging on purpose. When a packaged build is ready for the stores, extension.dev, the platform that sponsors Extension.js, is the next step.Who this path is for
- New to extension development: Create your first extension
- Exploring quickly with existing samples: Get started immediately
- Choosing a starting stack: Templates
- Comparing frameworks (WXT, etc.): Extension.js vs WXT
Prerequisites
Check your version withnode --version before you start.
First successful outcome
1
Scaffold or run an extension project
Use
extension create or choose a template to start from.2
Launch dev and load the extension
Run
extension dev and load the build output in a browser target.3
Verify update behavior
Make one change and confirm the extension reloads.
4
Build production output
Run
extension build for at least one browser.First run.
extension dev targets chromium by default and runs your
extension in a version-pinned Chrome for Testing with an isolated profile, so
it never touches the browser you use every day. When that browser is not on
the machine yet, the first run asks to download it once and continues into
the dev session as soon as it lands.Answer n and nothing is downloaded. Run npx extension install chromium
whenever you want it, reach a browser you already have with --browser=edge
or --browser=brave, pin any binary with --chromium-binary <path>, or
start the dev server alone with --no-browser. A non-interactive shell, CI
included, is never asked: it prints the install command and stops. See
why Extension.js downloads a browser
and skip the managed download.Recommended reading flow
Next steps
- Learn command choices in Commands reference.
- Configure project defaults in Extension configuration.
- Validate release readiness with Workflows.

