Cloudflare has released Kitesurf, a stateless web browser built specifically for AI agents. It runs entirely in V8 isolates on Cloudflare Workers, with no Chromium underneath. Browser engines like Chromium were built for humans, and their memory and compute overhead makes one-browser-per-agent prohibitively expensive. Agents do not need tabs, extensions, or pixel-perfect 60-fps rendering. They need machine-readable content, low token overhead, scalability, and isolation against threats like prompt injection. Kitesurf drops the human-facing parts and keeps what models use. It already passes 215,000+ Web Platform Tests and is available now, free while in beta, through Browser Run.
Is It Deployable
Yes, as a free beta in Browser Run, behind per-account limits. Treat it as production-adjacent: strong for compatible sites and one-shot tasks, with Chromium as the fallback for complex pages. Adoption cost is minimal — existing Puppeteer, Playwright, and MCP clients work by adding a single browser=kitesurf parameter.
- Company levels: Startups and indie agent builders benefit most from the 3–7× lower CPU and memory footprint. Mid-market SaaS and enterprises already on Cloudflare Workers can switch selected workloads with one parameter.
- Industries: AI agent platforms, web data extraction, SaaS automation, competitive monitoring, PDF/document generation, and search/RAG ingestion pipelines.
- Applications: Agent web browsing, screenshots, HTML extraction, PDF rendering, and bursty one-shot Quick Actions.
- Potential customers: AI engineers building browser-using agents, platform engineers scaling automation fleets, data engineers and data scientists running extraction jobs, and technical founders tracking per-session infrastructure costs.
- Not yet: Video, WebGL, TLS-fingerprint bot challenges, and long authenticated stateful sessions — keep those on the Chromium default.
Kitesurf splits the browser into isolated Workers components. The Engine is the only public-facing piece. It speaks the Chrome DevTools Protocol (CDP) over WebSocket plus HTTP REST, and stores each session’s state. Every other component is stateless and disposable.
PageScript is built on Dynamic Workers. Each page or out-of-process iframe gets its own long-lived isolate with a clean globalThis and DOM. HTML and CSS parsing use Blitz, a modular Rust rendering engine, and Stylo, Firefox’s CSS parser. Because Workers does not support native eval, occasional eval calls run through Boa JS, a Rust ECMAScript engine, a runtime on top of a runtime.
PageRenderer rasterizes the computed scene into JPEG/PNG or PDF using blitz-paint and Parley for text shaping. A dedicated SandboxOutbound worker is the only component allowed to touch the network. It enforces CORS, injects browser-shaped headers, keeps per-page cookie jars, and returns a 403 for anything violating policy.
Benchmarks: 3–7× Cheaper, ~1.7–1.8× Slower
WPT coverage grows by hundreds of passing tests weekly. On Cloudflare’s 14-URL corpus (medians of five Quick Action runs), Kitesurf used 380 ms CPU per screenshot vs 1,173 ms for Chromium (3.1× less) and 229 ms vs 877 ms for HTML extraction (3.8× less). Memory dropped from 271.0 MiB to 57.8 MiB for screenshots (4.7×) and from 273.7 MiB to 39.4 MiB for extraction (7.0×). Chromium remains faster on wall time: Kitesurf is 1.8× slower on screenshots and 1.7× slower on extraction, mostly in rasterization and image encoding. Since memory and CPU drive the bill, the trade favors bursty agent workloads. It also runs Doom.


















