Chromium was built to keep a human happy across fifty tabs — GPU-accelerated scrolling, extension APIs, sync, pixel-perfect anti-aliasing. An AI agent taking a screenshot or scraping HTML needs none of that, and yet every headless-browser call for agent automation has been paying Chromium's full memory and CPU bill anyway. On August 6, 2026, as part of its "Agents Week", Cloudflare shipped Kitesurf — a browser engine written from scratch in Rust, compiled to WebAssembly, that runs entirely inside Cloudflare Workers V8 isolates. No Chromium binary anywhere in the stack.
The announcement, by Celso Martinho, Ruskin Constant, Rui Figueira, and Luís Duarte, is refreshingly honest about the trade-off: Kitesurf is not faster than Chromium. It's cheaper. For AI agents that fire off thousands of short-lived page loads rather than one long human session, cheaper is usually the number that matters.
TL;DR
| Question | Answer |
|---|---|
| What is it? | A Rust/Wasm browser engine running inside Cloudflare Workers V8 isolates, exposing the Chrome DevTools Protocol (CDP) |
| Is it faster than Chromium? | No — about 1.7-1.8x slower wall-clock. It wins on CPU (3.1-3.8x less) and memory (4.7-7.0x less) |
| Does my Playwright/Puppeteer code need to change? | No — add browser=kitesurf to the existing Browser Run CDP endpoint |
| Is it free? | Yes, free during beta via Browser Run, behind per-account limits |
| Is it open source? | Not yet — Cloudflare says it will open source Kitesurf "once we're ready" |
| What doesn't work yet? | Video, WebGL, bot-challenge/TLS fingerprint handshakes, long authenticated sessions |
| What does work? | TodoMVC (vanilla/React/Vue/Angular/Preact), Wikipedia, Hacker News, the Cloudflare Blog, most of the Cloudflare dashboard — even runs Doom |
What is Kitesurf and how is it different from headless Chromium?
Headless Chromium — whether you run it yourself or through a hosted service like Browserbase (covered in explainx.ai's Browserbase skills guide) — is still the full browser: process isolation via separate OS processes, a GPU compositor, an extension system, cookie/sync infrastructure. None of that is free, and agents rarely touch most of it.
Kitesurf throws Chromium out entirely and rebuilds only the parts an agent uses:
- Written in Rust, compiled to WebAssembly via
wasm-bindgen— Cloudflare deliberately avoided Emscripten because its heavy C/C++ emulation layer would have reintroduced the overhead Kitesurf exists to remove. - Inspired by "obscura," a headless Rust engine built for AI automation with "no Chrome, no Node.js, no dependencies." Cloudflare used an AI agent to port an obscura proof-of-concept to Workers, then had the team build it out over roughly 12 weeks starting with a first commit in May 2026.
- Conformance-tested against Web Platform Tests (WPT) — over 215,000 WPT tests passing and growing, plus Puppeteer-driven integration and visual-regression tests comparing Kitesurf's output against real Chromium on real websites.
The three components
| Component | Job |
|---|---|
| Engine | The only public-facing piece. Handles CDP over WebSocket/HTTP REST, stores all session state — everything else is stateless |
| PageScript | One long-lived isolate per page/OOPIF (out-of-process iframe), spun up via Cloudflare's new Dynamic Workers feature. Parses HTML/CSS with Blitz (modular Rust rendering engine) and Stylo (Firefox's Rust CSS parser), runs JS/Wasm in-isolate, and routes eval() through Boa JS (a Rust ECMAScript engine) since Workers doesn't yet support native eval |
| PageRenderer | Rasterizes the page "scene" into PNG/JPEG/PDF image buffers using blitz-paint and Parley for text shaping, glyphs, and fonts |
Network requests don't hit the internet directly from PageScript — every fetch is centralized through a single SandboxOutbound worker (enforced through the same Dynamic Workers mechanism), which enforces CORS, injects browser-shaped headers, isolates cookies per page, and returns a 403 for anything that fails policy. Cross-isolate calls — like Engine invoking renderFrame() on PageRenderer — go over Workers' built-in RPC system. Because PageRenderer is stateless, Engine can kill and relaunch it on any failure without losing session data, which lines up with the same "isolation + statelessness" design principles Cloudflare used across @cloudflare/computer and Cloudflare OS this same Agents Week: treat every page load as untrusted input, give it a fresh session, and degrade to a blank frame on failure rather than a dead browser session.
Is Kitesurf actually faster than Chromium?
Be honest with the numbers here, because Cloudflare was. This is the median of five Browser Run benchmark runs across a 14-URL corpus, Kitesurf versus a warm Chromium pool:
| Metric | Kitesurf | Chromium | Kitesurf advantage |
|---|---|---|---|
| CPU — screenshot | 380ms | 1,173ms | 3.1x less CPU |
| CPU — HTML extraction | 229ms | 877ms | 3.8x less CPU |
| Memory — screenshot | 57.8 MiB | 271.0 MiB | 4.7x less memory |
| Memory — HTML extraction | 39.4 MiB | 273.7 MiB | 7.0x less memory |
| Wall time — screenshot | 1,148ms | 637ms | 1.8x slower |
| Wall time — HTML extraction | 820ms | 472ms | 1.7x slower |
Chromium's JIT compiler still wins the stopwatch — Cloudflare attributes most of the wall-clock gap to rasterization and image-encoding overhead in Kitesurf's newer render pipeline. But CPU and memory are the actual cost drivers when you're launching a browser instance per agent task at scale, and that's where Kitesurf wins by 3-7x. For a single interactive session, Chromium is still the better choice. For thousands of short-lived agent page loads running in parallel, the memory line is the one that determines your bill.
What can't Kitesurf do yet?
This is a beta, and Cloudflare is upfront about the gaps rather than burying them:
- No video playback
- No WebGL
- No bot-challenge or TLS fingerprint handshakes — sites gating on Chromium-specific fingerprints will not pass
- No long authenticated sessions requiring persistent state — Kitesurf's fresh-session-per-page isolation model works against you here
For any of these, Cloudflare's own recommendation is to fall back to Browser Run's default Chromium — Kitesurf isn't meant to replace it everywhere yet, just to be the cheap default for the high-volume agent work (screenshots, HTML extraction, DOM inspection) that doesn't need those features. Rendering fidelity is confirmed today on TodoMVC across five frameworks, Wikipedia, Hacker News, the Cloudflare Blog, and most of the Cloudflare dashboard — and as a compatibility flex, it runs Doom via silentspacemarine.com.
How do I use Kitesurf with Playwright, Puppeteer, or MCP today?
Kitesurf is free during beta through Browser Run, behind per-account limits, and speaks the exact same CDP endpoint Browser Run already exposes. The only change is a query parameter: browser=kitesurf.
MCP / Opencode client config:
{
"mcp": {
"browser-run": {
"type": "remote",
"url": "wss://api.cloudflare.com/client/v4/accounts/<ACCOUNT_ID>/browser-run/devtools/browser?browser=kitesurf"
}
}
}
Quick Actions screenshot endpoint (curl):
curl -X POST \
"https://api.cloudflare.com/client/v4/accounts/<accountId>/browser-run/screenshot?browser=kitesurf" \
-H "Authorization: Bearer <API_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com"}'
Because Kitesurf speaks CDP, it's a drop-in target for Playwright, Puppeteer, chrome-remote-interface, or any MCP-based agent that already talks to a browser — including the kind of skill-driven browsing setups covered in explainx.ai's Browserbase skills guide. Cloudflare also ships a public playground with Chrome DevTools injected — console, network, DOM inspection, and a Memory panel that shows per-isolate/frame WebAssembly footprint, useful for watching the memory advantage directly rather than taking the benchmark table on faith.
Is Kitesurf open source?
Not at launch. Cloudflare has said only that it plans to open source Kitesurf "once we're ready," so customers can self-host their own version — echoing the open-source posture of @cloudflare/computer and Cloudflare OS, both released open during the same Agents Week. No repository, license, or timeline accompanied the August 6, 2026 announcement, so treat "coming eventually" as exactly that until Cloudflare publishes it.
What does this mean for AI agent browsing costs at scale?
The honest framing from Cloudflare's own post is the right one to keep: Kitesurf is not a faster browser, it's a cheaper one. If your agent workload is a handful of long, interactive sessions — filling out forms behind a login wall, watching video, running WebGL-heavy dashboards — Chromium via Browser Run's default is still the correct tool, and will stay faster in wall-clock terms.
But most agent browsing at scale looks nothing like that. It's a burst of short-lived, parallel, disposable page loads — screenshot this page, extract this table, check whether this element rendered — where memory and CPU, not latency, are what shows up on the bill. That's the workload Kitesurf's isolate-per-page architecture, Dynamic Workers, and RPC-based stateless components were built for, and it's the same bet Cloudflare is making across the rest of Agents Week — WebMCP letting sites expose tools to browser agents, Cloudflare Wallets giving agents spending identity, and now a browser engine sized for how agents actually browse rather than how humans do.
Related on explainx.ai
- Cloudflare Wallets: programmable payments for AI agents — the same Agents Week, the payments layer
- Cloudflare Computer: agents need isolates, not just containers — the runtime pattern Kitesurf's PageScript isolates extend
- Cloudflare OS: open-source platform for agents, apps, and work — the same Agents Week's workspace product
- Cloudflare Temporary Accounts for AI agents — deploying Workers without signup
- Cloudflare Monetization Gateway: x402 for APIs and MCP tools — the pay side of the same agentic-internet push
- Browserbase skills for Claude Code — hosted Chromium automation, for comparison
- WebAssembly complete guide — the compilation target Kitesurf's Rust engine runs on
- What is MCP? Model Context Protocol complete guide — the protocol tying Kitesurf, WebMCP, and agent tool-calling together
Sources
- Cloudflare Blog — Introducing Kitesurf: the agent-first browser that runs in V8 isolates on Cloudflare Workers — Celso Martinho, Ruskin Constant, Rui Figueira, Luís Duarte, August 6, 2026
- Welcome to Agents Week — Cloudflare
- Browser Run — Cloudflare Developers docs
- Web Platform Tests
Specs, benchmark figures, and beta limitations reflect Cloudflare's August 6, 2026 Kitesurf announcement. Kitesurf is in active beta — check the Cloudflare Blog and Browser Run docs for current WPT coverage, CDP support, and open-source availability before production use.
