# Install web-ext with Homebrew, MacPorts, Nix

Command-line tool to help build, run, and test web extensions. Version 10.4.0 via Homebrew; verified 2026-06-13.

## Install

```sh
sudo av install brew:web-ext
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install web-ext
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install web-ext
```

  Evidence: MacPorts ports tree: devel/web-ext/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1

### Linux

- Nix (92%):

```sh
nix profile install nixpkgs#web-ext
```

  Evidence: nixpkgs package indexes: pkgs/by-name/we/web-ext/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1

## Package facts

- **Package key:** brew:web-ext
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/web-ext>
- **Version:** 10.4.0
- **Source summary:** Command-line tool to help build, run, and test web extensions
- **Homepage:** <https://github.com/mozilla/web-ext>
- **Repository:** <https://github.com/mozilla/web-ext>
- **Upstream docs:** <https://extensionworkshop.com/documentation/develop/getting-started-with-web-ext>
- **License:** MPL-2.0
- **Source archive:** <https://registry.npmjs.org/web-ext/-/web-ext-10.4.0.tgz>
- **Last updated:** 2026-06-13T16:05:11Z
- **Generated:** 2026-07-08T18:08:21+00:00

## Executables

- web-ext (cli)
- web-ext (alias)

## Dependencies

- node
- terminal-notifier

## Install behavior

- Post-install hook: not defined
- Bottle: available on all

## Freshness

- Page generated: 2026-07-08
- Package-manager version: 10.4.0
- Package-manager updated: 2026-06-13
- Local data: ok
- Upstream repository: https://github.com/mozilla/web-ext
- info: No cached GitHub release or tag data was available.
## Project history and usage

web-ext is Mozilla's command-line tool for building, running, testing, packaging, and signing browser extensions. It grew out of Firefox's WebExtensions transition, giving add-on developers a repeatable CLI workflow around temporary installs, automatic reloads, linting, build artifacts, and submission to addons.mozilla.org.

### Project history

Mozilla created the public web-ext repository and npm package in February 2016, while WebExtensions support was still stabilizing in Firefox. Mozilla's April 2016 add-ons blog described WebExtensions in Firefox 48 and pointed to web-ext as the command-line tool that would automate reloads during add-on development.

The 1.0.0 npm release landed in April 2016. By July 2016, Mozilla was already describing web-ext 1.0 as announced and following up with automatic extension reloading and source linting, two features that became central to the tool's everyday value.

The tool continued as part of Firefox Extension Workshop documentation rather than as an abandoned migration helper. By 2026, npm showed a long release history through the 10.x series, while the official command reference documented the current major-version command set.

### Adoption history

web-ext became the standard Mozilla-supported CLI for WebExtension developers because it matches the repetitive tasks of extension work: run the extension in a temporary Firefox profile, watch files, reload after edits, package the source as a zip, and sign or submit builds for addons.mozilla.org.

The broader adoption story is tied to Firefox's move away from legacy extension systems toward the cross-browser WebExtensions model. Even when an extension targets multiple browsers, web-ext remains useful for Firefox-specific testing, AMO signing, Android extension testing, and making Firefox profile state disposable during development.

### How it is used

The common development loop is to change into an extension source directory and run `web-ext run`, which starts Firefox with the extension temporarily loaded and reloads it after source changes. When the extension is ready, `web-ext build` creates a package and `web-ext sign` can use addons.mozilla.org API credentials to produce or submit signed artifacts.

The tool also supports configuration files and package.json configuration, so teams can put source directories, ignore patterns, signing settings, and other options under version control or local developer configuration. This makes it a small but important bridge between browser-extension code and ordinary command-line build automation.

### Why package nerds care

web-ext matters in package-manager culture because it turns a browser UI workflow into a scriptable developer tool. Installing it with npm, Homebrew, MacPorts, or Nix lets extension developers use the same shell habits they use for compilers, linters, and bundlers, while still targeting Firefox's extension runtime and AMO publishing requirements.

### Timeline

- 2016-02: Mozilla created the public web-ext repository and first npm package.
- 2016-04: web-ext 1.0.0 was published as Firefox 48-era WebExtensions support stabilized.
- 2016-07: Mozilla documented follow-up work adding automatic reload and linting to the young tool.
- 2024: The npm release stream reached web-ext 8.x, matching a separately documented v8 command reference.
- 2026: npm listed web-ext 10.4.0 as the current package version.

### Related projects

- web-ext sits beside Mozilla's addons-linter, addons.mozilla.org signing APIs, MDN WebExtensions documentation, and browser-specific extension debugging pages such as about:debugging. It is also adjacent to cross-browser extension frameworks that eventually call into browser-specific build or signing steps.

### Sources

