web-ext lint
Reports errors in the extension manifest or other source code files. When strict_min_version is set in your extension’s manifest file, lint reports on the permissions, manifest keys, and web extension APIs used that are not available in that version. See the addons-linter project for more information about the rules used to validate the extension source.
--output, -o
The type of output to generate when reporting on errors. Choices: json or text.
Environment variable: $WEB_EXT_OUTPUT
--pretty
Format the JSON output so that it's easier to read. This only applies when --output is set to json.
Environment variable: $WEB_EXT_PRETTY=true
--self-hosted
Declares that your extension will be self-hosted. This disables messages related to hosting on addons.mozilla.org.
Environment variable: $WEB_EXT_SELF_HOSTED=true
--enterprise
Treats your extension as an enterprise extension when linting (forthcoming linter feature).
This option is new in web-ext 10.5.0.
Environment variable: $WEB_EXT_ENTERPRISE=true
--boring
Disables colorful shell characters so that the output only contains plain text.
Environment variable: $WEB_EXT_BORING=true
--warnings-as-errors, -w
Treat warnings as errors by exiting non-zero for warnings.
Environment variable: $WEB_EXT_WARNINGS_AS_ERRORS=true
web-ext run
Builds and then temporarily installs an extension on the target application so it can be tested. By default, it watches extension source files and reloads the extension in each target as files change.
--adb-bin
The path to the ADB (Android Device Bridge) executable on the machine you are running web-ext from. By default, the adb executable is located on your PATH.
Environment variable: $WEB_EXT_ADB_BIN
--adb-device, --android-device
The ID of your target Android device. If you do not specify this option, web-ext will list the IDs of each device connected. If you don't see a list of connected devices, ensure yours is set up for development.
Example:
web-ext run --target=firefox-android --android-device FA4AX0201736
Environment variable: $WEB_EXT_ADB_DEVICE
--adb-host
The host name to use when connecting to an Android device with ADB (Android Device Bridge). By default, this is discovered automatically.
Environment variable: $WEB_EXT_ADB_HOST
--adb-port
Network port to use when connecting to an Android device with ADB (Android Device Bridge). This will be discovered automatically by default.
Environment variable: $WEB_EXT_ADB_PORT
--adb-remove-old-artifacts
Forces web-ext to remove any old artifacts discovered at startup. Otherwise, web-ext run provides a warning if it finds old artifacts on the adb device.
Normally, when web-ext exits, it removes all the temporary files written to the target adb device. However, this may not happen, for example, when the device is disconnected before web-ext exits.
Environment variable: $WEB_EXT_ADB_REMOVE_OLD_ARTIFACTS
--browser-console, -bc
Open a browser console on startup so you can see log messages for your extension. Example:
web-ext run --browser-console
Environment variable: $WEB_EXT_BROWSER_CONSOLE=true
Note: The browser console may not show all debugging output from content scripts. Use the web console when debugging content scripts.
--firefox, -f
A version of Firefox Desktop to run the extension in. The value is an absolute path to the Firefox executable or an alias string. If not specified, the extension runs in the system's default installation of Firefox.
Here is an example specifying a full path to a Firefox executable on Windows:
--firefox="C:\Program Files\Mozilla Firefox\firefox.exe"
Here is an example specifying an executable path on Mac OS:
--firefox=/Applications/FirefoxNightly.app/Contents/MacOS/firefox-bin
You can also use aliases like this:
--firefox=beta
Here are all available aliases and the executables they map to:
Flatpak users can use this option with the value flatpak:org.mozilla.firefox (where org.mozilla.firefox is the Flatpak application ID for Firefox on Flathub):
web-ext run --firefox=flatpak:org.mozilla.firefox
Environment variable: $WEB_EXT_FIREFOX
--firefox-apk
The APK name for Firefox on your Android device. If more than one Firefox APK is installed, web-ext shows a list of values to choose from. Otherwise, web-ext uses the available APK.
Example:
web-ext run --target=firefox-android --firefox-apk=org.mozilla.firefox
Environment variable: $WEB_EXT_FIREFOX_APK
--firefox-profile, -p
The base Firefox profile to run the extension in as a string containing your profile name or an absolute path to its directory. The profile you specify is copied into a new temporary profile, and the settings required for web-ext to function are added.
If a profile is not specified, it runs the extension using a new temporary profile.
Environment variable: $WEB_EXT_FIREFOX_PROFILE
--profile-create-if-missing
Create the profile directory (specified by the --firefox-profile or --chromium-profile options) if it does not exist.
The --firefox-profile option is treated as a directory path when this option is specified.
Environment variable: $WEB_EXT_PROFILE_CREATE_IF_MISSING
--keep-profile-changes
Save any changes made to the profile directory (specified by --firefox-profile). Without this option, profile changes are not saved.
This option makes the profile specified by --firefox-profile insecure for daily use. It turns off auto-updates and allows silent remote connections, among other things. Specifically, it makes destructive changes to the profile required for web-ext to operate.
Environment variable: $WEB_EXT_KEEP_PROFILE_CHANGES=true
--no-reload
Do not automatically reload the extension in the browser as you edit and save source files.
Environment variable: $WEB_EXT_NO_RELOAD=true
--pre-install
Install the extension into the profile before starting the browser. This is a way to support Firefox versions 49 or earlier, as they don't support remote installation. Specifying this option implies --no-reload.
Environment variable: $WEB_EXT_PRE_INSTALL=true
--pref
Customize any Firefox preference without creating or modifying the profile. Use the equal sign to set values, for example:
--pref general.useragent.locale=fr-FR
Specify this option multiple times to set more than one preference.
Environment variable: $WEB_EXT_PREF
--target, -t
Specify the application to run your extension in. Specify this option multiple times to run the extension in each application concurrently.
Here are the supported targets:
If no target is specified, the extension runs in firefox-desktop.
Environment variable: $WEB_EXT_TARGET
--args, --arg
Additional CLI options passed to the browser binary. Examples:
web-ext run --arg="--search=mozilla" --arg="--new-tab=https://duckduckgo.com"
web-ext run --arg="--remote-debugging-port=9229" --target chromium
--chromium-binary
Path or alias to a Chromium executable such as google-chrome, google-chrome.exe, or opera.exe.
If not specified, the default Google Chrome is used.
--chromium-pref
Launch Chromium with a custom preference. Use the equal sign to set values, for example:
--chromium-pref=browser.theme.follows_system_colors=false
Specify this option multiple times to set additional preferences.
This option is new in web-ext 10.2.0.
Environment variable: $WEB_EXT_CHROMIUM_PREF
--chromium-profile
Path to a custom Chromium profile.
--start-url
Open a tab at the specified URL when the browser starts. Example:
web-ext run --start-url www.mozilla.com
To open several tabs, declare this option multiple times. Example:
web-ext run --start-url www.mozilla.com --start-url developer.mozilla.org
Environment variable: $WEB_EXT_START_URL
--watch-file, --watch-files
A list of files that should be watched for changes. This is useful if you want web-ext to watch for changes to specific files without watching the extension directory tree, e.g., the build output from a module bundler.
web-ext run --watch-file dist/background.js dist/content-script.js
--watch-ignored
A list of paths and globs patterns that should not be watched for changes. Use this to prevent web-ext from watching part of the extension directory tree, e.g., the node_modules folder.
web-ext run --watch-ignored dir1/to/file.js dir2/*.js dir3/**
This option is useful to prevent issues when the number of watched files is higher than the underlying OS feature allows. For example, on Linux Error: ENOSPC: System limit for number of file watchers reached exception is raised if too many files are being watched (See web-ext#2022).
web-ext sign
This command:
- creates a listing for your extension on AMO if
--channel is set to listed and the extension isn't listed.
- adds a version to a listed extension if the
--channel is set to listed and your extension is listed.
- downloads a signed copy of the extension if the
--channel is set to unlisted.
You must create API access credentials to run this command. Obtain your personal access credentials here.
--approval-timeout
Number of milliseconds to wait for approval before giving up. Set to 0 to disable the wait for approval. Defaults to timeout if not set. Defaults to 15 minutes (900000 ms).
Environment variable: $WEB_EXT_APPROVAL_TIMEOUT
--amo-base-url
A string containing the add-on submission API base URL. If not specified, defaults to the production API: https://addons.mozilla.org/api/v5/.
Environment variable: $WEB_EXT_AMO_BASE_URL
--channel
The channel the extension is signed in. This option is required.
The allowed values for channel are:
An example of using the --channel option is to create a beta version for an extension listed on addons.mozilla.org.
Environment variable: $WEB_EXT_CHANNEL
--timeout
Number of milliseconds to wait before giving up on a response from Mozilla's web service. This should always be a number. Defaults to 5 minutes (300000 ms)
Environment variable: $WEB_EXT_TIMEOUT
--upload-source-code
The path to an archive file containing human-readable source code for this submission. See Source code submission for details.
Environment variable: $WEB_EXT_UPLOAD_SOURCE_CODE