Setting up a Chrome extension Surface

Use a Chrome extension Surface to package your Product’s AI as a downloadable Manifest V3 extension. Your users chat with your AI in the browser side panel. The extension can provide packaged browser tools for reading pages, filling forms, and navigating tabs. Build the extension ZIP from the Surface’s Ship tab.

Before you begin

Create a Product and attach at least one Capability. Use a Flow or Agent that handles user messages as the Capability. The download requires a Capability on the Surface. For instructions, see Adding Capabilities to a Product.

The Chrome extension Surface is behind a gradual rollout. If Chrome Extension does not appear in the Surface type list, the Surface is not available for your account.

Create the Chrome extension Surface

Create the Surface from the Product that you want to ship:

  1. Open the Product you want to ship as an extension.
  2. Open Surfaces and click Add Surface.
  3. Select Chrome Extension as the Surface type.
  4. Enter a name for the Surface and click Save.

Configure the extension

Use the Surface configuration panel to set the extension’s name, behavior, and tools. The panel includes these fields:

  • Extension name: appears in the Chrome toolbar and extension manager. It defaults to the Surface name.
  • Extension description: appears in the extension manager and, if you publish the extension, in the Chrome Web Store listing.
  • Chat location: controls where the chat opens. Side panel is recommended and stays open while you browse. Toolbar popup closes when it loses focus and stops in-progress runs. Use it for quick, one-shot questions.
  • Browser tools: define the tool categories available to your AI.
  • Optional host permissions: accept match patterns, one per line. For example, https://*.example.com/*. You can grant these permissions at runtime for matching sites. The extension otherwise accesses only the tab where you invoke it.
  • First-run consent screen: defaults to on. It shows a disclosure before page content is sent to your AI. Keep it on for Chrome Web Store distribution. Chrome Web Store policy requires prominent disclosure and affirmative consent when page content goes to an AI backend.
  • Input placeholder: sets the placeholder text in the chat input.

Choose browser tools

Browser tools are fixed handlers that the extension packages. The extension passes parameters, such as a CSS selector, a value, or a URL. It does not pass code. Mutating tools ask for confirmation in the chat before they run. Read-only tools run automatically.

Enable only the categories that your use case needs. The available categories are:

CategoryWhat your AI can doNotes
Page readingRead page text, HTML, your selection, and metadata; take screenshotsRead-only tools run automatically
Page interactionClick elements; read or fill formsActions that change the page ask for confirmation
Tab navigationList, open, close, and navigate tabsAdds the tabs permission, which Chrome labels as reading browsing history
ClipboardRead or copy clipboard textAdds the clipboardRead and clipboardWrite permissions
NotificationsShow Chrome desktop notificationsAdds the notifications permission

The extension always requests storage. Side-panel mode also requests sidePanel. When you enable content tools, the extension adds activeTab and scripting. These permissions grant temporary access to the tab where you invoke the extension. They do not create install warnings. Tab navigation adds the tabs permission. Optional host permissions add access to matching sites after you grant them at runtime.

If you select no browser tool categories, the extension remains chat-only.

Download the extension

Open the Surface’s Ship tab and click Download extension ZIP to build the bundle. The first download also configures the resources that the bundle needs:

  • A pinned extension ID: the bundle includes a manifest key. Every unpacked install then uses the same extension ID and chrome-extension:// origin. The ID appears in the Ship tab and the configuration panel.
  • A client token scoped to the Surface’s Capabilities: the download adds the extension’s origin to the token’s allowed origins. Runtype reuses a matching token for this Surface or creates one. For more information, see Client tokens and domain restrictions.
  • The Surface’s WebMCP policy: the API accepts browser-tool results from the extension’s origin.

Repeat downloads keep the same extension ID, so you can rebuild the bundle after configuration changes without breaking installed copies.

Install the extension for testing

To test the extension, follow these steps:

  1. Unzip the downloaded ZIP.
  2. Open chrome://extensions.
  3. Turn on Developer mode.
  4. Click Load unpacked and select the unzipped folder.
  5. Open the extension from the Chrome toolbar.

Chrome 134 and later disables unpacked extensions when Developer mode is off. Treat an unpacked installation as a testing channel. To distribute the extension to end users, publish it through the Chrome Web Store.

Distribute through the Chrome Web Store

The generated bundle includes a README with the publishing checklist. Complete these requirements before you publish:

  1. Host a privacy policy that names Runtype and its model providers as data recipients. Link it in the Chrome Web Store developer dashboard.
  2. Complete the Privacy practices tab with a single-purpose description, a reason for every permission, the data-usage certifications, and the Limited Use certification.
  3. Keep the first-run consent screen enabled. Chrome Web Store policy requires prominent disclosure and affirmative consent when page content goes to an AI backend.
  4. Remove the key field from manifest.json for the first upload of a new store item. Chrome rejects bundles that include this field. It assigns the store item its own extension ID. After publishing, add the store-assigned ID’s chrome-extension:// origin to the client token’s allowed origins in the Runtype dashboard.
  5. Prefer unlisted distribution for white-label or business-to-business deployments.

Plan for manual review. Reviews for new developer accounts can take days to weeks.

Next steps

Follow these guides to continue: