The waterfox browser iconThe opera browser iconThe brave browser icon

Running other browsers from binary path

Run Chromium- and Gecko-family browsers beyond the default named targets by providing explicit binary paths.

Test custom browser binaries (for example Brave, Vivaldi, or Waterfox) from the same Extension.js workflow. Extension.js supports custom browser executables through binary flags and extension.config.* in dev, start, and preview.

How it works

Use one of these flags:

  • --chromium-binary <path>
  • --gecko-binary <path> (alias: --firefox-binary <path>)

These binary flags override named browser selection at runner level.

Binary capabilities

Option / key What it does
--chromium-binary <path> Launches a custom Chromium-family browser binary.
--gecko-binary <path> Launches a custom Gecko-family browser binary.
--firefox-binary <path> Alias of --gecko-binary.
browser.<target>.chromiumBinary Sets default custom Chromium binary in config.
browser.<target>.geckoBinary Sets default custom Gecko binary in config.
commands.<name>.chromiumBinary Sets command-specific custom Chromium binary.
commands.<name>.geckoBinary Sets command-specific custom Gecko binary.

CLI examples

extension dev --browser=chromium-based --chromium-binary="/path/to/brave"
extension dev --browser=firefox --gecko-binary="/path/to/firefox-developer-edition"

You can also use them with start and preview.

Video demo soon: custom browser binary launch

Configure in extension.config.*

export default {
  browser: {
    "chromium-based": {
      chromiumBinary: "/path/to/custom-chromium-browser",
    },
    "gecko-based": {
      geckoBinary: "/path/to/custom-gecko-browser",
    },
  },
};

You can also place binary paths in command blocks:

export default {
  commands: {
    dev: {
      chromiumBinary: "/path/to/custom-chromium-browser",
    },
    preview: {
      geckoBinary: "/path/to/custom-gecko-browser",
    },
  },
};

Video demo soon: config-driven binary defaults

Target mapping behavior

Binary hints map to engine targets:

  • chromiumBinary -> chromium-based
  • geckoBinary / firefoxBinary -> gecko-based

If both are provided, Chromium binary resolution is applied first.

Available browsers

Common browsers you can run with binary flags:

Browser Name Type CLI Flag Official Website
Brave Chromium-Based Browser --chromium-binary brave.com
Opera Chromium-Based Browser --chromium-binary opera.com
Vivaldi Chromium-Based Browser --chromium-binary vivaldi.com
Waterfox Gecko-Based Browser --gecko-binary waterfox.net
Firefox Developer Edition Gecko-Based Browser --gecko-binary firefox.com

Important constraints

  • chromium-based requires a valid chromiumBinary path.
  • gecko-based / firefox-based require a valid geckoBinary path.
  • Invalid paths fail fast with a clear CLI/runtime error.
  • build does not accept binary flags; binary-based launching applies to dev, start, and preview.

Video demo soon: binary path validation flow

Best practices

  • Pair binaries with explicit browser target: Use --browser=chromium-based or --browser=gecko-based for predictable intent.
  • Use absolute paths: Avoid shell-dependent path resolution issues.
  • Version-pin in CI runners: Keep browser binary paths deterministic for automated checks.
  • Combine with profile/flags carefully: Reuse the same profile and flag strategy used for named browser targets.

Next steps