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

# Browser extension

> Monitor and protect supported AI web chats with the Runlayer Chrome extension

The Runlayer browser extension brings AI Watch prompt monitoring, scanner decisions, and Sessions telemetry to supported AI web chats in Google Chrome. It reports as the **Browser extension** client while Runlayer resolves the provider from the page URL.

<Note>
  Managed force installation is currently available for Chrome on macOS through
  Jamf Pro, Intune for macOS, Iru/Kandji, SimpleMDM, Mosyle, and the generic
  macOS MDM flow. The browser extension is not installed by the Windows or
  Linux AI Watch packages.
</Note>

## What it does

For a supported web chat, the extension can:

* capture submitted prompts and assistant responses
* record web conversations in [Sessions](/platform-sessions)
* send prompt input through your configured security scanners
* mask sensitive prompt input before it reaches the provider
* block a denied prompt before it reaches the provider

Assistant responses are captured after they render. Response scanner outcomes are therefore audit-only: the extension cannot remove or rewrite content that the provider has already displayed.

## Deploy the extension

<Steps>
  <Step title="Create a macOS deployment">
    Open **Settings → MDM configuration** and create a new deployment for a
    supported macOS MDM.
  </Step>

  <Step title="Enable the browser extension">
    Turn on **Install browser extension**. Runlayer adds the stable extension ID
    and Runlayer-hosted update manifest to the generated managed configuration.
  </Step>

  <Step title="Deploy the generated artifacts">
    Follow the guide for your MDM. The AI Watch package installs Chrome's
    force-install policy and mirrors the tenant host, organization API key,
    browser mode, and browser Sessions setting into Chrome managed storage.
  </Step>

  <Step title="Enable browser hook processing">
    In **Settings → Agent session monitoring**, enable **Full session scanning
    APIs** and the **Browser extension** Hook client. Both are required for
    browser monitoring and prompt scanner decisions, including Mask and Block.
    The deployment's **Collect browser session data** setting separately
    controls whether conversations are recorded in Sessions.
  </Step>
</Steps>

Browser extension installation is selected when a deployment is created. If an existing deployment was created without it, create and deploy a new configuration with **Install browser extension** enabled.

Managed configuration is read-only inside the extension. Users cannot override the tenant host, organization API key, mode, or Sessions setting from the extension options page.

## Configure browser mode and Sessions

Open **Settings → AI Watch** (`/settings/ai-watch`). Under **Configurations**, select **Manage settings** for the deployment, then choose the **Browser extension** tab.

By default, the browser extension inherits the deployment's AI Watch mode and Sessions setting. Turn on **Use independent protection mode** only when browser traffic needs a different mode or Sessions setting from local AI clients.

| Browser mode | Prompt behavior                                                            | Sessions behavior                                            |
| ------------ | -------------------------------------------------------------------------- | ------------------------------------------------------------ |
| **Monitor**  | Report supported prompts without changing or blocking the provider request | Controlled independently by **Collect browser session data** |
| **Protect**  | Apply configured prompt-input scanner actions, including Mask and Block    | Controlled independently by **Collect browser session data** |
| **Enforce**  | Uses the same browser prompt-input scanner path as Protect                 | Controlled independently by **Collect browser session data** |

Protect and Enforce are distinct endpoint modes for local client hooks, but they intentionally share the same scanner-driven prompt behavior in the browser. Endpoint MCP-source allowlists, denylists, and local file/shell policy do not apply to web-chat page requests.

Turning off **Collect browser session data** suppresses browser lifecycle and transcript events. Prompt scanner checks remain active in Protect and Enforce as long as **Full session scanning APIs** and the **Browser extension** Hook client remain enabled.

## Supported web pages

Status labels:

* **✅ Supported** — validated prompt, response, and Sessions behavior for the current release
* **Monitor only** — capture is supported, but the page has no safe pre-send rewrite and cannot Mask or Block
* **—** — intentionally unsupported for that page

### Prompt protection and Sessions

These pages have a precise provider adapter and support prompt-input Mask and Block before provider send.

| Provider          | Pages                            | Prompt | Response | Mask / Block | Sessions |
| ----------------- | -------------------------------- | :----: | :------: | :----------: | :------: |
| Claude            | `claude.ai`                      |    ✅   |     ✅    |       ✅      |     ✅    |
| ChatGPT           | `chatgpt.com`, `chat.openai.com` |    ✅   |     ✅    |       ✅      |     ✅    |
| Microsoft Copilot | `copilot.microsoft.com`          |    ✅   |     ✅    |       ✅      |     ✅    |
| v0                | `v0.app`, `v0.dev`               |    ✅   |     ✅    |       ✅      |     ✅    |
| DeepSeek          | `chat.deepseek.com`              |    ✅   |     ✅    |       ✅      |     ✅    |
| Lovable           | `lovable.dev`                    |    ✅   |     ✅    |       ✅      |     ✅    |
| Grok              | `grok.com`                       |    ✅   |     ✅    |       ✅      |     ✅    |
| Bolt              | `bolt.new`                       |    ✅   |     ✅    |       ✅      |     ✅    |
| Perplexity        | `perplexity.ai`                  |    ✅   |     ✅    |       ✅      |     ✅    |
| Meta AI           | `meta.ai`                        |    ✅   |     ✅    |       ✅      |     ✅    |
| Mistral           | `chat.mistral.ai`                |    ✅   |     ✅    |       ✅      |     ✅    |
| Poe               | `poe.com`                        |    ✅   |     ✅    |       ✅      |     ✅    |
| Kimi              | `kimi.com`                       |    ✅   |     ✅    |       ✅      |     ✅    |
| HuggingChat       | `huggingface.co/chat`            |    ✅   |     ✅    |       ✅      |     ✅    |

