Unbrowse — the registry of website API routes for AI agents
Search skills by intent, resolve to a ranked endpoint, execute for real data. MCP setup: npx unbrowse setup --mcp. Conversational demo at /aiko. Full overview at /classic.
Any website, instantly an API for your agent
Browse 29 skills across 29 domains · 5,435 live calls
Peer-reviewed · 94-domain benchmark · 3.6× mean speedup (5.4× median), 100% win rate
Most-used skills
Browse all →Captured routes you replay as a direct API — no browser, no scraping.
Stackoverflow
stackoverflow.com
Beatsaver
beatsaver.com
www.linkedin.com
Openlibrary
✦openlibrary.org
X
x.com
Eatigo
eatigo.com
Taostats
taostats.io
www.reddit.com
News
ground.news
history.google.com
reddit.com
Ycombinator
✦news.ycombinator.com
DOM skill for news.ycombinator.com
Computer Use vs Unbrowse
Computer Use
Screenshot-based UI agents
Unbrowse
Direct API execution
“Stop teaching fish to walk. Let them swim.”
## Not just reading. Doing.
Browse once. Call forever.
The resolve pipeline tries three paths in order: local route cache (<200ms), shared marketplace (sub-second), then a first-pass browser (8s) that visits the site for your agent and captures its internal APIs. Once captured, every later call on that site skips the browser entirely and returns the JSON answer in milliseconds. The more people install Unbrowse, the more first-pass captures land in the shared cache, so the cold-start tax shrinks across the network.
Book the trip while you are in a meeting.
unbrowse calls priceline.com / airbnb.com's own search + reservation endpoints (the ones their UI calls when you tap "Reserve") with your browser session.
unbrowse_resolveunbrowse_executeTriage the morning PR queue.
unbrowse calls github.com's pulls-list + review-submit endpoints directly. No UI driving; the comment + APPROVE verdict ride the same API the green button posts to.
unbrowse_resolveunbrowse_executePost the thread, everywhere, from one draft.
unbrowse calls each platform's compose / schedule endpoint directly. One markdown draft fans out through the APIs the platforms use for their own composer.
unbrowse_resolveunbrowse_executeSwap tokens without a browser tab open.
unbrowse hits jup.ag's quote + swap endpoints. Your wallet signs the returned tx. No DOM rendering, no MetaMask popup loop, no clicking.
unbrowse_resolveunbrowse_executeClear the inbox at 7am.
Gmail and Calendar both expose internal APIs your browser already calls every time you refresh. unbrowse calls them with the same cookies. No OAuth scopes to wire, no per-app token.
unbrowse_resolveunbrowse_executeReorder the cart. File the return. Cancel the trial.
Each retailer's frontend posts to internal cart-mutate and return-init endpoints. unbrowse posts to the same endpoints with your session cookies. Same effect as you tapping the button.
unbrowse_resolveunbrowse_executeWhy the architecture works for writes too
The same primitive that fetches a search result POSTs a reservation.
unbrowse_execute calls any captured endpoint with your cookies, GET or POST, idempotent or not. Our 94-domain published bench measures the read path (modelled after WebArena's information-retrieval category); the write path rides the same primitive with the same auth. Browse the marketplace for the authenticated routes the community has already captured.
The first-pass browser is the only time a browser runs for any given site. After capture the marketplace serves the route forever. Every install adds new captures to the shared cache.
The transition to agentic actions
Google → Chrome
Blogger → YouTube
MetaMask → OpenSea
Unbrowse
Building Chrome + Google for the agentic internet.
## What "universal" means here
One MCP server. One Browser class. Every website your agent points at.
Not a stack of per-site MCPs. Not another framework on top of Playwright. The web layer your agent already wants.
Already wrote Playwright code? Swap the import.
The unbrowse SDK ships a Browser class with the same shape your agent already calls. page.goto() resolves from the skill cache first; behind the familiar interface, the engine is calling the captured shadow API, not driving Chromium. Falls through to the real browser only when the route is not yet known.
Two tool calls do most of the work.
The canonical loop is unbrowse_resolve (find the right captured endpoint) then unbrowse_execute (call it with your cookies). 30+ other MCP tools (_go, _snap, _click, _fill, _submit, _eval, _scroll, _press, _select, _cookies, _auth_capture) are there for the cold-discovery path when a new site has not been captured yet.
mcp.json entry replaces your stack94 live domains in the open bench.
The paper measures 3.6x mean speedup (5.4x median) over Playwright across 94 live domains. 18 of those domains complete in under 100ms from the cache. The corpus is at harness/probes/corpus.txt; rerun the bench yourself.
Every install makes the next user faster.
When your agent hits a site nobody has captured yet, the first-pass browser captures it once and publishes the route to the shared marketplace. The next agent on the same site (yours or someone else's) skips the browser entirely. The cold-start tax shrinks across the network as more people install unbrowse.
Browse the marketplaceWorks with your stack
See it work — ask Aiko anything
Aiko answers live through these routes. Watch a real question resolve and execute in seconds — the registry, in motion.
Open Aiko →