PuppyIP Resource Center
Developer Tools & Networking 6 min Published 2026-11-13

Cloudflare Kitesurf Is Open Source: Local Evaluation and Deployment Requirements

Kitesurf is now open source under Apache 2.0 and can be evaluated locally with Wrangler, but it remains experimental and is not a full Chrome implementation. Running it on Cloudflare requires Workers Paid because page isolation uses Dynamic Workers. The engine has no built-in authentication, so plan access protection before deploying.

Kitesurf Cloudflare Workers Browser engines CDP

Service eligibility and regional restrictions

PuppyIP serves only compliant overseas businesses and their authorized personnel. Proxy services are not available in mainland China. The service may only be used for lawful business activities outside mainland China. Use of this service within mainland China is prohibited.

Hosting a proxy IP or server overseas does not change these restrictions. The service must not be provided to end users in mainland China through relaying, forwarding, sharing or resale. Before use, read the Terms of Service.

Key Takeaways

  • Cloudflare announced Kitesurf’s open-source release on November 12, 2026. The experimental AI-agent browser engine runs on Cloudflare Workers, where it parses HTML, applies CSS, runs page JavaScript, and renders screenshots.
  • Local build prerequisites include Bazelisk, invoked as `bazel`, Node.js 22 or newer, and pnpm 9.15.4. macOS also requires GNU tar. Rust through rustup is needed only when editing vendored crate patches.
  • After setting up the repository, run `pnpm run dev`. The URLs `http://127.0.0.1:8787/health` and `http://127.0.0.1:8787/json/version`, plus the CDP WebSocket address, offer starting points for a local read-only check; this guide did not run them.
  • A Cloudflare deployment requires Workers Paid. Kitesurf has no built-in authentication, and workers.dev is public by default with a predictable name. Enable account-level Cloudflare Access or another authentication layer before deployment. The announcement gives no exact price or regional availability.

What the open-source release provides

On November 12, 2026, Cloudflare announced that Kitesurf was open-sourced on GitHub under the Apache 2.0 license. Developers can inspect the project, run it locally by following the repository instructions, or deploy their own instance to a Cloudflare account.

Kitesurf is an experimental browser engine running on Cloudflare Workers. It parses HTML, applies CSS, runs page JavaScript, and renders screenshots without a browser container. It supports the Chrome DevTools Protocol (CDP), so clients such as Puppeteer can try to connect. Fonts, data, and dependencies bundled with the project may retain their own licenses; Apache 2.0 should not be read as covering every third-party component.

Check the local build prerequisites

The repository README lists Bazelisk, invoked with the `bazel` command, Node.js 22 or newer, and the project’s pinned pnpm 9.15.4. macOS also requires GNU tar. Rust installed through rustup is listed only for editing vendored crate patches; Bazel downloads the pinned Rust toolchain needed for a regular build. The first build compiles the Rust core and related dependencies, so it may take some time. The available source does not give a reliable completion estimate.

After meeting the prerequisites and installing dependencies through the repository setup steps, run `pnpm run dev` from the repository root. The script builds the engine and starts `wrangler dev`. This is for local development; it does not upload a Worker to Cloudflare. This guide only summarizes the public instructions. It did not install dependencies, run a build, or connect to an instance.

Use local read-only endpoints for an initial check

If you start the local development server yourself, you can first open `http://127.0.0.1:8787/health` to see whether the health endpoint responds. The README also lists `http://127.0.0.1:8787/json/version` for HTTP discovery. The documented browser WebSocket endpoint for CDP is `ws://127.0.0.1:8787/devtools/browser`; clients such as Puppeteer can be configured to connect to it.

These read-only checks follow the public instructions; this guide did not start an instance. A reachable endpoint or successful client connection only shows that the relevant service interface responds. It does not establish that a target site, login flow, script, or screenshot will behave as required. Assess suitability with representative pages you are authorized to access and the interactions your task needs.

Treat CDP as an interface, not as full Chrome

Cloudflare and the README describe Kitesurf as experimental and still under active development. Compatibility, rendering fidelity, and performance are continuing areas of work. CDP support gives existing tools a familiar protocol to try, but it does not mean Kitesurf implements full Chrome or every Chrome DevTools feature.

If your work depends on a particular browser API, complex layout, extension feature, or exact screenshot, verify that workflow locally first. Do not infer site compatibility from a CDP address, an example page, or one health check. Links to project benchmarks are not a speed promise for a particular site.

Plan cost and authentication before a Cloudflare deployment

Kitesurf uses Cloudflare Dynamic Workers to create isolated Workers for pages and renderers, so a Cloudflare deployment requires Workers Paid. `wrangler dev` is the local development path; it does not show that a cloud deployment can run for free. The announcement and README do not state an exact cost for every account or regional availability. Check the current Cloudflare plan details and your account before budgeting.

The engine has no authentication of its own. The README says workers.dev URLs are public by default and follow a predictable naming pattern. Anyone who knows the URL may use DevTools or CDP with the instance and consume resources billed to the account. To avoid leaving a public window while adding protection after deployment, enable Cloudflare Access for Workers at the account level first, or arrange another authentication layer before deploying. If an instance is already deployed, protect it immediately.

Sources

Frequently Asked Questions

What if local port 8787 is already in use?

The README gives this Unix-style shell example: `KITESURF_PORT=8799 pnpm run dev`. When using 8799, change the health, HTTP discovery, and CDP client URLs to that port as well, for example `http://127.0.0.1:8799/health` and `ws://127.0.0.1:8799/devtools/browser`. In other shells, set the same environment variable using the appropriate syntax.

Can I submit a code contribution directly?

The announcement welcomes contributions but says maintainer review capacity is limited. Before submitting a pull request, read the repository contribution guidelines, open an issue, and get vouched by a maintainer. A public repository does not mean every proposed change will be accepted.