### Observation-only pages

These pages support monitoring and Sessions, but cannot safely rewrite or stop the provider request.

| Provider              | Pages                                          | Prompt | Response | Mask / Block | Sessions |
| --------------------- | ---------------------------------------------- | :----: | :------: | :----------: | :------: |
| Gemini                | `gemini.google.com`                            |    ✅   |     ✅    | Monitor only |     ✅    |
| Linear AI             | `linear.app/<workspace>/agent`                 |    ✅   |     ✅    | Monitor only |     ✅    |
| Microsoft 365 Copilot | `m365.cloud.microsoft`                         |    ✅   |     ✅    | Monitor only |     ✅    |
| NotebookLM            | `notebooklm.google.com`, `notebook.google.com` |    ✅   |     —    | Monitor only |     ✅    |

<Warning>
  The extension may be present on other HTTPS pages, but that does not make
  those pages supported. Unknown pages do not capture conversations and cannot
  enforce prompt decisions.
</Warning>

## Scanner outcomes

Scanner actions are configured under **Settings → Security Scanners**. Per-client overrides for **Web Browser** take precedence over the global scanner action.

| Outcome   | Browser behavior                                                                                      |
| --------- | ----------------------------------------------------------------------------------------------------- |
| **Allow** | Send the original prompt                                                                              |
| **Alert** | Send the original prompt and record the finding                                                       |
| **Mask**  | Replace matching prompt input before provider send                                                    |
| **Block** | Stop the prompt before provider send. When browser Sessions is enabled, record the session as Blocked |

The provider UI may display its own generic network or retry error when a request is blocked. Use the corresponding security finding in [Incidents](/platform-incidents) or [Audit Logs](/platform-audit-logs) as the policy evidence. When browser Sessions is enabled, the session's Blocked status provides additional evidence.

## Verify a deployment

1. Confirm the extension appears as managed in `chrome://extensions`.
2. Open the extension popup and confirm the expected Monitor, Protect, or Enforce badge.
3. Confirm **Full session scanning APIs** is enabled and **Browser extension** is enabled under **Settings → Agent session monitoring → Hook clients**.
4. On a response-capable supported page, submit a harmless unique prompt and confirm its prompt and response appear in [Sessions](/platform-sessions). For NotebookLM, verify the prompt and session lifecycle only because response capture is intentionally unsupported.
5. Test Mask or Block only with a dedicated test organization and a pre-approved scanner test value. Confirm the provider receives the masked value or does not receive the blocked prompt.

## Troubleshooting

<AccordionGroup>
  <Accordion title="The extension is installed, but no browser sessions appear">
    Confirm **Collect browser session data** is enabled, **Full session scanning
    APIs** is on, and the **Browser extension** Hook client is enabled. Restart
    Chrome after the first managed deployment or a policy change.
  </Accordion>

  <Accordion title="Prompts are recorded but not masked or blocked">
    Confirm the page is listed under **Prompt protection and Sessions**, the
    browser mode is Protect or Enforce, and the relevant scanner action or Web
    Browser override is Mask or Block. Observation-only pages never modify the
    provider request.
  </Accordion>

  <Accordion title="A blocked prompt shows a provider error">
    Some providers surface a generic network, retry, or send error when the
    extension stops their request. Confirm the security finding in Incidents or
    Audit Logs. When browser Sessions is enabled, also confirm the corresponding
    session is marked **Blocked**.
  </Accordion>
</AccordionGroup>

## Related resources

<CardGroup cols={2}>
  <Card title="Deploy AI Watch" icon="download" href="/shadow-ai/deploy">
    Create the MDM deployment that force-installs and configures the extension
  </Card>

  <Card title="Sessions" icon="chart-line" href="/platform-sessions">
    Review captured browser prompts, responses, and scanner outcomes
  </Card>

  <Card title="Endpoint modes" icon="shield" href="/shadow-ai/enforce">
    Understand Monitor, Protect, and Enforce across local clients
  </Card>

  <Card title="Security scanners" icon="brain" href="/runlayer-toolguard">
    Configure scanner actions and per-client overrides
  </Card>
</CardGroup>
