Skip to main content
Use global flags to control CLI behavior consistently across commands, especially for telemetry and machine-readable output. Extension.js telemetry is intentionally anonymous and privacy-safe. It sends at most two event types (command_executed and command_failed) with three properties each (command, success, version).

Global flag capabilities

Global options

Optional boolean flags

Flags documented as [boolean] (for example, --polyfill, --zip, --zip-source, --silent, --wait, --install) accept an explicit value, so you can enable or disable them without a separate --no-* flag:
  • A bare flag enables it: extension dev --polyfill
  • false, 0, no, and off disable it: extension dev --polyfill false
  • true, 1, and yes enable it: extension build --zip true
This is useful for overriding a default set in extension.config.* from the command line, or for passing a computed value in a script (extension build --zip "$SHOULD_ZIP").

Telemetry opt-out options

You can disable telemetry in three ways (listed in precedence order):
Set EXTENSION_TELEMETRY_DISABLED=1 in continuous integration (CI) when policy requires no telemetry across all runs.

Practical examples

Disable telemetry for a CI build

Use this when policy requires explicitly disabling telemetry for automation runs.

Generate machine-readable help for tooling

Use this for AI tooling, wrappers, or scripts that parse command help output.

Keep readable help output for local debugging

Use pretty mode when you want assistant-friendly output that still reads well in terminal sessions.

Behavior notes

  • The CLI parses global flags before command-specific options.
  • See repository TELEMETRY.md and Telemetry and privacy for telemetry behavior and privacy details.
  • Use extension telemetry status to check the current consent state.
  • Command pages document command-specific flags separately.
  • You can combine global flags with command-specific options.
  • Automated tools (AI assistants and CI scripts) should read command readiness from dist/extension-js/<browser>/ready.json, not from terminal log parsing.

Next steps