- <https://api.github.com/repos/mozilla/web-ext>
- <https://blog.mozilla.org/addons/2016/04/29/webextensions-in-firefox-48/>
- <https://blog.mozilla.org/addons/2016/07/27/linting-and-automatically-reloading-webextensions/>
- <https://extensionworkshop.com/documentation/develop/getting-started-with-web-ext/>
- <https://github.com/mozilla/web-ext>
- <https://www.npmjs.com/package/web-ext>


## Security Notes

narrow executable package without higher-risk signals.

- **Geiger risk:** green / low
- narrow executable package without higher-risk signals


## Configuration and credential file locations

These source-backed paths show where this package keeps local settings or durable credentials. Automic Vault can use them as review targets for secret scanning, migration, and command approval.


## Configuration files

- Linux: ~/.web-ext-config.mjs, ./web-ext-config.mjs, ./.web-ext-config.cjs, ./package.json
- macOS: ~/.web-ext-config.mjs, ./web-ext-config.mjs, ./.web-ext-config.cjs, ./package.json
- Windows: C:\Users\<username>\.web-ext-config.mjs, .\web-ext-config.mjs, .\.web-ext-config.cjs, .\package.json

## Credential files

- Linux: ~/.web-ext-config.mjs, ./web-ext-config.mjs, ./.web-ext-config.cjs, ./package.json
- macOS: ~/.web-ext-config.mjs, ./web-ext-config.mjs, ./.web-ext-config.cjs, ./package.json
- Windows: C:\Users\<username>\.web-ext-config.mjs, .\web-ext-config.mjs, .\.web-ext-config.cjs, .\package.json
## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** web-ext
- **Version Scheme:** 0
- **Revision:** 0
- **Bottle Stable Root URL:** <https://ghcr.io/v2/homebrew/core>
- **Deprecated:** no
- **Disabled:** no
- **Keg Only:** no
- **URL Keys:** stable

## Other Package-Manager Records

- Nix - web-ext: normalized package name match | nixpkgs package indexes: pkgs/by-name/we/web-ext/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- MacPorts - web-ext: normalized package name match | MacPorts ports tree: devel/web-ext/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1


## Related links

- [Source-control packages](https://www.automicvault.com/pkg/source-control-tools/) - Belongs to a source-control command family.
- [Terminal utility packages](https://www.automicvault.com/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Text processing packages](https://www.automicvault.com/pkg/text-processing-tools/) - Matched text, document, or structured-data processing metadata.
- [Developer build packages](https://www.automicvault.com/pkg/developer-build-tools/) - Matched build, compiler, generator, or developer workflow metadata.
- [node](https://www.automicvault.com/pkg/brew/node/) - Runtime dependency declared by Homebrew.
- [terminal-notifier](https://www.automicvault.com/pkg/brew/terminal-notifier/) - Runtime dependency declared by Homebrew.
- [addons-linter](https://www.automicvault.com/pkg/brew/addons-linter/) - Shares av.db curated category or tags: cli, developer-tools, firefox, web-development, webextensions.
- [angular-cli](https://www.automicvault.com/pkg/brew/angular-cli/) - Shares av.db curated category or tags: cli, developer-tools, web-development.
- [commandbox](https://www.automicvault.com/pkg/brew/commandbox/) - Shares av.db curated category or tags: cli, developer-tools, web-development.
- [css-crush](https://www.automicvault.com/pkg/brew/css-crush/) - Shares av.db curated category or tags: cli, developer-tools, web-development.
- [gatsby-cli](https://www.automicvault.com/pkg/brew/gatsby-cli/) - Shares av.db curated category or tags: cli, developer-tools, web-development.
- [geckodriver](https://www.automicvault.com/pkg/brew/geckodriver/) - Shares av.db curated category or tags: cli, developer-tools, firefox, testing.
- [gwt](https://www.automicvault.com/pkg/brew/gwt/) - Shares av.db curated category or tags: cli, developer-tools, web-development.
- [js-beautify](https://www.automicvault.com/pkg/brew/js-beautify/) - Shares av.db curated category or tags: cli, developer-tools, web-development.
- [web-ext](https://www.automicvault.com/pkg/npm/web-ext/) - Same normalized package name appears in another local ecosystem. Shared terms: browser, browser-extensions, build, cli, developer.
- [nuxi](https://www.automicvault.com/pkg/brew/nuxi/) - Both packages touch the same language runtime or ecosystem. Shared terms: cli, developer, developer-tools, development, node.
- [web-ext](https://www.automicvault.com/pkg/npm/web-ext/) - Same normalized package name in another local ecosystem.

## Combined YAML source

View the package source record on GitHub. [combined/web-ext.yml](https://github.com/automic-vault/db/blob/main/combined/web-ext.yml)


## Sources

- Nucleus package database
- Geiger risk classifier
- package-page enrichment
- curated configuration and credential file locations
- curated package history
- package version freshness
- av.db category and tag curation
- package relationship graph
- external package-manager database matches
- cross-ecosystem install command graph
