Back to Blog

Kitesurf, Obscura or Chromium: Which Browser Will Rule the Web in 2026?

On August 6, 2026, Cloudflare released Kitesurf — an agent browser built on Rust and Workers, which uses 3-7 times less CPU and memory than Chromium. The open-source Obscura gathered 22 thousand stars on the same idea. Let's break it down by the facts: where lightweight engines win, why they fail the bot challenge, and who owns your outgoing IP.

📅August 27, 2026
Kitesurf, Obscura or Chromium: Which Browser Will Rule the Web in 2026?
```html

On August 6, 2026, Cloudflare released Kitesurf — a browser designed not for humans, but for agents. It does not use Chromium: the engine is built on Rust, compiled to WebAssembly, and operates entirely in V8 isolates on Workers. The company claims that for typical agent tasks, it consumes 3 to 7 times less CPU and memory than Chromium. Four months prior, the open-source Obscura — also Rust, also "for agents" — garnered over 22,000 stars on GitHub, and Cloudflare openly acknowledged that the first prototype of Kitesurf was a port of Obscura to Workers.

The market for automation engines has split: on one side are lightweight agent runtimes that save resources; on the other are heavy Chromium builds that can do everything, including passing anti-bot checks. Let's break down the facts about what each class actually provides and where savings end.

What criteria to compare

Engine benchmarks love to measure speed and memory, but for combat scraping and agents, four independent axes are important, and a win in the first says nothing about the others:

  • Startup cost — CPU and memory per page. This directly translates into the infrastructure bill when running thousands of parallel sessions.
  • Completeness of the web platform — how many modern websites render correctly. This is measured by coverage of Web Platform Tests (WPT).
  • Anti-bot pass rate — whether the session can survive a TLS handshake, JS challenge, and behavioral check.
  • Network exit control — can you manage which IP and ASN the site sees the request from.

Kitesurf: savings versus completeness

Kitesurf is built from modules: rendering and parsing HTML/CSS on Blitz, the CSS engine Stylo from Firefox, the JS runtime Boa on Rust, and text shaping through Parley. According to the company, development took 12 weeks.

Cloudflare's own benchmark numbers against Chromium:

  • CPU for screenshot — 380 ms versus 1173 ms (3.1 times less);
  • CPU for HTML extraction — 229 ms versus 877 ms (3.8 times less);
  • memory for screenshot — 57.8 MiB versus 271 MiB (4.7 times less);
  • memory for HTML extraction — 39.4 MiB versus 273.7 MiB (7 times less);
  • however, in execution time, Kitesurf is slower: 1148 ms versus 637 ms for the screenshot and 820 ms versus 472 ms for HTML — by 1.7 to 1.8 times.

This is an honest trade-off: you pay with latency but gain the ability to maintain many more parallel sessions on a single machine. By web standards, the engine holds up well for its age — at the time of the announcement, it had passed around 215,000 WPT sub-tests, and the documentation now states over 235,000. Coverage by sections: DOM 97%, HTML 96%, Selection 99%, SVG 97%, Encoding 99%, CORS 95%, XHR 95%, URL 83%. Wikipedia, Hacker News, and typical SPAs render correctly.

Kitesurf connects in a familiar way: CDP endpoint (which means Puppeteer and Playwright), MCP for agents, REST endpoints for Quick Actions for screenshots and HTML extraction. Just add the parameter browser=kitesurf. The beta is free but has account limits; the source code is promised to be opened.

What Kitesurf cannot do — and it's stated in its own documentation

The list of limitations is short, but it covers the entire defense line of modern websites. Kitesurf does not support:

  • video playback;
  • WebGL rendering;
  • bot-challenge handshake with real TLS fingerprints;
  • long authenticated sessions requiring persistent state.

The third point is key. Cloudflare itself states: if the task hits a bot challenge, use regular Chromium in Browser Run. In other words, the company that implements these challenges on millions of sites honestly warns that its own lightweight browser cannot pass them. This is not a beta shortcoming but a consequence of architecture: the TLS fingerprint (JA3/JA4) is generated in the network stack, not in the renderer, and the Rust engine in the Workers isolate physically presents itself differently than real Chrome.

A side effect of the non-standard engine is uniqueness. Anti-bot scripts have been calibrated for years on the artifacts of Chromium: property order, error specifics, API timings. An engine that lacks these artifacts does not appear "cleaner" — it appears differently, and "differently" in anti-bot scoring costs more than "like everyone else." We have already discussed this effect in the review of stealth browsers of 2026: benchmarks for JS fingerprint cleanliness and results on live targets diverge because live targets consider a combination of signals.

Obscura: the same class, but on your server

Obscura is the leading open-source representative of the class. The repository was created on April 13, 2026, licensed under Apache-2.0, and by the end of August, it had over 22,000 stars. Inside is a real V8, outside — CDP, meaning it is also a drop-in replacement for headless Chrome for Puppeteer and Playwright.

The key architectural decision: Obscura has no layout and rendering pipeline; it does not render images at all. Hence the author's benchmark numbers — the median across 33 scenarios gives about 21 times the speed and around one-seventh the memory compared to headless Chrome. On continuous loading of React pages in four workers, it achieves 40 pages per second at 112 MB of memory versus 3 pages per second at 4.2 GB for Chrome. WPT coverage for the "core" (DOM, HTML, URL, fetch) is 83.3%, meaning 318,916 sub-tests out of 382,891.

The practical difference from Kitesurf is not in speed but in where all this runs. You deploy Obscura yourself — and decide through which network exit it operates. Kitesurf lives in someone else's network, and this brings us to the main point.

Who owns your outgoing IP

Everyone has written about CPU savings, but almost no one about network exit. Meanwhile, Kitesurf runs on Workers, meaning requests go out from Cloudflare's network, with its ASN. There is no control over the outgoing IP or the ability to connect your own proxy in Kitesurf's documentation. The neighboring Browser Rendering developers face the same issue: attempting to set an upstream proxy via proxyServer in BrowserContext fails with net::ERR_PROXY_CONNECTION_FAILED, and fixed dedicated egress addresses for Workers are not typically provided.

For Cloudflare's target scenario, this is fine: the agent browses open pages, takes screenshots, extracts HTML. But as soon as the target is even slightly protected, you get the worst possible combination of signals:

  • The IP belongs to a large cloud ASN, meaning it is inherently marked as server-based;
  • The TLS fingerprint does not match any real browser;
  • You cannot change either, as you do not control the network stack or the exit.

This situation explains why discussions about agents in 2026 increasingly shift from optimizing runtimes to the issue of legal and paid access — from signed agents to paid requests, as we discussed in our analysis of wallets for bots and HTTP 402. If a site does not let you in, the most economical engine in the world won't help: you simply cannot get a page that you are not granted access to.

What to choose for the task

Kitesurf — when the targets are open and numerous: monitoring public pages, extracting HTML for RAG indexing, mass screenshots, cheap agent workarounds for documentation. Plus, a free beta and no hassle with infrastructure. Do not take it where there is a login, anti-bot, or specific geo requirement.

Obscura — the same load profile, but when control is needed: your hosting, your network exit, your patches. Suitable as a workhorse for a parsing farm where the cost of a page is important, and the appearance of the page is not important at all. It works well with proxies because you manage the entire process.

Regular Chromium under Playwright or Puppeteer — when you need video, WebGL, complex authenticated sessions, and real rendering. Resource-intensive, but predictable.

Stealth builds of Chromium (Camoufox, nodriver, patchright, and from the latest, CloakBrowser, which has gained over 30,000 stars since February 2026) — when the target is protected and there are no other options. Resources are slightly higher than bare Chromium, but the main thing is preserved: a real network stack, through which you can insert the desired exit.

And the common denominator for the last three options: the engine determines how you appear at the browser level, while residential proxies determine how you appear at the network level. For open targets and internal tasks, datacenter addresses will suffice — they are cheaper and faster. For sites with real protection, the cost of a page is calculated not by megabytes of memory but by the share of successful responses.

Conclusion

Kitesurf and Obscura are an honest and, judging by the numbers, successful response to a real pain point: running Chromium for HTML extraction is indeed wasteful, and the report from Apify and The Web Scraping Club confirms this — 65.8% of specialists in 2025 used more proxies than the year before, and 58.3% increased their budget for them. Automation costs are rising, and a 3 to 7 times savings in memory is a significant argument.

But the savings work only until the first protected target. The lightweight engine cannot pass the bot challenge — this is stated in Cloudflare's own documentation. The cloud runtime does not allow control over the outgoing IP. Therefore, the agent stack of 2026 is built from two independent layers: a cheap engine for mass open pages and a full browser with a controlled network exit for everything else. Attempting to cover both layers with one tool ends either in overpaying for Chromium where Rust would suffice or zero conversion for a parser where IP was lacking.

```