Kitesurf: Cloudflare's Browser Built for AI Agents
On August 6, 2026, Cloudflare introduced Kitesurf, a web browser that does not run on a desktop, does not draw a tab strip, and never expects a human to look at it. It runs entirely inside V8 isolates on Cloudflare Workers, and it exists for one audience: agents that read the web programmatically.
The problem: Chromium was never designed to be a fleet
Browser automation today is a rented desktop browser. Every agent that opens a page pays for a full Chromium process — a renderer, a compositor, a GPU pipeline, and hundreds of megabytes of resident memory — to produce, in most cases, a screenshot or a block of extracted text.
At one agent, that overhead is invisible. At a thousand concurrent page reads, it is the entire bill. The architecture optimizes for something agents do not need: pixel-perfect fidelity at interactive latency for a person waiting in front of a screen.
What changed: a browser decomposed into Workers
Kitesurf splits the browser into components that map onto the Workers platform rather than onto an operating system:
- Engine Worker — exposes the Chrome DevTools Protocol over WebSocket and HTTP, and holds session state. It is the only stateful piece.
- PageScript — spins up a long-lived isolate per page and per iframe using Dynamic Workers. HTML is parsed with Blitz, CSS with Stylo (Firefox's CSS engine), and JavaScript and WebAssembly execute in-isolate. Because Workers do not permit
eval(), dynamic evaluation is handed to the Boa JavaScript engine. - PageRenderer — turns the computed page into pixels with
blitz-paint, rasterizes to a buffer, and returns JPEG, PNG, or PDF. It is called statelessly over the Workers RPC system. - SandboxOutbound — a single network boundary that enforces CORS, browser headers, response filtering, and per-page cookie isolation.
Cloudflare reports the engine passes more than 215,000 Web Platform Tests.
The numbers that matter
Medians across five runs over a 14-URL corpus, compared against Chromium:
| Task | Kitesurf | Chromium | | --- | --- | --- | | CPU, screenshot | 380 ms | 1,173 ms | | CPU, HTML extraction | 229 ms | 877 ms | | Memory, screenshot | 57.8 MiB | 271.0 MiB | | Memory, HTML extraction | 39.4 MiB | 273.7 MiB | | Wall time, screenshot | 1,148 ms | 637 ms |
Roughly 3–7× less CPU and memory — and 1.7–1.8× more wall-clock time. That trade is the whole design.
Trying it
Existing Browser Run endpoints accept a browser=kitesurf parameter, so a Puppeteer, Playwright, or raw CDP client switches engines without a rewrite:
curl -X POST 'https://api.cloudflare.com/client/v4/accounts/<ACCOUNT_ID>/browser-run/screenshot?browser=kitesurf' \
-H 'Authorization: Bearer <API_TOKEN>' \
-H 'Content-Type: application/json' \
-d '{"url": "https://example.com"}' \
--output screenshot.pngThe same endpoint works as an MCP browser tool by pointing a Chrome DevTools MCP server at the CDP socket:
{
"mcp": {
"kitesurf": {
"type": "local",
"command": [
"npx", "-y", "chrome-devtools-mcp@latest",
"--wsEndpoint=wss://api.cloudflare.com/client/v4/accounts/<ACCOUNT_ID>/browser-run/devtools/browser?browser=kitesurf",
"--wsHeaders={\"Authorization\":\"Bearer <API_TOKEN>\"}"
],
"enabled": true
}
}
}Where it does not fit
Kitesurf does not play video, does not implement WebGL, and does not negotiate the TLS-fingerprint bot challenges that many sites use as a gate. It is not built for persistent multi-minute authenticated sessions, and it has no extensions, tabs, themes, or device sync. Anything that depends on those still needs real Chromium. It is in free beta with per-account limits, and Cloudflare has said it plans to open-source the engine once it matures.
Takeaway
The useful shift here is which metric an agent platform is optimized against. When a person is waiting, latency wins. When a fleet is reading the web, cost per page wins — and a browser that costs a seventh of the memory changes what is affordable to build. Kitesurf lands beside the other half of the same idea: making sites legible to agents in the first place, as covered in WebMCP: Turn Your Website Into Agent Tools.
Primary source: Introducing Kitesurf — Cloudflare Blog