Agent browsers fact-checked: what "10x faster" leaves out

Kitesurf, Lightpanda and Obscura promise to send AI agents across the web more cheaply than Chrome. We checked the vendors' numbers. The memory claims mostly hold up, but the speed and compatibility claims are much weaker. If your agent needs to click, log in or get past bot protection, you'll usually still need Chrome.

Analysis Nov 14, 2026 10 min read Original analysis by our editors
Illustrative image, AI-generated

What's at stake

AI agents like Meta's Muse or OpenAI's dots do their work in a browser. Usually that's a remote-controlled Chrome with no visible window, known as headless. But Chrome is built for humans and easily uses 300 MB of memory or more per session. Three projects promise a leaner alternative. Kitesurf comes from Cloudflare and has been open source since November 13, 2026. Lightpanda is a browser written in Zig that reached version 1.0 in October. Obscura is a Rust project that has only existed since April 2026. All three can be controlled via the Chrome DevTools Protocol (CDP), Chrome's remote-control interface, which tools like Puppeteer and Playwright also use. In principle, then, existing agent scripts can simply switch browsers.

The marketing numbers sound impressive, like "9x faster, 16x less memory." But every one of them comes from the vendors. We read their methodologies, recalculated the numbers and compared them with the only independent comparison available so far. In the interest of transparency: we did not run our own benchmarks for this article. Everything here is based on published data.

The three contenders at a glance

Kitesurf Lightpanda Obscura Headless Chrome
Language / JavaScript engine Rust → WebAssembly, V8 isolates, Boa for eval Zig, V8 Rust, V8 C++, V8
License Apache 2.0 (Stylo component: MPL-2.0) AGPL-3.0, contributions only with CLA Apache 2.0 BSD
Runs where? Cloudflare Workers only (locally via wrangler dev) Linux, macOS, Windows only via WSL2, no Alpine Linux, macOS, Windows x86_64 everywhere
Screenshots yes, not pixel-perfect no (no rendering engine) yes, own engine only added recently yes
GitHub stars 827 approx. 42,000 approx. 35,200 –

Kitesurf is closely related to Obscura. According to Cloudflare, the project began as an attempt to port Obscura to Workers with the help of an AI agent. Today it's built on Blitz (HTML, layout), Stylo (CSS, from the Firefox ecosystem) and Dynamic Workers. Each page runs in its own V8 isolate, a sandboxed mini-environment inside Cloudflare's servers.

Kitesurf: Light on memory, but slower

Cloudflare's benchmark page compares 38 sites, with five measurements each after two warm-up runs. The medians for screenshots:

Kitesurf Browser Run (Chrome, warm) Chrome (cold start)
Time 1.79 s 1.20 s 1.01 s
CPU time 387 ms 1.67 s 767 ms
Memory 50 MiB 400 MiB 329 MiB

By our math, Kitesurf uses 6.6 times less memory than a fresh Chrome instance, and 10.9 times less for plain HTML output (29 vs. 316 MiB). The CPU savings compared with cold Chrome, however, are only a factor of 2. The documentation claims "3 to 7 times less CPU and memory", a figure that dates back to the August benchmark with 14 sites.

On speed, Kitesurf loses, and Cloudflare openly admits it. Notably, Chrome's timer only starts once the browser is ready. Startup time is left out, which favors Chrome. Even so, by our count Kitesurf beat cold Chrome on only 8 of 38 sites. On news sites, the gap gets wide: The Guardian takes 9.79 instead of 1.39 seconds (a factor of 7), El Mundo 14.0 instead of 2.74 seconds (a factor of 5). One site failed completely. Kitesurf's measurements also run on Cloudflare's network, while Chrome runs on different hardware. That limits how directly the memory figures can be compared.

What the 98.3 percent really means

The Web Platform Tests (WPT) are the shared test suite of the browser vendors. Each test file contains many individual checks called subtests. Kitesurf's WPT dashboard reports 98.3 percent of subtests passed (1,517,208 of 1,543,968). Here's what our recalculation shows:

  • 73.8 percent of all counted subtests come from the encoding folder. That's 1,139,904 character-encoding checks, nearly all of which pass.
  • Without encoding, the rate is 93.4 percent. Still respectable, but well below the headline number.
  • Counted by test files, it's only 77.3 percent (9,093 of 11,764).
  • What matters most, though, is what doesn't run at all. 56,854 test files and, by Chrome's count, 470,593 subtests are "not enrolled", meaning they're skipped. Include them and the rate falls to 75.3 percent.

The effect is clearest in the areas that matter for agents:

Area passed (run) skipped Rate incl. skipped
shadow-dom 68.0 % (524/771) 14,600 3.4 %
fetch 74.0 % (2,084/2,818) 10,114 16.1 %
css 87.8 % 131,567 34.7 %
html 96.6 % 83,325 46.3 %

Skipped doesn't automatically mean failed. Many of these tests check rendering, for example, which Kitesurf deliberately doesn't implement pixel-perfectly. But a feature is only proven if it's actually tested. It's also striking that Cloudflare's own docs mention "over 235,000" passed subtests, up from "over 215,000" in August. Most of the jump to 1.5 million is explained by encoding.

Lightpanda has the same issue. For version 1.0, the project reports 1,739,845 passed subtests, which by its own math is about 80 percent of Chrome's roughly 2.18 million. According to RuntimeWire, a large share of those also comes from encoding. In July, Obscura reported 83.3 percent on the "core" subset and 60.0 percent on the full suite, measured before it added its own rendering engine.

