Kitesurf
Cloudflare's stateless, highly scalable web browser built entirely on Workers, designed specifically for AI agents to render pages, take screenshots, extract HTML, and generate PDFs.
At a Glance
About Kitesurf
Kitesurf is Cloudflare's new browser built entirely on top of Cloudflare Workers, announced as part of Cloudflare's Agents Week. It is designed specifically for the Agentic Cloud — giving AI agents a real browser without the overhead of Chromium — and is available for free while in beta inside Cloudflare's Browser Run product.
What It Is
Kitesurf is a stateless, highly scalable, and cost-effective headless browser engine that runs as a set of Cloudflare Workers. Unlike traditional browser engines such as Chromium, which were built for human users, Kitesurf is optimized for what AI agents actually need: low memory consumption, low CPU cost, structured content extraction, and massive horizontal scalability. It speaks the Chrome DevTools Protocol (CDP), so any tool that can drive Chrome — Puppeteer, Playwright, chrome-remote-interface, or any MCP-compatible AI agent — can drive Kitesurf without modification.
Architecture: Three Workers, One Browser
The Cloudflare blog post describes Kitesurf's architecture as three cooperating Workers:
- Engine: The only public-facing component. It handles the CDP WebSocket and HTTP REST APIs, stores session state, and coordinates the other components. All other components are stateless.
- PageScript: Uses Cloudflare's Dynamic Workers to spin up a long-lived isolate per page or out-of-process iframe. It parses HTML and CSS using Blitz and Stylo (Firefox's CSS parser, both written in Rust), then runs JavaScript and WebAssembly inside the isolate. For
eval()calls — which Workers don't natively support — Kitesurf runs Boa JS, an ECMAScript engine written in Rust, as a nested runtime. - PageRenderer: Generates pixels from the computed page objects using blitz-paint and Parley for text shaping. It fetches fonts and images from Static Assets, rasterizes everything into an image buffer, and returns JPEG, PNG, or PDF output to the Engine via Workers RPC.
A fourth component, SandboxOutbound, handles all outbound network requests. Nothing else can touch the network directly — enforced by Dynamic Workers — giving Kitesurf strict per-page cookie isolation and CORS enforcement.
Performance vs. Chromium
According to Cloudflare's published benchmarks across a 14-URL corpus, Kitesurf uses significantly less CPU and memory than Chromium for common agentic tasks:
- Screenshot: 3.1× less CPU, 4.7× less memory than Chromium
- HTML extraction: 3.8× less CPU, 7.0× less memory than Chromium
Chromium is faster on wall-clock time (approximately 1.7× faster) because its JIT compiler benefits from warm caches. Kitesurf's blog post notes that most of the wall-time gap comes from rasterization and JPEG/PNG encoding, which the team is actively optimizing.
Web Standards Coverage
The Cloudflare blog post states that Kitesurf passes 215,000+ Web Platform Tests (WPT) at launch, with hundreds of new passing tests added each week. Key areas with good coverage include CSS, DOM, HTML, selection, SVG, and XHR. The team uses a combination of WPT conformance testing and visual regression testing against real websites (comparing Kitesurf output to Chromium output using Puppeteer) to track compatibility.
Kitesurf currently renders pages like TodoMVC (vanilla JS, React, Vue, Angular, Preact), Wikipedia, Hacker News, the Cloudflare Blog, and much of the Cloudflare dashboard. It does not yet support video playback, WebGL, bot-challenge TLS fingerprinting, or long authenticated sessions requiring persistent state.
Connecting Agents via MCP and CDP
Kitesurf exposes a CDP WebSocket endpoint. Any agent that speaks CDP can connect to it directly. The playground at kitesurf.cloudflare.app provides a public endpoint (wss://kitesurf.cloudflare.app/devtools/browser) that works without an API token. For production use via Browser Run, agents add browser=kitesurf to the existing Browser Run CDP endpoint and authenticate with a Cloudflare API token.
The chrome-devtools-mcp package (open source, Apache 2.0, maintained by the ChromeDevTools organization) acts as the MCP bridge: it connects to the Kitesurf WebSocket endpoint and exposes browser tools to MCP clients such as Claude Code, Cursor, Gemini CLI, VS Code Copilot, OpenCode, and others.
Update: Launch and Current Status
Kitesurf was announced publicly in August 2026 as part of Cloudflare's Agents Week. The Cloudflare blog post notes the project started in May 2026 — approximately 12 weeks before the announcement. It is available for free while in beta inside Browser Run, behind per-account limits. The team states it plans to open-source Kitesurf once ready, with the goal of letting customers deploy their own version on their own Cloudflare accounts. Active development areas include broader CDP coverage, rendering fidelity improvements for screenshots and PDFs, additional WPT test coverage, and ongoing CPU/memory efficiency work.
Community Discussions
Be the first to start a conversation about Kitesurf
Share your experience with Kitesurf, ask questions, or help others learn from your insights.
Pricing
Beta (Free)
Kitesurf is available for free while in beta inside Cloudflare Browser Run, behind per-account limits.
- Stateless headless browser on Cloudflare Workers
- Screenshot, PDF, and HTML extraction
- CDP WebSocket endpoint
- Public playground at kitesurf.cloudflare.app
- MCP integration via chrome-devtools-mcp
Capabilities
Key Features
- Stateless headless browser running entirely on Cloudflare Workers
- Chrome DevTools Protocol (CDP) WebSocket and HTTP REST API
- Screenshot capture (PNG/JPEG)
- PDF generation
- HTML extraction
- Chrome DevTools injected in playground UI for DOM inspection, console messages, and network activity
- Memory panel reporting WebAssembly footprint per isolate
- Per-page cookie isolation and CORS enforcement via SandboxOutbound worker
- Dynamic Workers-based page isolation for every page and OOPIF
- Rust-based HTML/CSS parsing via Blitz and Stylo
- JavaScript and WebAssembly execution per page isolate
- Eval support via Boa JS ECMAScript engine
- Workers RPC for inter-component communication
- Compatible with Puppeteer, Playwright, chrome-remote-interface, and MCP clients
- MCP integration via chrome-devtools-mcp package
- Public playground with no API token required
- 215,000+ Web Platform Tests passing at launch
- 3-7x lower CPU and memory usage vs Chromium for agentic tasks
