---
title: "Cloudflare Kitesurf Review: Pricing, Limits and Fit"
canonical: https://wavect.io/blog/cloudflare-kitesurf-browser-ai-agents/
language: en
description: "Cloudflare Kitesurf review: compare Chromium and Lightpanda, beta pricing, compatibility, security and a measurable production pilot for AI agents."
image: "https://wavect.io/img/blog/headers/header_cloudflare-kitesurf-browser-ai-agents.png"
---

[**Back**](/blog/overview/)

[![Kevin Riedl](/img/team/kevin.webp)](/team/kevin-riedl/)

[Kevin Riedl](/team/kevin-riedl/) https://linkedin.com/in/wsdt

13 min read · 14 Aug 2026 Last reviewed August 14, 2026

[**Next**](/blog/lightpanda-headless-browser-ai-agents/)

# Cloudflare Kitesurf Review: Is the Agent Browser Ready for Production?

TL;DR

Cloudflare Kitesurf is a beta, stateless browser runtime for AI agents that runs on Workers and is selected inside Browser Run with browser=kitesurf. In Cloudflare's five-run, 14-URL comparison, it used 3.1 to 3.8 times less CPU and 4.7 to 7 times less memory than warm Chromium, but completed screenshots 1.8 times slower and HTML extraction 1.7 times slower. It is free during beta behind account limits, while post-beta Kitesurf pricing is not published. Pilot it for bursty, one-shot extraction, screenshots and PDFs on compatible sites. Keep Chromium for video, WebGL, bot challenges, long authenticated sessions and fidelity-sensitive work. Decide with accepted-task rate, fallback rate, p95 latency, browser milliseconds, review time and total cost per accepted action.

**Cloudflare Kitesurf is a lightweight, cloud-hosted browser runtime built for short AI-agent tasks, not a complete Chromium replacement.** It runs on Cloudflare Workers, exposes Chrome DevTools Protocol endpoints and can produce HTML, screenshots and PDFs. Its strongest production case is bursty, stateless work on a known set of compatible websites.

Our buyer verdict: pilot Kitesurf as an eligible traffic lane, not as the only browser in your architecture. Cloudflare's published comparison shows materially lower CPU and memory than warm Chromium, but higher wall time and clear compatibility gaps. Keep a Chromium fallback until your own task corpus proves accepted-result parity.

This article owns the Cloudflare Kitesurf buying decision. Our [Lightpanda production review](/blog/lightpanda-headless-browser-ai-agents/) owns the self-hosted, open-source browser-engine decision, while the [agentic testing guide](/blog/agentic-testing-vs-test-automation-2026/) owns how an adaptive browser agent fits into software assurance.

## What is Cloudflare Kitesurf?

Kitesurf is a beta browser runtime designed around what a machine needs: DOM, HTML, CSS, JavaScript, network inspection, screenshots, PDFs and CDP compatibility. It omits or limits human-browser features that add weight or persistent state. You select it inside Cloudflare Browser Run by adding `browser=kitesurf` to a Quick Action or CDP endpoint.

That product boundary matters. Browser Run is the managed service and API surface. Kitesurf is one browser engine available through it. Chromium remains the default engine for broader compatibility, long-lived sessions and higher rendering fidelity.

| Buyer question | Current answer | Implication |
| --- | --- | --- |
| Is Kitesurf production-ready? | Beta and improving quickly | Use a canary lane with explicit fallbacks and versioned compatibility tests. |
| Is it a full Chromium replacement? | No | Keep Chromium for unsupported and fidelity-sensitive tasks. |
| Does Playwright or Puppeteer work? | Through the supported CDP subset | A connection can succeed while a required command or page API still fails. |
| Is it stateful? | Designed for ephemeral, stateless tasks | It fits one-shot work better than long authenticated journeys. |
| Can it render pixels? | Yes, but not pixel-perfect | Validate screenshots and PDFs against the actual acceptance criteria. |
| Is it open source? | Not yet | Cloudflare says it plans to open source Kitesurf, but buyers cannot audit or self-deploy it today. |

