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:

bash
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.png

The same endpoint works as an MCP browser tool by pointing a Chrome DevTools MCP server at the CDP socket:

json
{
  "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

Kitesurf: Cloudflare's Browser Built for AI Agents · bahashwan.dev