Lightpanda and Obscura: Where the multipliers come from

Lightpanda's "9x faster, 16x lighter" comes from a crawl of 933 subpages on its own demo site (a product catalog). The figures apply to just one point in the test series, 25 parallel instances: 4.81 vs. 46.70 seconds and 123 MB vs. 2.0 GB. Chrome runs as a single process with many tabs, Lightpanda as many separate processes. With a single instance, Lightpanda is only 1.6 times faster. The vendor's second test, claiming "11x faster", uses a homemade shop page with two data fetches, served from a local server.

Obscura's README cites an 85 ms load time and 30 MB of memory. In the project's own benchmark repo, though, the median across 98 real sites is 5.2 seconds, against 2.1 seconds for Chrome. The memory median there is 64.2 MB. According to the repo, the 30 MB figure only applies when image output is turned off.

The blog jacar.es published an independent comparison on September 28. It tested Chrome 154, Lightpanda 0.4.1 (still before version 1.0) and Obscura 0.2.3, each via Playwright and Puppeteer:

Chrome 154 Lightpanda Obscura
Playwright tests passed 17/17 10–11/17 10/17
Agent task Wikipedia 7/7 6/7 6/7
Memory (container, 8 sessions) 1,038 MiB 160 MiB 132 MiB
Pages/s at 8 sessions 49.6 276 196

So the vendors' claims point in the right direction, but the multipliers are smaller. For Lightpanda, it's 6.5 times less memory instead of 16. On real sites, Obscura was the slowest in all five cases. The failures matter more. Both alternatives failed at a click inside the Shadow DOM, an encapsulated subtree of a page used by modern web components. By default, Lightpanda doesn't load stylesheets or iframes, and it allows only one browser context per connection. Obscura reported a click as successful even though nothing happened. It also failed to store anything in IndexedDB, and on GitHub it returned 111,970 characters of text instead of 14,449 because it counted hidden content. Silent failures like these are dangerous for agents, because the agent thinks it has finished a task that was never actually done.

Bot protection, logins, licensing: the hard limits

Cloudflare itself says Kitesurf can't handle video or WebGL. It also can't pass bot checks that require genuine TLS fingerprints (the characteristic signature a browser gives away when it sets up a connection). Long, logged-in sessions aren't supported either. For all of that, the company points you to Chrome. According to Cloudflare engineer Celso Martinho, Browser Run always identifies its traffic as a bot anyway, using Web Bot Auth, a cryptographic signature that lets a bot identify itself. Obscura takes the opposite approach: an optional stealth mode spoofs fingerprints and sets navigator.webdriver to false. According to jacar.es, that doesn't help against blocked IP addresses. We found no solid independent tests against Turnstile for any of the three engines. Regardless of the technology, eBay and United now prohibit unauthorized agents in their terms of service.

With licensing, the details matter. Lightpanda's AGPL-3.0 requires you to publish the source code if you offer a modified version to users over a network. Under the usual reading, you're not affected if you use the program unmodified and internally. Kitesurf is Apache-licensed, but it only runs on Workers. wrangler dev is enough locally, but in production you need Workers Paid. The system has no built-in authentication, so an unprotected server lets anyone browse at your expense. According to eesel.ai, Browser Run bills by browser hours, not by CPU or memory. For now, then, the savings mostly benefit Cloudflare. For self-hosted Chrome alternatives, you're left with Steel (Apache 2.0, 200 to 500 MB per session according to third-party figures) and Browserless. Browserless's Docker image is licensed under SSPL, and closed commercial products need a paid license.

Our verdict

Our take: the memory promises basically hold, at a factor of 6 to 8 rather than 16. Speed, on the other hand, isn't an advantage on real sites. Kitesurf and Obscura are usually slower than Chrome there, and only Lightpanda keeps up. The compatibility numbers are inflated by encoding tests and skipped areas.

That still fits how agents are actually used. According to HUMAN Security, 85 percent of all agent requests in October went to product and search pages, and only 1.9 percent to checkout pages. A simple decision guide:

  • A lean browser is enough for reading content, scraping prices and text at scale and simple single-page apps (Lightpanda, Obscura). It also works for high-volume screenshots if you're already on Cloudflare (Kitesurf).
  • You need Chrome for forms, dropdowns, Shadow DOM shops, logins with a persistent profile, pixel-perfect screenshots and sites behind bot protection.
  • A proven pattern: use the lean engine first, check the result and retry with Chrome if it fails. That's also what Cloudflare recommends. After every click, the agent should check whether the URL or page state actually changed.

It's still unclear how Lightpanda 1.0 performs in the same independent tests, since the jacar comparison used version 0.4.1. If you're thinking of switching, test your own target sites before you trust any percentage.

#ai agents#headless browser#cloudflare#lightpanda#benchmarks#open source

Ask the AI assistant

Questions about this article, installation or background? Our assistant knows this page and runs on our own machine, not in someone else's cloud.

Connecting …

The Assistant is an AI (Gemma 4) and can make mistakes – please check important details against the source. Questions are used only to generate an answer and are deleted after one hour. Please don't enter any personal data.

Comments

What do you think? Already tried it? Write it here, no sign-up needed.

  1. Loading comments …

Comments are public. Links aren't allowed, and we delete abusive posts. You can delete your own comment at any time in this browser. Learn more in the Privacy Policy.