## What do the Kitesurf benchmarks actually prove?

Cloudflare reports medians from five Browser Run Quick Action runs across a 14-URL corpus. For screenshots, Kitesurf used 380 ms of CPU and 57.8 MiB of memory, compared with 1,173 ms and 271.0 MiB for warm Chromium. For HTML extraction, Kitesurf used 229 ms and 39.4 MiB, compared with 877 ms and 273.7 MiB.

| Metric | Kitesurf result | Buyer reading |
| --- | --- | --- |
| Screenshot CPU | 3.1x less than Chromium | Promising for dense, bursty execution. |
| HTML extraction CPU | 3.8x less | Promising when DOM output matters more than pixels. |
| Screenshot memory | 4.7x less | More isolated sessions may fit in the same capacity. |
| HTML extraction memory | 7.0x less | Strongest published efficiency result. |
| Screenshot wall time | 1.8x slower | Lower resource use does not mean lower user-visible latency. |
| HTML extraction wall time | 1.7x slower | Latency-sensitive workflows may still prefer warm Chromium. |

The latest official [Kitesurf documentation and benchmark table](https://developers.cloudflare.com/browser-run/kitesurf/) also reports more than 235,000 passing Web Platform Test subtests. That is useful standards evidence, especially for DOM, HTML, selection, SVG, CORS and XHR. It is not proof that your authenticated dashboard, checkout or long-tail website works.

The benchmark was designed and run by Cloudflare on its service. We did not independently reproduce it. A procurement decision should compare successful business tasks per browser hour, not extrapolate a 14-URL median to every workflow.

## How does Kitesurf work without Chromium?

Kitesurf splits a request across isolated Workers. An Engine holds the session and CDP surface. PageScript creates isolated page environments, parses HTML and CSS, and executes JavaScript and WebAssembly. PageRenderer turns the computed scene into PNG, JPEG or PDF output. A restricted outbound component is the only part allowed to fetch arbitrary internet resources.

Cloudflare built much of the rendering path from Rust and WebAssembly components, including Blitz for DOM and rendering pieces, Stylo for CSS parsing and Boa for JavaScript evaluation where native Workers evaluation is unavailable. The launch article explains the isolation, RPC and failure-recovery design in the [Kitesurf architecture and roadmap](https://blog.cloudflare.com/kitesurf/).

This is more than an implementation detail. A disposable renderer can be killed and retried without reconstructing a long-lived browser machine. The tradeoff is that stateful journeys, obscure Web APIs and pixel fidelity are harder. Architecture creates both the cost advantage and the limits.

## How much does Cloudflare Kitesurf cost?

**Kitesurf is free during beta behind per-account limits. Cloudflare has not published a Kitesurf-specific post-beta price.** Do not build a long-term business case from the beta price of zero.

The broader Browser Run service currently includes 10 browser minutes per day on Workers Free. Workers Paid includes 10 browser hours per month, then lists $0.09 per additional browser hour. Browser Sessions also include a concurrency component. Check the current [Browser Run pricing and billing rules](https://developers.cloudflare.com/browser-run/pricing/) before budgeting, but do not assume those numbers settle future Kitesurf pricing.

Measure the cost that reaches the customer outcome:

**cost per accepted browser action = browser time + model calls + proxy or network + retries + fallbacks + review + maintenance**

A slower Kitesurf task can still be cheaper if lower resource use creates lower future browser cost. It can also be more expensive if incompatibility triggers retries, Chromium fallback and human repair. Record the `X-Browser-Ms-Used` header, but make the accepted task the denominator. Our [AI agent cost-per-action framework](/blog/ai-agent-cost-per-action-2026/) shows how to include failed work and review.

## Kitesurf vs Chromium vs Lightpanda

| Choice | Best fit | Main compromise |
| --- | --- | --- |
| Kitesurf through Browser Run | Managed, bursty, one-shot agent tasks on compatible sites | Beta compatibility, slower published wall time, limited persistent state and fidelity |
| Chromium through Browser Run | Broad web compatibility, long sessions, video, WebGL and visual fidelity | Higher CPU and memory in Cloudflare's comparison |
| Lightpanda | DOM-first workloads where self-hosting or an auditable open-source engine matters | No full visual renderer, beta compatibility and AGPL obligations |

Lightpanda is a separate product, not a Kitesurf deployment option. Its official [browser repository](https://github.com/lightpanda-io/browser) makes the code and AGPL licence available today. Kitesurf is managed inside Cloudflare Browser Run and promises future open sourcing. Choose on operating model before benchmark headlines: managed service, self-hosted engine or full Chromium fidelity.

## How do you connect an AI agent to Kitesurf?

The smallest experiment changes the Browser Run endpoint, not the agent architecture. Existing CDP clients can opt into Kitesurf with a query parameter:

```
wss://api.cloudflare.com/client/v4/accounts/<ACCOUNT_ID>/browser-run/devtools/browser?browser=kitesurf
```

An MCP client can run `chrome-devtools-mcp` against that WebSocket and pass a Browser Run token in the headers. Cloudflare's [CDP guide for MCP clients](https://developers.cloudflare.com/browser-run/cdp/mcp-clients/) documents the connection pattern. Pin the MCP package version for production rather than executing an unreviewed latest release on every run.

For one-shot screenshots, PDFs or content extraction, add `?browser=kitesurf` to the relevant Quick Action endpoint. Start with the public playground for compatibility discovery, then move the exact targets and assertions into a repeatable test harness.

## What are the security and data risks?

A browser agent combines untrusted web content, active credentials and model-selected actions. Process isolation reduces blast radius, but it does not decide whether the agent was allowed to read a page, submit a form or reveal data to another origin.

Cloudflare says normal Quick Actions, Puppeteer, Playwright and CDP content is processed ephemerally, while crawl results are retained for 14 days and opt-in session recordings for 30 days. Browser Run traffic identifies as bot traffic and does not provide per-request IP rotation. Verify the current details in the [Browser Run security, bot and retention FAQ](https://developers.cloudflare.com/browser-run/faq/).

- **Keep credentials out of prompts.** Inject short-lived, scoped secrets at the host boundary.
- **Separate read and write lanes.** Research does not need permission to publish, buy or delete.
- **Block private destinations.** A browser must not become an SSRF bridge to metadata services or internal systems.
- **Require approval before commitment.** Purchases, messages, account changes and legal acceptance need a human or deterministic policy gate.
- **Treat page text as data.** Web content can contain prompt injection intended to redirect the agent.
- **Record evidence.** Preserve target, action, result, engine, version, cost, fallback reason and reviewer decision.

The [OWASP guidance on excessive agency](https://genai.owasp.org/llmrisk/llm062025-excessive-agency/) recommends minimizing tools and permissions, validating authorization in downstream systems and requiring human approval for high-impact actions. Those controls apply regardless of which browser engine executes the clicks.

## Which Kitesurf workloads should you pilot?

| Workload | Fit | Reason |
| --- | --- | --- |
| Rendered HTML or Markdown extraction | Strong pilot | DOM and JavaScript matter, persistent state may not. |
| Burst screenshot or PDF generation | Conditional | Resource efficiency is attractive, but output fidelity needs acceptance tests. |
| Known-site research agents | Strong pilot | A stable corpus makes compatibility and fallback measurable. |
| Unknown long-tail browsing | Conditional | Coverage varies and a Chromium fallback will be common at first. |
| Long authenticated operations | Poor fit today | Kitesurf is designed around ephemeral, stateless execution. |
| Video, WebGL or bot challenges | Use Chromium | Cloudflare lists these as unsupported Kitesurf cases. |
| Pixel-perfect visual regression | Use Chromium | Close output is not sufficient when pixels are the contract. |

## A 30-day Kitesurf production pilot

1. **Week 1, baseline.** Select 100 to 500 representative tasks. Run them on Chromium and capture accepted-result rate, p50 and p95 latency, browser milliseconds, model cost and review time.
2. **Week 2, compatibility.** Run the same targets on Kitesurf without changing business assertions. Label failures by unsupported API, rendering difference, timeout, authentication, bot protection or harness error.
3. **Week 3, canary.** Route only eligible, reversible tasks to Kitesurf. Fall back once to Chromium on a classified compatibility failure. Never create an unlimited retry loop.
4. **Week 4, decision.** Compare cost per accepted action, fallback rate, latency and reviewer effort. Record which URL classes stay on each engine and what event triggers rollback.

Set thresholds before the first Kitesurf run. A reasonable scale rule might require no material output regression, a fallback rate below your operational ceiling and a lower total cost per accepted action. A reasonable stop rule includes credential exposure, unclassified state changes, repeated fidelity failures or review cost above the Chromium baseline.

## How Wavect scopes the browser-runtime decision

We start with the workflow and evidence boundary, then choose the engine. Wavect's [AI product engineering service](/services/artificial-intelligence/) can build the routing harness, deterministic assertions, observability and fallback policy. The [Linux infrastructure guide for AI agents](/blog/linux-for-ai-agents/) covers the host controls around self-managed alternatives.

The deliverable is a tested engine matrix, not a vendor recommendation based on a demo. It shows which tasks Kitesurf accepts, why Chromium takes the rest, what each accepted action costs and how your team can change providers later. [Book a browser-agent architecture review](/contact/) if you want that decision grounded in your own workload.

## Cloudflare Kitesurf frequently asked questions

### What is Cloudflare Kitesurf?

Kitesurf is a beta, stateless browser runtime for AI agents that runs on Cloudflare Workers and is accessed through Browser Run. It supports a subset of CDP plus Quick Actions for compatible page extraction, screenshots and PDFs.

### Is Kitesurf the same as Browser Run?

No. Browser Run is Cloudflare's managed browser service. Kitesurf is an optional browser engine inside that service. Chromium remains the default and the safer fallback for unsupported or fidelity-sensitive tasks.

### Is Cloudflare Kitesurf free?

Kitesurf is free during beta behind per-account limits. Cloudflare has not published Kitesurf-specific pricing for after beta. Budget with measured usage and revisit the business case when commercial terms appear.

### Can Kitesurf replace Chromium?

Not for every workload. It is a credible lane for compatible, bursty, one-shot tasks. Keep Chromium for video, WebGL, bot challenges, long authenticated sessions, pixel-sensitive output and any target that fails your compatibility suite.

### Can Kitesurf bypass bot protection?

No. Cloudflare explicitly says Kitesurf cannot yet negotiate bot-challenge handshakes that require real TLS fingerprints, and Browser Run identifies as bot traffic. Use authorized access and respect site rules rather than treating the runtime as a bypass tool.

### Kitesurf or Lightpanda: which should a team choose?

Choose Kitesurf when you want a managed Browser Run engine and bursty stateless execution. Evaluate Lightpanda when self-hosting, source access and DOM-first automation matter more than screenshots. Keep Chromium where broad compatibility and pixel fidelity are required.

## Sources and methodology boundary

This review uses Cloudflare's product documentation and vendor-run benchmarks checked on 14 August 2026, plus primary project and security sources. We did not run an independent Kitesurf benchmark because access, target corpus and production credentials are workload-specific. Published CPU, memory and wall-time figures describe Cloudflare's 14-URL test, not a universal performance guarantee. Beta features, compatibility, limits and pricing can change.

## Final thoughts

Kitesurf is a credible new browser lane for AI agents, not a reason to delete Chromium. Its architecture is optimized for disposable, isolated tasks, and Cloudflare's early evidence shows a real CPU and memory advantage. The same evidence also shows slower wall time, incomplete compatibility and a product that remains in beta.

Use it where the task is short, reversible and independently verifiable. Keep a Chromium fallback, measure accepted outcomes, count every retry and review minute, and refuse to turn beta pricing into a long-term savings promise. If Kitesurf lowers total cost without weakening result quality, expand the eligible lane. If it does not, the pilot still bought you a precise browser-runtime boundary.

## You may also like..

[**Lightpanda for AI Agents** Compare Kitesurf's managed, rendered runtime with an open-source DOM-first browser engine.](/blog/lightpanda-headless-browser-ai-agents/) [**AI Enablement vs Generic AI Consulting** Choose between a working, governed AI capability and a strategy-only engagement.](/compare/ai-enablement-vs-generic-ai-consultancy/)

Agent engineering

## Continue through this cluster

Coding agents, MCP, context systems, evaluation and the controls required for dependable automation.

[Start with the cornerstone**Graph Engineering for AI Agents: When Does a Knowledge Graph Pay Off?**](/blog/graph-engineering-ai-agents/)

- [Internal AI Agent Marketplace: A 2026 Enterprise Build Guide](/blog/internal-ai-agent-marketplace/)
- [Is Linux the Best OS for AI Agents? A 2026 Infrastructure Guide](/blog/linux-for-ai-agents/)
- [MCP Cloud vs Manufact Cloud: MCP Hosting Guide](/blog/mcp-cloud-vs-manufact-cloud/)
- [How to Make AI Writing Sound Human with Agent Skills](/blog/ai-writing-agent-skills/)
- [NVIDIA NOOA Review: Are Object-Oriented Agents Production-Ready?](/blog/nvidia-nooa-object-oriented-agents-review/)

Inbox, without the noise

## Follow the work that matters to you

Get a short email when we publish something new. Follow the whole blog or only the problems you care about.

[**Back**](/blog/overview/)

[![Kevin Riedl](/img/team/kevin.webp)](/team/kevin-riedl/)

[Kevin Riedl](/team/kevin-riedl/) https://linkedin.com/in/wsdt

13 min read · 14 Aug 2026 Last reviewed August 14, 2026

[**Next**](/blog/lightpanda-headless-browser-ai-agents/)

New posts by email ×

×

Get new posts by email

A short email when we publish. Free, no tracking.

## Structured Data

```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@id": "https://wavect.io/#organization",
      "@type": [
        "Organization",
        "ProfessionalService",
        "LocalBusiness"
      ],
      "employee": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "founder": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "legalRepresentative": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "name": "Wavect GmbH",
      "subjectOf": {
        "@id": "https://wavect.io/verified-claims.json#dataset",
        "@type": "Dataset",
        "creator": {
          "@id": "https://wavect.io/#organization",
          "@type": [
            "Organization",
            "ProfessionalService",
            "LocalBusiness"
          ]
        },
        "description": "A machine-readable registry of quantitative and qualitative claims published by Wavect, with review dates, localized page appearances and public third-party citations where available.",
        "inLanguage": "en",
        "isAccessibleForFree": true,
        "license": "https://creativecommons.org/licenses/by/4.0/",
        "name": "Wavect verified publication claims",
        "url": "https://wavect.io/verified-claims.json"
      },
      "url": "https://wavect.io/"
    },
    {
      "@id": "https://wavect.io/team/kevin-riedl/#person",
      "@type": "Person",
      "jobTitle": "Managing Director",
      "name": "Kevin Riedl",
      "sameAs": [
        "https://www.wikidata.org/wiki/Q139796365",
        "https://www.linkedin.com/in/wsdt",
        "https://github.com/wsdt"
      ],
      "url": "https://wavect.io/team/kevin-riedl/",
      "worksFor": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      }
    },
    {
      "@id": "https://wavect.io/team/christof-jori/#person",
      "@type": "Person",
      "jobTitle": "Managing Director",
      "name": "Christof Jori",
      "sameAs": [
        "https://www.wikidata.org/wiki/Q139796367",
        "https://www.linkedin.com/in/jocr77/",
        "https://github.com/jo-chris"
      ],
      "url": "https://wavect.io/team/christof-jori/",
      "worksFor": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      }
    },
    {
      "@id": "https://wavect.io/#website",
      "@type": "WebSite",
      "inLanguage": [
        "en",
        "de",
        "es",
        "zh"
      ],
      "name": "Wavect",
      "potentialAction": {
        "@type": "SearchAction",
        "query-input": "required name=search_term_string",
        "target": {
          "@type": "EntryPoint",
          "urlTemplate": "https://wavect.io/search/?q={search_term_string}"
        }
      },
      "publisher": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      },
      "url": "https://wavect.io/"
    },
    {
      "@id": "https://wavect.io/blog/cloudflare-kitesurf-browser-ai-agents/#webpage",
      "@type": "WebPage",
      "dateModified": "2026-08-14",
      "inLanguage": "en",
      "isPartOf": {
        "@id": "https://wavect.io/#website",
        "@type": "WebSite"
      },
      "lastReviewed": "2026-08-14",
      "url": "https://wavect.io/blog/cloudflare-kitesurf-browser-ai-agents/"
    }
  ]
}
```

```json
{
  "@context": "https://schema.org",
  "@type": "BlogPosting",
  "abstract": "Cloudflare Kitesurf is a beta, stateless browser runtime for AI agents that runs on Workers and is selected inside Browser Run with browser=kitesurf. In Cloudflare's five-run, 14-URL comparison, it used 3.1 to 3.8 times less CPU and 4.7 to 7 times less memory than warm Chromium, but completed screenshots 1.8 times slower and HTML extraction 1.7 times slower. It is free during beta behind account limits, while post-beta Kitesurf pricing is not published. Pilot it for bursty, one-shot extraction, screenshots and PDFs on compatible sites. Keep Chromium for video, WebGL, bot challenges, long authenticated sessions and fidelity-sensitive work. Decide with accepted-task rate, fallback rate, p95 latency, browser milliseconds, review time and total cost per accepted action.",
  "articleBody": " Blog overview/AI and agents/Agent engineering Cloudflare Kitesurf Review: Is the Agent Browser Ready for Production? TL;DR Cloudflare Kitesurf is a beta, stateless browser runtime for AI agents that runs on Workers and is selected inside Browser Run with browser=kitesurf. In Cloudflare's five-run, 14-URL comparison, it used 3.1 to 3.8 times less CPU and 4.7 to 7 times less memory than warm Chromium, but completed screenshots 1.8 times slower and HTML extraction 1.7 times slower. It is free during beta behind account limits, while post-beta Kitesurf pricing is not published. Pilot it for bursty, one-shot extraction, screenshots and PDFs on compatible sites. Keep Chromium for video, WebGL, bot challenges, long authenticated sessions and fidelity-sensitive work. Decide with accepted-task rate, fallback rate, p95 latency, browser milliseconds, review time and total cost per accepted action. Cloudflare Kitesurf is a lightweight, cloud-hosted browser runtime built for short AI-agent tasks, not a complete Chromium replacement. It runs on Cloudflare Workers, exposes Chrome DevTools Protocol endpoints and can produce HTML, screenshots and PDFs. Its strongest production case is bursty, stateless work on a known set of compatible websites. Our buyer verdict: pilot Kitesurf as an eligible traffic lane, not as the only browser in your architecture. Cloudflare's published comparison shows materially lower CPU and memory than warm Chromium, but higher wall time and clear compatibility gaps. Keep a Chromium fallback until your own task corpus proves accepted-result parity. This article owns the Cloudflare Kitesurf buying decision. Our Lightpanda production review owns the self-hosted, open-source browser-engine decision, while the agentic testing guide owns how an adaptive browser agent fits into software assurance. What is Cloudflare Kitesurf? Kitesurf is a beta browser runtime designed around what a machine needs: DOM, HTML, CSS, JavaScript, network inspection, screenshots, PDFs and CDP compatibility. It omits or limits human-browser features that add weight or persistent state. You select it inside Cloudflare Browser Run by adding browser=kitesurf to a Quick Action or CDP endpoint. That product boundary matters. Browser Run is the managed service and API surface. Kitesurf is one browser engine available through it. Chromium remains the default engine for broader compatibility, long-lived sessions and higher rendering fidelity. Buyer questionCurrent answerImplication Is Kitesurf production-ready?Beta and improving quicklyUse a canary lane with explicit fallbacks and versioned compatibility tests. Is it a full Chromium replacement?NoKeep Chromium for unsupported and fidelity-sensitive tasks. Does Playwright or Puppeteer work?Through the supported CDP subsetA connection can succeed while a required command or page API still fails. Is it stateful?Designed for ephemeral, stateless tasksIt fits one-shot work better than long authenticated journeys. Can it render pixels?Yes, but not pixel-perfectValidate screenshots and PDFs against the actual acceptance criteria. Is it open source?Not yetCloudflare says it plans to open source Kitesurf, but buyers cannot audit or self-deploy it today. What do the Kitesurf benchmarks actually prove? Cloudflare reports medians from five Browser Run Quick Action runs across a 14-URL corpus. For screenshots, Kitesurf used 380 ms of CPU and 57.8 MiB of memory, compared with 1,173 ms and 271.0 MiB for warm Chromium. For HTML extraction, Kitesurf used 229 ms and 39.4 MiB, compared with 877 ms and 273.7 MiB. MetricKitesurf resultBuyer reading Screenshot CPU3.1x less than ChromiumPromising for dense, bursty execution. HTML extraction CPU3.8x lessPromising when DOM output matters more than pixels. Screenshot memory4.7x lessMore isolated sessions may fit in the same capacity. HTML extraction memory7.0x lessStrongest published efficiency result. Screenshot wall time1.8x slowerLower resource use does not mean lower user-visible latency. HTML extraction wall time1.7x slowerLatency-sensitive workflows may still prefer warm Chromium. The latest official Kitesurf documentation and benchmark table also reports more than 235,000 passing Web Platform Test subtests. That is useful standards evidence, especially for DOM, HTML, selection, SVG, CORS and XHR. It is not proof that your authenticated dashboard, checkout or long-tail website works. The benchmark was designed and run by Cloudflare on its service. We did not independently reproduce it. A procurement decision should compare successful business tasks per browser hour, not extrapolate a 14-URL median to every workflow. How does Kitesurf work without Chromium? Kitesurf splits a request across isolated Workers. An Engine holds the session and CDP surface. PageScript creates isolated page environments, parses HTML and CSS, and executes JavaScript and WebAssembly. PageRenderer turns the computed scene into PNG, JPEG or PDF output. A restricted outbound",
  "articleSection": "Engineering",
  "author": {
    "@id": "https://wavect.io/team/kevin-riedl/#person",
    "@type": "Person",
    "name": "Kevin Riedl",
    "sameAs": [
      "https://www.wikidata.org/wiki/Q139796365",
      "https://www.linkedin.com/in/wsdt",
      "https://github.com/wsdt"
    ],
    "url": "https://wavect.io/team/kevin-riedl/"
  },
  "citation": [
    {
      "@type": "WebPage",
      "name": "Kitesurf documentation and benchmark table",
      "url": "https://developers.cloudflare.com/browser-run/kitesurf/"
    },
    {
      "@type": "WebPage",
      "name": "Kitesurf architecture and roadmap",
      "url": "https://blog.cloudflare.com/kitesurf/"
    },
    {
      "@type": "WebPage",
      "name": "Browser Run pricing and billing rules",
      "url": "https://developers.cloudflare.com/browser-run/pricing/"
    },
    {
      "@type": "WebPage",
      "name": "browser repository",
      "url": "https://github.com/lightpanda-io/browser"
    },
    {
      "@type": "WebPage",
      "name": "CDP guide for MCP clients",
      "url": "https://developers.cloudflare.com/browser-run/cdp/mcp-clients/"
    },
    {
      "@type": "WebPage",
      "name": "Browser Run security, bot and retention FAQ",
      "url": "https://developers.cloudflare.com/browser-run/faq/"
    },
    {
      "@type": "WebPage",
      "name": "OWASP guidance on excessive agency",
      "url": "https://genai.owasp.org/llmrisk/llm062025-excessive-agency/"
    }
  ],
  "dateModified": "2026-08-14",
  "datePublished": "2026-08-14",
  "description": "Cloudflare Kitesurf is a beta, stateless browser runtime for AI agents that runs on Workers and is selected inside Browser Run with browser=kitesurf. In Cloudflare's five-run, 14-URL comparison, it used 3.1 to 3.8 times less CPU and 4.7 to 7 times less memory than warm Chromium, but completed screenshots 1.8 times slower and HTML extraction 1.7 times slower. It is free during beta behind account limits, while post-beta Kitesurf pricing is not published. Pilot it for bursty, one-shot extraction, screenshots and PDFs on compatible sites. Keep Chromium for video, WebGL, bot challenges, long authenticated sessions and fidelity-sensitive work. Decide with accepted-task rate, fallback rate, p95 latency, browser milliseconds, review time and total cost per accepted action.",
  "headline": "Cloudflare Kitesurf Review: Cost, Limits and Production Fit",
  "image": "https://wavect.io/img/blog/headers/header_cloudflare-kitesurf-browser-ai-agents.svg",
  "inLanguage": "en",
  "keywords": "AI Agents, Browser Automation",
  "mainEntityOfPage": {
    "@id": "https://wavect.io/blog/cloudflare-kitesurf-browser-ai-agents/",
    "@type": "WebPage"
  },
  "publisher": {
    "@id": "https://wavect.io/#organization",
    "@type": [
      "Organization",
      "ProfessionalService",
      "LocalBusiness"
    ]
  },
  "url": "https://wavect.io/blog/cloudflare-kitesurf-browser-ai-agents/",
  "wordCount": 2546
}
```

```json
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "item": "https://wavect.io/",
      "name": "Home",
      "position": 1
    },
    {
      "@type": "ListItem",
      "item": "https://wavect.io/blog/overview/",
      "name": "Blog overview",
      "position": 2
    },
    {
      "@type": "ListItem",
      "item": "https://wavect.io/blog/topics/ai-agents/",
      "name": "AI and agents",
      "position": 3
    },
    {
      "@type": "ListItem",
      "item": "https://wavect.io/blog/clusters/agent-engineering/",
      "name": "Agent engineering",
      "position": 4
    },
    {
      "@type": "ListItem",
      "item": "https://wavect.io/blog/cloudflare-kitesurf-browser-ai-agents/",
      "name": "Cloudflare Kitesurf Review: Pricing, Limits and Fit | ",
      "position": 5
    }
  ]
}
```

```json
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Kitesurf is a beta, stateless browser runtime for AI agents that runs on Cloudflare Workers and is accessed through Browser Run. It supports a subset of CDP plus Quick Actions for compatible page extraction, screenshots and PDFs."
      },
      "name": "What is Cloudflare Kitesurf?"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "No. Browser Run is Cloudflare's managed browser service. Kitesurf is an optional browser engine inside that service. Chromium remains the default and the safer fallback for unsupported or fidelity-sensitive tasks."
      },
      "name": "Is Kitesurf the same as Browser Run?"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Kitesurf is free during beta behind per-account limits. Cloudflare has not published Kitesurf-specific pricing for after beta. Budget with measured usage and revisit the business case when commercial terms appear."
      },
      "name": "Is Cloudflare Kitesurf free?"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Not for every workload. It is a credible lane for compatible, bursty, one-shot tasks. Keep Chromium for video, WebGL, bot challenges, long authenticated sessions, pixel-sensitive output and any target that fails your compatibility suite."
      },
      "name": "Can Kitesurf replace Chromium?"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "No. Cloudflare explicitly says Kitesurf cannot yet negotiate bot-challenge handshakes that require real TLS fingerprints, and Browser Run identifies as bot traffic. Use authorized access and respect site rules rather than treating the runtime as a bypass tool."
      },
      "name": "Can Kitesurf bypass bot protection?"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Choose Kitesurf when you want a managed Browser Run engine and bursty stateless execution. Evaluate Lightpanda when self-hosting, source access and DOM-first automation matter more than screenshots. Keep Chromium where broad compatibility and pixel fidelity are required."
      },
      "name": "Kitesurf or Lightpanda: which should a team choose?"
    }
  ]
}
```
