Browser Use Lets Cloud AI Agents Run Chrome Extensions Before Browsing
Browser Use now lets cloud agents load real Chrome extensions like ad blockers and password managers before the first page loads.
- Browser Use launched Extensions, letting cloud agents load real Chrome extensions before the first page loads.
- Upload a ZIP of any Manifest V3 extension once per project, then attach by ID when creating browsers.
- Up to 3 extensions per browser, 100 per project, 100 MiB ZIP cap, 256 MiB unzipped.
- Debugger, proxy, dns, experimental, and enterprise permissions are blocked at upload time for sandbox safety.
- Works for agent runs via browserSettings.extensionIds; agent is not told which extensions are loaded.
- REST only for now, Python and TypeScript SDK support arrives in the next release; ZDR projects excluded.
Browser Use adds Chrome extensions to cloud agents
Browser automation agents can navigate websites, click buttons, and complete forms, yet their cloud browsers often lack the extensions used for blocking ads, managing credentials, and modifying pages. Browser Use has added extension support to Cloud API V4, according to its Cloud API docs. Developers can upload a Manifest V3 extension once at the project level, then attach it by ID to any cloud browser they create.
Extensions arrive before page one
Each extension must be packaged as a ZIP file with manifest.json at the archive root. To reuse an extension from the Chrome Web Store, extract its files and ZIP the extracted directory. The upload endpoint returns an extension id, which goes into the extensionIds array when creating a browser.
Uploading an extension and attaching it to a browser requires two API calls:
curl https://api.browser-use.com/api/v4/extensions \
-H "X-Browser-Use-API-Key: $KEY" \
-F file=@ublock-origin-lite.zip
curl https://api.browser-use.com/api/v4/browsers \
-H "X-Browser-Use-API-Key: $KEY" \
-H "Content-Type: application/json" \
-d '{"extensionIds": ["c4898718-c881-4c37-a4be-68591428d0aa"]}'Replace the sample UUID in the second request with the id returned by the upload endpoint. That project-level ID can be reused when creating later browsers.
Browser Use installs attached extensions before reporting the browser as ready. Content scripts and request interceptors therefore run on the first page load, including pages where ads, trackers, or consent overlays could otherwise disrupt the agent before its task begins.
Cleaner pages, fewer brittle runs
Most agent frameworks launch ephemeral Chromium contexts, which generally cannot load extensions through standard automation APIs. With Playwright, the common workaround requires launchPersistentContext, a --load-extension flag, and a managed user-data directory. Browser Use handles that setup during cloud browser creation.
- Ad blockers such as uBlock Origin Lite can reduce visual clutter and the amount of DOM content sent to a model, lowering the chance of mistaken clicks and unnecessary token use.
- Password managers can fill credentials after vault setup, keeping raw passwords out of task prompts.
- Consent-management extensions can dismiss recurring cookie dialogs before they consume agent steps.
- Internal extensions can inject helpers, custom selectors, or site-specific behavior for the agent to use.
Agent runs can attach up to three project extensions, and every browser created for the run loads them before the agent takes control, according to the agent run docs. The agent receives no automatic inventory of installed extensions. Tasks that require an extension page must include its complete chrome-extension:// URL.
Sandbox boundaries stay firm
The upload endpoint applies limits that preserve Browser Use’s control over the browser sandbox and network path:
| Limit | Value |
|---|---|
| Manifest version | Manifest V3 |
| Upload format | ZIP archive |
| Compressed size | 100 MiB |
| Uncompressed size | 256 MiB |
| Extensions per project | 100 |
| Extensions per browser | 3 |
A package is rejected if its manifest.json defines key or requests debugger, proxy, processes, dns, experimental, or any enterprise permission. The debugger permission can attach to tabs through the DevTools protocol, while proxy can alter browser network routing. Blocking those capabilities protects the automation loop and traffic controls.
Zero Data Retention projects cannot use extensions. Deleting an uploaded extension prevents new browsers from attaching its ID, while browsers already running retain the extension until their sessions end.
REST leads the rollout
Cloud API V4 provides the complete integration path at launch, while dedicated Python and TypeScript SDK methods are scheduled for the next SDK release.
- TypeScript: Agent-run types do not yet include
extensionIds, so TypeScript integrations must call the REST API directly. - Python: Callers can already pass
browser_settingsas a dictionary containing the REST field, such as{"extensionIds": ["..."]}.
The three-extension ceiling supports a focused stack, such as an ad blocker, a password manager, and one domain-specific helper. Full daily-profile replication remains outside the feature’s scope. Project-level extensions give agents targeted browser capabilities before the first navigation request, reducing failures caused by page clutter, consent overlays, and site-specific interaction requirements.