Skip to main content
The Runlayer browser extension brings AI Watch prompt monitoring, scanner decisions, and Sessions telemetry to supported AI web chats in Google Chrome, Microsoft Edge, and Mozilla Firefox. Every browser reports as the Browser extension client while Runlayer resolves the provider from the page URL.
Managed force installation is available for Chrome 120+, Edge 120+, and Firefox 140+ on macOS through Jamf Pro, Intune for macOS, Iru/Kandji, SimpleMDM, Mosyle, Workspace ONE, and the generic macOS MDM flow, and on Windows through Intune. Chrome and Firefox on macOS require AI Watch 0.29.6 or newer. Edge on macOS and every browser on Windows require AI Watch 0.30.13 or newer. The Linux AI Watch package does not install the browser extension.

What it does

For a supported web chat, the extension can:
  • capture submitted prompts and assistant responses
  • record web conversations in 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

1

Confirm the AI Watch version

Open Settings → AI Watch and confirm the target devices run AI Watch 0.29.6 or newer for Chrome and Firefox on macOS, or 0.30.13 or newer for Edge and for Windows devices. If they do not, update the AI Watch policy under Settings → Client updates and allow the managed updater to install the selected version before continuing.
2

Enable the browser extension

In Settings → AI Watch, find the existing deployment under Configurations, select Manage settings, and open the Browser extension tab. Turn on Install browser extension, then select Save changes.
3

Let AI Watch reconcile the browsers

AI Watch reads the setting and installs the managed Chrome, Edge, and Firefox policies during its next reconcile, within about 15 minutes: the bootstrap daemon on macOS, or the SYSTEM AIWatchHooks task on Windows. Restart each browser after the policy is applied. No change or redeployment of the existing MDM profile or MSI is required.
4

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.
AI Watch uses the deployment’s existing tenant host and organization API key to configure every browser. It force-installs Runlayer’s stable CRX in Chrome and Edge and the Mozilla-signed XPI in Firefox, then keeps their managed settings synchronized with the deployment. AI Watch changes only Runlayer’s entries in each browser’s extension policy and preserves other extensions’ settings. Users do not need to sign in to the browser. If AI Watch is not deployed, complete the macOS or Windows deployment first. Existing deployments already running a supported AI Watch version only need the Runlayer setting above; do not edit or re-deploy com.runlayer.aiwatch.mobileconfig or the MSI install command to enable the browsers. 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.

Browser requirements

Chrome and Edge force-install an extension from outside their stores only on managed devices. On macOS, the Mac must be MDM-managed. On Windows, the device must be joined to Active Directory or Microsoft Entra ID; Chrome also accepts Chrome Enterprise Core enrollment. Microsoft Entra registered devices do not qualify.

Install the Chrome extension from your own policy

If you already manage Chrome extensions in Google Admin, Chrome Enterprise Core, or your MDM, you can install the Runlayer extension from that policy instead. Why this option exists. Chrome reads each extension policy (ExtensionInstallForcelist, ExtensionSettings) from only one source: the highest-priority one wins, and Chrome does not combine the values from different sources. Settings written on the Mac itself rank above per-user MDM profiles and Google Admin user policy. So whenever AI Watch writes its own Chrome extension policy, it can hide the same policy you deliver from somewhere else. For example, after AI Watch added its force-install, customers’ Okta extensions were removed and reinstalled, signing users out each time. Installing Runlayer from your own policy removes the conflict, because then only your policy exists. To turn it on, go to Settings → AI Watch → Manage settings → Browser extension and turn on Chrome extension installed by your policy. AI Watch then writes nothing to Chrome’s machine policy on macOS, so it never overrides your extension policies. It still delivers the extension’s tenant settings. On a Mac shared by users with different policy rules, AI Watch keeps its own force-install unless every user’s rule has this option on. The option needs AI Watch 0.31.20 or later on each Mac. Older versions ignore it and keep their own force-install. If your MDM installs a fixed AI Watch package, update that package too, or the MDM may reinstall the older version. With the option on, the same tab shows the extension ID and your organization’s update URL, each with a copy button, followed by the ExtensionSettings entry for MDM profiles: Browser extension tab with Chrome extension installed by your policy turned on, showing the extension ID and update URL with copy buttons Then force-install Runlayer from your policy:
  • Google Admin or Chrome Enterprise Core: force-install the extension by ID from the update URL (From a custom URL).
  • MDM Chrome profile (Jamf, Iru, and others): add this entry to the profile’s ExtensionSettings. Use force_installed; users can turn off a normal_installed extension.
