Cloudflare has announced the open-source release of the Kitesurf web browser, designed for use by AI agents and bots. Kitesurf supports HTML parsing, CSS styling, JavaScript execution, and screenshot generation, while eliminating the complexities and excesses geared towards humans that are useless for bots. The removal of features such as perfect rendering and extension support has significantly reduced CPU load and memory consumption. The code is written in Rust and TypeScript and is distributed under the Apache 2.0 license.
Instead of bulk browser engines, Kitesurf uses open libraries written in Rust: Blitz for HTML parsing, DOM manipulation, page layout, and rendering; Stylo (used in Firefox) for CSS processing; Boa for JavaScript execution and WebAssembly support; Linebender for handling text and 2D graphics; Krilla for generating output in PDF format.
Compared to using the Chromium engine, Kitesurf has shown a 3.1 times reduction in CPU load and a 4.7 times reduction in memory consumption when creating screenshots, while HTML parsing sees reductions of 3.8 and 7 times respectively. However, the overall test execution time was found to be 1.7 to 1.8 times slower due to cold starts, rasterization, and encoding in JPEG/PNG.
Kitesurf successfully passes over 215,000 tests from the WPT (Web Platform Tests) suite, correctly rendering pages of typical websites such as Wikipedia, supporting various web frameworks (React, Vue, Angular, Preact), and is capable of running the game Doom, compiled into WebAssembly.
Among the limitations noted is the lack of support for video playback, WebGL, complex scripts for CAPTCHA validation, and prolonged authenticated sessions requiring state retention.
The browser consists of three components:
- An engine for session management, handling client connections, and supporting the CDP (Chrome DevTools Protocol);
- PageScript for isolated web page processing and JavaScript execution;
- PageRenderer for rendering pages, generating screenshots, and exporting to PDF.
The components are isolated from one another and have access only to the necessary resources. Operations are performed in a Stateless mode without state retention.

Kitesurf is designed to launch using the Cloudflare Workers platform (the open runtime workerd is available) with compilation to WebAssembly, but it can be used not only in Cloudflare's infrastructure but also on local systems with Node.js. To manage and automate interactions with Kitesurf, it is recommended to use the Web API via WebSocket, the command-line interface, and the CDP protocol compatible with the Puppeteer library.
Source: opennet.ru
