Product Introduction
Definition: Kitesurf is Cloudflare’s stateless, agent-first browser engine that runs entirely on top of Cloudflare Workers. Unlike traditional browser automation tools that package a full desktop browser engine such as Chromium, Kitesurf is purpose-built for AI agents, large language model (LLM) tooling, and programmatic web interaction. It supports screenshot capture, HTML extraction, PDF generation, and browser automation through both Quick Actions and the Browser Run CDP endpoint. Kitesurf is designed to be ephemeral, fully isolated, and highly scalable, making it a software-rendered, WebAssembly-driven browser alternative for cloud-native AI workloads.
Core Value Proposition: Kitesurf exists to solve the cost, memory, and CPU bottlenecks associated with running headless Chromium for AI-driven browser tasks. Its core value is delivering a dramatically lighter browser engine that reduces CPU usage by up to 3.8× and memory usage by up to 7× compared to Chromium for common agentic tasks, while still maintaining strong web standards conformance—passing over 235,000 Web Platform Tests (WPT) subtests. For AI agents, automation pipelines, and bursty workloads, Kitesurf optimizes for token count, context windows, scalability, and infrastructure cost rather than human-facing browser features like tabs, themes, or pixel-perfect rendering.
Main Features
Stateless, Ephemeral Browser Architecture: Kitesurf is fundamentally stateless, meaning every browser session exists only for the duration of a single task. This architecture is designed for one-shot Quick Actions and AI agent workflows where persistence is unnecessary and isolation is paramount. Because Kitesurf does not maintain long-running session state, every request can be spun up on demand, executed, and torn down immediately. This makes it ideal for bursty, AI-driven workloads that need scale without the overhead of managing pools of persistent Chromium instances. The browser runs entirely on Workers, which allows Cloudflare to distribute execution across its edge network and provide isolated execution per task.
High-Efficiency Screenshot and HTML Extraction Engine: Kitesurf is optimized for two core agentic operations: screenshots and HTML extraction. In benchmark tests across a 14-URL corpus, Kitesurf used only 380 ms of CPU per screenshot versus 1,173 ms for Chromium, and 229 ms for HTML extraction versus 877 ms. Memory usage was equally dramatic: 57.8 MiB per screenshot versus 271.0 MiB for Chromium, and 39.4 MiB versus 273.7 MiB for HTML extraction. This efficiency stems from Kitesurf’s software-based rendering pipeline, which avoids the heavyweight process and thread model of a full browser engine. The trade-off is slightly slower wall time—1.8× slower for screenshots and 1.7× slower for HTML extraction—because a cold software renderer cannot match the just-in-time compiled speed of a warm Chromium pool.
Web Platform Tests (WPT) Conformance and Standards Coverage: Kitesurf is validated against the official Web Platform Tests suite, the same conformance suite used to measure W3C web standards compliance. As of the latest run, it passes over 235,000 subtests, with coverage expanding rapidly. For AI agents that need to read, parse, and manipulate real-world web pages, Kitesurf provides strong coverage in critical areas: DOM at 97%, HTML at 96%, Selection at 99%, SVG at 97%, Encoding at 99%, CORS at 95%, XHR at 95%, and URL at 83%. This ensures that most modern web pages—including TodoMVC variants, Wikipedia, Hacker News, and the Cloudflare Blog—render and expose their DOM correctly for agentic extraction and automation.
Full CDP and Quick Actions Integration with
browser=kitesurf: Kitesurf is available through the Browser Run CDP endpoint, which means existing tooling built for Puppeteer, Playwright, chrome-remote-interface, or any MCP-compatible AI agent can use Kitesurf by simply appendingbrowser=kitesurfto the WebSocket endpoint URL. For Quick Actions, the same parameter can be added to the screenshot or HTML extraction endpoints. This makes Kitesurf a drop-in replacement for use cases where the lower CPU and memory footprint matters more than pixel-perfect rendering. Example configuration for an MCP client is supported throughnpx chrome-devtools-mcpwith a custom--wsEndpointURL and authorization headers.Interactive Public Playground with DevTools Inspection: The Kitesurf public playground provides a zero-code way to test how Kitesurf renders any URL. It injects Chrome DevTools into the UI, allowing developers to inspect expanded DOM elements, read console messages, and monitor network activity in real time. The Memory panel reports the WebAssembly footprint of each isolate, including frames, which enables developers to quantify exactly how much memory Kitesurf consumes for a given page. This is particularly valuable for comparing resource usage across different sites and for debugging HTML extraction or screenshot workflows before deploying them in production.
Problems Solved
Pain Point: Traditional headless Chromium browsers are extremely resource-intensive. Each Chromium instance consumes hundreds of megabytes of memory and significant CPU, making it expensive and slow to scale for AI agents. For teams running large-scale web scraping, content extraction, or screenshot pipelines, the infrastructure cost of maintaining warm pools of Chromium browsers can become prohibitive. Kitesurf solves this by reducing CPU and memory consumption by 3–7× for common agentic tasks, enabling more concurrent sessions per machine and significantly lowering the compute cost per task.
Target Audience: Kitesurf is designed for several distinct professional personas:
- AI and LLM Engineers: Teams building autonomous agents that need to navigate web pages, extract clean HTML, and capture visual context without the overhead of a full browser engine.
- Automation Developers: Professionals who build one-shot Quick Action pipelines for screenshots, PDF generation, and DOM extraction, and who want a lighter alternative to Chromium for high-volume workloads.
- Platform and Infrastructure Engineers: Teams responsible for cost optimization and scalability of browser automation services. Kitesurf’s small memory footprint allows these engineers to pack more sessions into existing infrastructure.
- Developers Using MCP or CDP Tooling: Anyone already using Puppeteer, Playwright, chrome-remote-interface, or MCP clients can adopt Kitesurf by simply changing the
browserparameter, with no code changes required.
Use Cases: Kitesurf is essential for specific scenarios where low resource usage and high concurrency are more important than pixel-perfect page rendering:
- Bulk HTML extraction: Automating thousands of pages per minute for LLM training data, content aggregation, or SEO analysis, where each page’s DOM is more important than its visual layout.
- One-shot screenshot generation: Capturing screenshots of pages for previews, social cards, or documentation, where slight rendering differences from Chromium are acceptable.
- AI agent web navigation: Enabling agents to visit a page, read its content, and take action based on the rendered DOM or console output, without the memory cost of spinning up a full browser.
- Bursty AI-driven workloads: Handling unpredictable spikes in browser automation requests that require rapid scaling and full isolation between sessions. Kitesurf’s stateless ephemeral design is optimal for short-lived tasks that can be killed immediately after execution.
- Browser Playground testing: Using the public playground to check whether a specific site is compatible with Kitesurf before integrating it into a production workflow.
Unique Advantages
Differentiation: Kitesurf is differentiated from all other browser automation products by its architecture: it is not a smaller Chromium, but an entirely different browser engine built specifically for software rendering and agentic workloads. Chromium’s advantages are wall time and pixel-perfect rendering, but Kitesurf wins on CPU, memory, and cost—metrics that directly affect cloud infrastructure bills. The benchmark comparison shows 3.1× less CPU for screenshots, 3.8× less CPU for HTML extraction, 4.7× less memory for screenshots, and 7.0× less memory for HTML extraction. The only area where Chromium wins is wall time—1.8× and 1.7× faster, respectively—because a warm Chromium pool benefits from JIT compilation, whereas Kitesurf uses a cold software renderer. This trade-off is acceptable for AI agents that prioritize token count, context window efficiency, and horizontal scalability over absolute speed of a single request.
Key Innovation: Kitesurf’s key innovation is the complete removal of human-centric browser features in favor of an agent-optimized execution model. It does not ship tabs, themes, extensions, GPU acceleration, video playback, or WebGL support. Instead, the browser is distilled to the essential primitives that AI agents need: DOM parsing, HTML extraction, screenshot generation, and network activity monitoring. Running on Cloudflare Workers with WebAssembly isolates, Kitesurf is ephemeral by default—each isolate exists only for the duration of the task, which provides natural isolation, automatic garbage collection, and an architecture that charges only for actual compute. This makes it fundamentally different from persistent browser pools, which require idle resources and state management.
Frequently Asked Questions (FAQ)
Is Kitesurf compatible with Puppeteer and Playwright? Yes. Kitesurf is accessible through the Browser Run CDP endpoint by adding the
browser=kitesurfparameter to the WebSocket URL. Existing Puppeteer, Playwright, chrome-remote-interface, and MCP-based AI agent tools can connect to Kitesurf without rewriting logic, as long as they rely on CDP and accept the trade-off of slightly slower wall time and non-pixel-perfect rendering.How much CPU and memory does Kitesurf save compared to Chromium for screenshot and HTML extraction tasks? Benchmarks show Kitesurf reduces CPU usage by 3.1× for screenshots and 3.8× for HTML extraction compared to Chromium. Memory usage is reduced by 4.7× for screenshots and 7.0× for HTML extraction. A single screenshot with Kitesurf consumes around 57.8 MiB of memory and 380 ms of CPU time, while HTML extraction uses only 39.4 MiB and 229 ms. Wall time is slower—approximately 1.8× for screenshots and 1.7× for HTML extraction—due to the cold software renderer versus Chromium’s warm JIT-compiled pool.
Does Kitesurf support WebGL or video playback? No. Kitesurf does not support video playback or WebGL rendering. These features are explicitly excluded because they are human-oriented and resource-intensive. For sites that require WebGL or video, Cloudflare recommends using Browser Run’s default Chrome-based browser.
Can Kitesurf handle sites with bot challenges or long-running authenticated sessions? No. Kitesurf is stateless and ephemeral, so it cannot maintain long-running authenticated sessions or persistent state. It also cannot negotiate bot-challenge handshakes that require real TLS fingerprints. For those cases, the Chrome-powered Browser Run default browser is the appropriate choice.
What is the best way to test whether a website works correctly with Kitesurf? The easiest way is to use the public Kitesurf playground at kitesurf.cloudflare.app. You can type in any URL to see how Kitesurf renders the page, inspect the DOM, read console messages, and monitor network activity. The playground’s Memory panel shows the WebAssembly footprint of each isolate, helping you understand resource consumption. Alternatively, you can send a Quick Action request with
browser=kitesurfin the endpoint URL to test screenshot or HTML extraction programmatically.
