Unbrowse — an action layer for web agents

Unbrowse learns first-party routes behind websites and lets agents act through them directly when they are available, instead of driving a headless browser by default. In the 94-domain paper benchmark, warmed cached routes averaged a 3.6x mean speedup and 5.4x median speedup over Playwright. Routes discovered by one agent can be reused by others, and the people who maintain those routes can be compensated when they run.

Useful route contributions can earn account credits, with redemption available later.

Default setup: npm install -g unbrowse; unbrowse setup

Setup installs the Agent Skill and browser engine. It does not write MCP host configs.

Legacy MCP stdio server: unbrowse mcp

Community: https://discord.gg/VWugEeFNsG

Full documentation: https://www.unbrowse.ai/skill.md

The route layer for web agents.

Ask it anything below. It tries the site's real first-party routes first, and keeps the browser for the cases where a browser is still required.

SearchResolveExecute·real site APIs, no browser window

Runs on your own browser first · run it in ElizaOS, Claude, or Cursor →

94-domain benchmark · 3.6x mean / 5.4x median speedup · direct routes when known; browser fallback when not.

·join discord·read the paper
Member of theNVIDIA Inception Program member

© 2025 NVIDIA and the NVIDIA logo are trademarks and/or registered trademarks of NVIDIA Corporation in the U.S. and other countries.

## Skill Install

$ unbrowse setup

Installs the Agent Skill and browser engine. MCP config is manual-only.

unbrowse mcp
○ anonymous install — the cli will prompt for an email on first runsign in to bake your api key into the install →
## already installed?
npm install -g unbrowse@latest&&unbrowse setup

Plugs into the agent stack you already use

Claude CodeClaude DesktopCursorCodexWindsurfOpenClawAny MCP framework

+ Useful contributions earn account credits. Redemption opens later.

## After You Install

Bypass the DOM completely.

Speed

Skip the rendering engine

Headless browsers are expensive when the page is only a route discovery step. Unbrowse reuses known first-party routes and falls back to the browser when the route is missing.

3.6xmean speedup in paper
browser-firstcached route
Tokens

Fewer tokens

A direct route returns structured data instead of forcing the model to reason over a whole rendered page.

Scraping HTML~8,000t
Direct API~200t
Discovery

Auto-discovers APIs

Your agent calls Unbrowse over MCP and the right shadow endpoint comes back — schemas, parameters, sample values, all ready to call.

Zero config needed
Shared skill registry
Security

Integrate with anything. Behind auth.

No cloud proxies, no expensive credits. Unbrowse runs locally, leveraging your actual browser sessions to securely access auth-protected content.

Security Check Passed
Proxy ServerNone
MITMDisabled
Cookies leave deviceFalse
ExecutionLocal Only

## Research

The thinking behind the engine.

The flagship paper: why internal APIs are the machine-native interface for autonomous agents, and how a shared route graph turns repeated browser rediscovery into collective memory.

## The Problem

Three ways to see the same website

0.0s
128,500
$0.386
travelbooker.com
travelbooker
AnywhereAny week • Add guests
Tokyo, Japan
★ 4.98
Oct 15 - 22
$89 night
Paris, France
★ 4.92
Nov 2 - 7
$112 night

What Humans See

Beautiful, interactive UI

view-source:travelbooker.com
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"/><meta name="viewport" content="width=device-width"/><script>var _0x3f2a=function(_0x2b1c){var _0x4e3d=_0x2b1c.split("").reverse().join("");return atob(_0x4e3d)};window.__CF={};(function(){var a="x3f",b=document.createElement("div");b.className="x3f"+a;b.id="_0x"+Math.random().toString(36).substr(2,9);</script><link rel="stylesheet" href="/_next/static/css/a3b2c1d.css"/><style>.x3f{display:flex;flex-direction:column}.x3f>div{padding:0}.x3f .k9m{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%)}.x3f .q7p{position:absolute;top:0;left:0;right:0;bottom:0;z-index:1}.x3f .r2w{font-size:clamp(1.5rem,4vw,3rem);font-weight:800;letter-spacing:-.02em;line-height:1.1}</style></head><body><div id="__next"><div class="x3f"><div class="x3f q7p"><nav class="x3f k9m"><div class="x3f"><a href="/" class="x3f r2w">TravelBooker</a><div class="x3f"><a href="/flights" class="x3f">Flights</a><a href="/hotels" class="x3f">Hotels</a></div></div></nav><main class="x3f"><div class="x3f k9m"><h1 class="x3f r2w">Find your perfect getaway</h1><form class="x3f" action="/search" method="GET"><input class="x3f" name="q" placeholder="Anywhere" value=""/><button type="submit" class="x3f">Search</button></form></div><div class="x3f"><div class="x3f"><div class="x3f"><img src="https://images.unsplash.com/photo-1540959733332-eab4deabeeaf?auto=format&fit=crop&w=400&q=80" alt="Tokyo, Japan" class="x3f"/></div><div class="x3f"><div class="x3f">Tokyo, Japan</div><div class="x3f">★ 4.98</div></div><div class="x3f">2,410 kilometers away</div><div class="x3f">Oct 15 - 22</div><div class="x3f"><span class="x3f">$89</span> night</div></div><div class="x3f"><div class="x3f"><img src="https://images.unsplash.com/photo-1499856871958-5b9627545d1a?auto=format&fit=crop&w=400&q=80" alt="Paris, France" class="x3f"/></div><div class="x3f"><div class="x3f">Paris, France</div><div class="x3f">★ 4.92</div></div><div class="x3f">View of Eiffel Tower</div>

What Agents See Today

Image + 847KB DOM × 1 passes

0.00s
0
$0.0000
agent_session API
unbrowse.search{ query: 'Tokyo' }
Executing...

What Unbrowse Does

1KB JSON × 0 calls