Docs
Use your own browser and logins
The Unbrowse browser extension lets your agent use the sites you are signed in to. For each site you approve, it can keep your session synced to your vault, run your agent's requests from your own browser on your own IP, and learn a task you do by hand. Nothing happens for a site you have not approved.
What it does
| Mode | What happens | When it runs |
|---|---|---|
| Sync | The site's cookies are uploaded to your workspace vault (sealed, never shown) and kept fresh when they change. Agent runs on that site then act signed in. | While your browser is open |
| Relay | Your agent's requests to the site are sent by your browser: your IP, your session, real Chrome. Unbrowse still decides each request and reads each answer. | While your browser is open and the extension is connected |
| Teach | You do a task by hand once; the extension records the site's own requests (typed passwords and cookie values removed) and Unbrowse compiles them into a tool. | When you press Teach Unbrowse this |
For a request on a signed-in site, Unbrowse tries, in order: the site's official API or MCP server if it covers the task, your browser through the relay, your synced session, then signing in with a saved login in Unbrowse's cloud browser.
Set it up
- Install the Unbrowse extension in Chrome, Edge, Brave or Arc. Version 1.1.0 is awaiting Chrome Web Store review and is not installable from the store yet; this page will link it once it is listed.
- Sign in to unbrowse.ai, then open the extension and press Connect to Unbrowse. It uses the same account.
- On a site you use, open the extension and approve the site for Sync, Relay, or both. Chrome asks you to allow the extension on that site.
- See the connection, your approved sites and your kept sessions under Console → Browser extension.
Without the extension: sync from the CLI
The Unbrowse CLI copies a site's cookies from the browsers on your machine into your vault, the same way Sync does:
unbrowse cookies sync --domain claude.ai # once, after you sign in to the site in your browser unbrowse cookies daemon start --domain claude.ai,notion.so # keep them fresh in the background unbrowse cookies watch --domain claude.ai # the same, in the foreground
--browser and --profile pick one browser profile (unbrowse cookies list shows them).
When a page is behind a sign-in
A page that only shows content to a signed-in account (a private claude.ai artifact, a Notion page, a Google Doc, a Linear issue) fails login_required (HTTP 401, not billed) when Unbrowse has no sign-in for the site, with the fixes in error.details.next. A browse session that opens on one carries signInWall with the same list. Give Unbrowse the sign-in, then ask again:
- Sync your browser's sign-in:
unbrowse cookies sync --domain <site>,unbrowse cookies daemon start --domain <site>, or approve the site for Sync in the extension. - For a site with a password, save a login (
unbrowse_credentials_request) or sign in once in a cloud-browser session (unbrowse_browse_open); the session is kept.
A synced or kept sign-in is sent with every later read of that site. Running from your own IP (--from-here, client egress) changes only the IP: it never carries a sign-in, and a kept sign-in is withheld from requests sent from your machine.
What it will not do
- Other people's jobs. Your browser only carries your own workspace's runs.
- Your network. Requests to
localhost, private and link-local addresses,.local/.internalnames and redirects into them are blocked, both in the extension's code and by Chrome network rules. - Unapproved sites. Each site is approved separately and can be removed at any time; removing a synced site deletes its session from your vault.
- Banks, government ID, email, password managers and health portals cannot be approved in one click.
- Writes without asking. Anything other than reading (a form, a booking, a payment) opens an approval window unless you trusted the site for writes. No answer in 20 seconds counts as no.
- Floods. Each site is paced (5 requests at once, then 1 a second), so a looping agent cannot get your IP banned.
You can pause the relay from the extension, and disconnect the browser from the console. A disconnected browser cannot reconnect until you sign in again.
For developers
- Status of your workspace's extension:
GET /api/v1/relay/status→{ online, device, sites, paused }. - Disconnect it:
POST /api/v1/relay/revoke. - Forget a synced site:
DELETE /api/v1/cookies/<site>. - Upload cookies yourself (what Sync does):
POST /api/v1/cookieswith{ "cookies": [{ "domain", "name", "value", "path", "secure", "expires" }], "source": "extension" }. - A run whose site requests were carried by your browser reports
"via": "relay". - To send a single run's requests yourself without the extension, see Run from your own IP.