# What changed in web-ext

> 47 changes in web-ext 5 to 10 from its official release notes, upgrade guides and advisories: 8 breaking, 1 deprecations, 11 new APIs and options. Each one cited. Sources checked 2026-11-15. HTML: https://unstale.sh/npm/web-ext/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## web-ext 10

### Breaking changes

- The default export is renamed to `webExt`. (10.6.0) — [release notes](https://github.com/mozilla/web-ext/releases/tag/10.6.0)
- Node 22 is now used by default. (10.0.0) — [release notes](https://github.com/mozilla/web-ext/releases/tag/10.0.0)

### New APIs and options

- Adds the --enterprise flag to the lint command. (10.5.0) — [release notes](https://github.com/mozilla/web-ext/releases/tag/10.5.0)
- Added --chromium-pref to the CLI options. (10.2.0) — [release notes](https://github.com/mozilla/web-ext/releases/tag/10.2.0)
- Added this preference to the default Firefox prefs. (10.2.0) — [release notes](https://github.com/mozilla/web-ext/releases/tag/10.2.0)

### Behavior and default changes

- Logs the response data when a PATCH request fails. (10.5.0) — [release notes](https://github.com/mozilla/web-ext/releases/tag/10.5.0)
- Updated Firefox default prefs so web-ext run enables content scripts visibility in the devtools debugger panel by default. (10.2.0) — [release notes](https://github.com/mozilla/web-ext/releases/tag/10.2.0)

### Tooling

- Adds support for Firefox 158 schema data when linting extensions. (10.8.0) — [release notes](https://github.com/mozilla/web-ext/releases/tag/10.8.0)
- Supports Firefox schemas through Fx157, allowing linting against newer Firefox schemas. (10.7.0) — [release notes](https://github.com/mozilla/web-ext/releases/tag/10.7.0)
- The lint command adds support for the Firefox 154.0b4 schema. (10.6.0) — [release notes](https://github.com/mozilla/web-ext/releases/tag/10.6.0)
- Adds a new Firefox schema for web-ext lint. (10.5.0) — [release notes](https://github.com/mozilla/web-ext/releases/tag/10.5.0)
- web-ext lint now supports Firefox 149 schemas. (10.0.0) — [release notes](https://github.com/mozilla/web-ext/releases/tag/10.0.0)

### Fixes and other changes

- Fixes the default amoBaseUrl value when signing from the Node API. (10.8.0) — [release notes](https://github.com/mozilla/web-ext/releases/tag/10.8.0)
- Fixes silent reload failures on Chrome 125 and earlier. (10.8.0) — [release notes](https://github.com/mozilla/web-ext/releases/tag/10.8.0)
- Fixes files not being ignored when sourceDir contains glob characters. (10.8.0) — [release notes](https://github.com/mozilla/web-ext/releases/tag/10.8.0)
- Avoids auto-reloading for a recently created source directory. (10.7.0) — [release notes](https://github.com/mozilla/web-ext/releases/tag/10.7.0)
- Loads config files when their paths contain URL characters. (10.7.0) — [release notes](https://github.com/mozilla/web-ext/releases/tag/10.7.0)

## web-ext 9

### Breaking changes

- web-ext no longer accepts .js config files; rename the config file to .cjs or .mjs and export the config accordingly. (9.0.0) — [release notes](https://github.com/mozilla/web-ext/releases/tag/9.0.0)

### Deprecations

- This is likely the last release officially supporting Node 20, which developers should consider when planning upgrades. (9.4.0) — [release notes](https://github.com/mozilla/web-ext/releases/tag/9.4.0)

### Tooling

- web-ext lint now supports Firefox 148 schemas, allowing developers to lint against that version. (9.3.0) — [release notes](https://github.com/mozilla/web-ext/releases/tag/9.3.0)
- web-ext lint now supports Firefox 145 and 146 schemas. (9.2.0) — [release notes](https://github.com/mozilla/web-ext/releases/tag/9.2.0)
- web-ext lint now warns when the add-on ID is missing from the manifest file. (9.1.0) — [release notes](https://github.com/mozilla/web-ext/releases/tag/9.1.0)

### Fixes and other changes

- Launched Chromium now ensures navigator.webdriver is not true. (9.2.0) — [release notes](https://github.com/mozilla/web-ext/releases/tag/9.2.0)

## web-ext 8

### Breaking changes

- The command was heavily refactored and is not backward compatible with v7. (8.0.0) — [release notes](https://github.com/mozilla/web-ext/releases/tag/8.0.0)

### New APIs and options

- The command can now create new add-ons from the command line, not just versions. (8.0.0) — [release notes](https://github.com/mozilla/web-ext/releases/tag/8.0.0)

## web-ext 7

### Breaking changes

- Support for NodeJS 12 was dropped. (7.0.0) — [release notes](https://github.com/mozilla/web-ext/releases/tag/7.0.0)

### New APIs and options

- This new web-ext lint flag enables privileged extensions linting mode. (7.0.0) — [release notes](https://github.com/mozilla/web-ext/releases/tag/7.0.0)
- This keyword is now allowed in the custom extension CSP. (7.0.0) — [release notes](https://github.com/mozilla/web-ext/releases/tag/7.0.0)

### Tooling

- Linting now detects and reports privileged permissions and properties based on the extension manifest.json file. (7.0.0) — [release notes](https://github.com/mozilla/web-ext/releases/tag/7.0.0)

## web-ext 6

### Breaking changes

- The filename option moved into the build options, so config files setting it need to be updated. (6.0.0) — [release notes](https://github.com/mozilla/web-ext/releases/tag/6.0.0)
- Support for Node.js 10 was dropped. (6.0.0) — [release notes](https://github.com/mozilla/web-ext/releases/tag/6.0.0)

### New APIs and options

- Some adb utility methods are now exported for use in third-party Node.js scripts that include web-ext as a library. (6.0.0) — [release notes](https://github.com/mozilla/web-ext/releases/tag/6.0.0)
- The --watch-files option was added as an additional alias for --watch-file. (6.0.0) — [release notes](https://github.com/mozilla/web-ext/releases/tag/6.0.0)

### Behavior and default changes

- The --watch-file option can now watch more than one file. (6.0.0) — [release notes](https://github.com/mozilla/web-ext/releases/tag/6.0.0)

### Tooling

- The browser compatibility data used by linting was updated. (6.0.0) — [release notes](https://github.com/mozilla/web-ext/releases/tag/6.0.0)
- The linter imported Firefox 85.0b5, 86.0b5, and 87.0b6 API schema. (6.0.0) — [release notes](https://github.com/mozilla/web-ext/releases/tag/6.0.0)
- Linting now supports Numeric Separators. (6.0.0) — [release notes](https://github.com/mozilla/web-ext/releases/tag/6.0.0)

## web-ext 5

### Breaking changes

- web-ext run uses a copy of the specified profile directory instead of modifying it, unless --keep-profile-changes is passed. (5.0.0) — [release notes](https://github.com/mozilla/web-ext/releases/tag/5.0.0)

### New APIs and options

- When running Firefox Android, this option removes old artifact directories from the target adb device automatically. (5.0.0) — [release notes](https://github.com/mozilla/web-ext/releases/tag/5.0.0)
- Pass this option to keep profile changes when running with an existing profile directory. (5.0.0) — [release notes](https://github.com/mozilla/web-ext/releases/tag/5.0.0)
- The package now provides explicit ESM exports in package.json. (5.0.0) — [release notes](https://github.com/mozilla/web-ext/releases/tag/5.0.0)

### Behavior and default changes

- web-ext run detects and warns when old artifact directories remain on the target adb device. (5.0.0) — [release notes](https://github.com/mozilla/web-ext/releases/tag/5.0.0)

### Tooling

- Linting uses the imported Firefox 79 APIs Schema. (5.0.0) — [release notes](https://github.com/mozilla/web-ext/releases/tag/5.0.0)
- Linting supports optional chaining, BigInt, and dynamic imports. (5.0.0) — [release notes](https://github.com/mozilla/web-ext/releases/tag/5.0.0)

### Fixes and other changes

- Selection of non-Default Chrome profiles is fixed. (5.0.0) — [release notes](https://github.com/mozilla/web-ext/releases/tag/5.0.0)
- web-ext looks for the extension ID in manifest.json browser_specific_settings, falling back to applications when browser_specific_settings is absent or lacks gecko. (5.0.0) — [release notes](https://github.com/mozilla/web-ext/releases/tag/5.0.0)
- The firefoxdeveloperedition alias now resolves correctly on macOS. (5.0.0) — [release notes](https://github.com/mozilla/web-ext/releases/tag/5.0.0)