Runlayer isn’t in the Chrome Web Store, so always use your update URL, not the Web Store URL (https://clients2.google.com/service/update2/crx) that other extensions’ entries use. Chrome can’t install Runlayer from a Web Store entry, and because Chrome applies ExtensionSettings over ExtensionInstallForcelist, that entry also stops AI Watch’s own force-install from working. If your MDM installs the Chrome profile at the computer level, use ExtensionSettings rather than ExtensionInstallForcelist. A computer-level profile writes the same /Library/Managed Preferences/com.google.Chrome.plist that AI Watch manages, and with this option on AI Watch removes any forcelist entry for its extension ID from that file, because earlier AI Watch versions wrote one there. Google Admin policy and user-level MDM profiles are never changed, so a forcelist entry is fine there. Deliver each policy from one place. If Google Admin and your MDM both set ExtensionSettings, for example Google Admin pins Okta to the toolbar while your MDM profile force-installs Runlayer, Chrome uses only the higher-priority one (by default the MDM’s) and ignores the other’s settings, and chrome://policy shows the policy as conflicting. Add Runlayer wherever that policy already comes from, or move all of its entries to one place. Add Runlayer to your policy before you turn the option on. Once AI Watch removes its own force-install, Chrome uninstalls the extension wherever your policy doesn’t install it, after its next policy reload (within about 15 minutes, or right away after Reload policies in chrome://policy). The device health check reports any Chrome profile where your policy has not installed the extension.
When a managed device also has an Edge work profile, Edge treats a profile signed in with a personal Microsoft account as the Enterprise personal browser and does not apply extension management policy to it. AI Watch cannot install the extension in that profile, so its web chats are outside browser-extension coverage. See Microsoft’s policy filters for the Enterprise personal browser.

Supported browsers

Limited: the extension installs, but AI Watch registers its identity host for Island only on macOS, so Runlayer cannot resolve the user behind Island activity on Windows and prompt scanning and Sessions attribution do not apply there. See Island Enterprise Browser.

Island Enterprise Browser

Island manages its extensions from the Island Management Console. AI Watch also writes the extension policy to Island’s macOS managed preferences and registers its identity host for Island, but Island may apply only console policy, so an Island administrator should add the extension in the console once:
1

Open the Island setup

In Settings → AI Watch, select Manage settings on the deployment and open the Browser extension tab. With Install browser extension on, select Set up Island in the Using Island Enterprise Browser? notice. The setup shows the extension ID, your organization’s update URL, and the extension configuration policy. Replace <organization API key> with the deployment’s organization API key, which is in the deployment profile you uploaded to your MDM. New deployments show the same notice on the final setup step, with the key filled in.
2

Force-install the extension in Island

In the Island Management Console, open Device Management → Extensions → Extension Policy. Add the extension ID as a force-installed extension with the update URL, then paste the configuration into its Extension configuration policy. Save, then apply the pending changes.
3

Allow the identity host

Under Browser Hardening → Native Messaging Hosts, allow hosts installed with administrator permissions. On macOS, the extension uses the AI Watch native messaging host to resolve the device’s user; without it, prompt scanning and Sessions attribution do not apply to Island activity.
Island does not receive later changes to the browser mode or Sessions setting from Runlayer. After changing either, paste the updated configuration into the Island extension policy.

Set up one browser manually

Use this flow for a test browser profile or one-off validation. For a fleet rollout, use the managed deployment above so installation, configuration, and updates remain enforced. This flow covers Chrome and Firefox; Edge is supported only through the managed deployment.
Manual configuration stores a personal API key in the browser profile, and Runlayer attributes its activity to that key’s owner. Use a dedicated test profile on a trusted device, not a shared browser profile.
1

Download the selected browser package

In Settings → Client updates, open Browser extension, select and save the version policy you want to test, then download the package for the browser:
  • Chrome: runlayer-aiwatch-browser-extension-<version>-unpacked.zip
  • Firefox: runlayer-aiwatch-browser-extension-firefox-<version>.xpi
2

Install the package

Unzip the downloaded file. Open chrome://extensions, turn on Developer mode, select Load unpacked, and choose the unzipped folder. Keep the folder in place: Chrome loads the extension from it. Unpacked installs don’t update automatically, so download and load the new zip for each release.If your organization blocks Developer mode, use the managed deployment. Chrome on macOS and Windows rejects a downloaded .crx opened directly (CRX_REQUIRED_PROOF_MISSING).
3

Configure the extension

Open Runlayer AI Watch → Manage extension → Extension options. Enter your Runlayer tenant URL as Backend host. In Settings → Personal API keys, create a personal API key for the user running the test, then enter it as API key. Leave prompt-input scanner actions off for Monitor, or enable them for Protect or Enforce. Select Save, then Test connection.A personal API key attributes activity directly to its owner, so a manual installation does not need the managed device identity that the AI Watch package provides. If the connection test reports Device identity unresolved, replace the organization API key with a personal API key and retry.
4

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.

Configure browser mode and Sessions

Open 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. 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
  • Heuristic — best-effort capture through the generic composer detector; the page is not validated for the current release
  • — — 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.

Observation-only pages

These pages support monitoring and Sessions, but cannot safely rewrite or stop the provider request.
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.

Scanner outcomes

Scanner actions are configured under Settings → Security Scanners. Per-client overrides for Web Browser take precedence over the global scanner action. The provider UI may display its own generic network or retry error when a request is blocked. Use the corresponding security finding in Incidents or 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 device runs a supported AI Watch version: 0.29.6 or newer for Chrome and Firefox on macOS, or 0.30.13 or newer for Edge and for Windows devices.
  2. In Chrome, open chrome://extensions; in Edge, open edge://extensions. Confirm the Runlayer extension appears as managed. If it is missing, open chrome://policy or edge://policy and confirm the Runlayer extension policy is applied without errors.
  3. In Firefox, open about:policies, confirm the Runlayer extension policy is active, then open about:addons and confirm the extension is installed. A Firefox account is not required.
  4. Open the extension popup in each browser and confirm the expected Monitor, Protect, or Enforce badge.
  5. Confirm Full session scanning APIs is enabled and Browser extension is enabled under Settings → Agent session monitoring → Hook clients.
  6. On a response-capable supported page, submit a harmless unique prompt and confirm its prompt and response appear in Sessions. For NotebookLM, verify the prompt and session lifecycle only because response capture is intentionally unsupported.
  7. 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

Confirm Collect browser session data is enabled, Full session scanning APIs is on, and the Browser extension Hook client is enabled. Restart the browser after the first managed deployment or a policy change.
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.
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.

Deploy AI Watch

Create the MDM deployment that force-installs and configures the extension

Sessions

Review captured browser prompts, responses, and scanner outcomes

Endpoint modes

Understand Monitor, Protect, and Enforce across local clients

Security scanners

Configure scanner actions and per-client overrides