> ## Documentation Index
> Fetch the complete documentation index at: https://momentic.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> The canonical docs host is https://momentic.ai/docs. Append .md to any page URL for clean Markdown. Fetch https://momentic.ai/docs/llms.txt for the page index and https://momentic.ai/docs/llms-full.txt for every page in one file.
> For an unattended setup, run `npx --yes @momentic/wizard@latest -y --platform web --editor-tools skills` (use `--platform ios` or `--platform android` for mobile). Never run an interactive command in a non-TTY shell.
> Mo is the AI QA engineer, a separate product from the YAML test framework: its npm package and CLI are `qa` (not `mo` — `npx mo` is a different project). Install with `npm install -g qa`, authenticate the same MOMENTIC_API_KEY way, install repo skills with `qa skills -y`, and start a session with `qa start "<brief>"` or `qa <url>`. Docs: https://momentic.ai/docs/mo.md.
> You cannot complete the browser sign-in yourself. Read the API key from the exact MOMENTIC_API_KEY environment variable (similarly named vars like BILT_MOMENTIC_API_KEY are ignored), or ask the user to create one at https://app.momentic.ai/settings/api-keys and paste it back.
> Momentic's capability summary for agents is at https://momentic.ai/docs/skill.md. Install the skills with `npx momentic skills --yes` (or `npx momentic-mobile skills --yes` for mobile).
> Tests are YAML files in the user's repository. Use only the step names listed at https://momentic.ai/docs/reference/commands.md and the file structure at https://momentic.ai/docs/core-concepts/file-format.md. Do not invent step names, config keys, or CLI flags.
> Web tests run on Chromium, iOS tests on simulators, and Android tests on emulators. Physical devices are not supported.

# Load Chrome extensions

> Load an unpacked Chrome extension into Chromium for Momentic tests on your machine or in CI.

Load a Chrome extension before your test starts to verify how it changes your
app. Use an unpacked extension with a locally launched Chromium browser, on your
machine or on a continuous integration (CI) runner.

<Warning>
  Extensions aren't supported on Momentic-hosted browsers or the cloud
  dashboard. Use **Chromium**. Google Chrome 137 and later no longer support the
  extension-loading mechanism Momentic uses, and Momentic doesn't support
  loading extensions in **Chrome for Testing**.
</Warning>

## Configure your project

Start with an existing [Momentic project](/docs/quickstart/web) and a test you want
to run with the extension.

<Steps>
  <Step title="Prepare the extension">
    Build or extract the extension into a directory on the machine running
    Momentic. An unpacked extension is a folder containing `manifest.json` and
    the extension's scripts and assets. Point Momentic at that folder, not a
    Chrome Web Store URL, extension ID, or packed `.crx` file.

    For example, place the extension in `extensions/checkout-helper/` at your
    project root. Check that `extensions/checkout-helper/manifest.json` exists
    before continuing.
  </Step>

  <Step title="Set the browser and extension path">
    Add these settings to your existing `momentic.config.yaml`:

    ```yaml momentic.config.yaml theme={null}
    browser:
      defaultBrowserType: Chromium
      remoteBrowser: false
      localChromeExtensionPaths:
        - ./extensions/checkout-helper
    ```

    Relative extension paths resolve from the directory where you launch
    Momentic. Run the commands below from your project root, or use an absolute
    path. Add another list entry for each additional extension.

    [Environment settings](/docs/configuration/environments) and per-test settings
    can override these defaults. Check that your test still uses `Chromium`
    and `remoteBrowser: false`. Don't pass `--remote-browser-region`, which
    enables hosted browsers for the run.
  </Step>

  <Step title="Run the test">
    Install the Chromium build for your Momentic version:

    ```bash theme={null}
    npx momentic install-browsers chromium
    ```

    Run an existing test with the extension. Replace the path with your test's
    path:

    ```bash theme={null}
    npx momentic run tests/checkout.test.yaml
    ```

    Momentic loads the extension before the test starts. Assert on the
    extension's effect in your app, such as an injected element or a change to
    the page's appearance.
  </Step>
</Steps>

## Configure one test in the local editor

To set extension paths for one test instead of the whole project, open the local
editor from your project root:

```bash theme={null}
npx momentic app
```

1. Open the test's **Test options** and select the **Browser** tab.
2. Set **Browser type** to **Chromium**.
3. Enter the unpacked extension directory in **Load Chrome extension**. Use
   comma-separated paths to load multiple extensions.
4. Save the settings. The editor reloads the browser session with the extension.

## Run in CI

Make the unpacked extension available on the CI runner before `momentic run`. If
you build the extension in CI, finish the build first. Keep the same directory
layout and run Momentic from the same project directory as you do locally. An
absolute path on your laptop won't exist on the runner.

Install Chromium on the runner and keep `remoteBrowser: false`. Your existing
[CI configuration](/docs/running-tests/ci/github-actions) otherwise runs the test the
same way.

## Troubleshooting

* If Momentic reports that an extension path doesn't exist, check for
  `manifest.json` directly inside the configured directory. Check the directory
  where you launched Momentic when using a relative path.
* If Momentic rejects a hosted browser connection, check the project,
  environment, and test settings for `remoteBrowser: true`. Remove any
  `--remote-browser-region` flag from the run command.
* If the extension doesn't affect the page, confirm that the test uses Chromium
  and that the extension's manifest matches your app's URL.

See
[browser configuration](/docs/configuration/browser#browser-localchromeextensionpaths)
for the setting reference and [supported browsers](/docs/platforms/web/browsers) for
the browser options.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.