服务对象与地域限制
PuppyIP 仅面向海外合规企业及其授权人员提供服务,不面向中国大陆地区开放或提供代理服务。本服务仅限用于中国大陆境外的合法业务活动,严禁在中国大陆境内使用本服务。
代理 IP 或服务器位于境外,不改变上述限制。不得通过中转、转接、共享或转售向中国大陆境内的最终使用者提供本服务。使用前请阅读用户服务协议。
本文要点
- Kitesurf 于 2026-11-12 开源,定位是运行在 Cloudflare Workers 上的 AI 代理浏览器引擎,能解析 HTML、应用 CSS、执行页面 JavaScript 并渲染截图;它仍属实验项目。
- 本地构建要求包括 Bazelisk(安装后命令名为 bazel)、Node.js 22 或更新版本、pnpm 9.15.4;macOS 还需要 GNU tar。只有修改 vendored crate 补丁时才需要通过 rustup 安装 Rust。
- 完成仓库设置后可运行 `pnpm run dev`。`http://127.0.0.1:8787/health`、`http://127.0.0.1:8787/json/version` 和 CDP WebSocket 地址可作为本地只读检查入口;本文未执行这些检查。
- Cloudflare 云端运行需要 Workers Paid。Kitesurf 没有内置认证,workers.dev 默认公开且名称可预测;应在部署前启用账号级 Cloudflare Access 或其他认证层。公告没有给出具体价格或地区适用信息。
这次开源提供了什么
Cloudflare 在 2026 年 11 月 12 日宣布,Kitesurf 已在 GitHub 按 Apache 2.0 许可证开源。开发者可以查看项目代码、按仓库说明在本地运行,也可以把自己的实例部署到 Cloudflare 账号。
Kitesurf 是运行在 Cloudflare Workers 上的实验性浏览器引擎:它解析 HTML、应用 CSS、执行页面 JavaScript 并渲染截图,不依赖浏览器容器。它支持 Chrome DevTools Protocol(CDP),因此 Puppeteer 等 CDP 客户端可以尝试连接。项目中捆绑的字体、数据和依赖仍可能采用各自许可证,Apache 2.0 不应被理解为覆盖所有第三方组件。
本地运行前先核对构建条件
仓库 README 列出的要求是 Bazelisk(安装后以 `bazel` 命令调用)、Node.js 22 或更新版本,以及项目固定的 pnpm 9.15.4。macOS 还需要 GNU tar。README 只在编辑 vendored crate 补丁时要求通过 rustup 安装 Rust;常规构建所需的固定 Rust 工具链由 Bazel 下载。首次构建会编译 Rust 核心和相关依赖,可能需要等待,现有资料没有给出可靠的完成时长。
准备好这些先决条件并按仓库的 setup 步骤安装依赖后,在仓库根目录运行 `pnpm run dev`,由脚本构建引擎并启动 `wrangler dev`。这一步面向本地开发;它不等于把 Worker 上传到 Cloudflare。本文只整理公开说明,没有安装依赖、运行构建或连接实例。
用本地只读入口做初步检查
如果你之后自行启动了本地开发服务器,可以先查看 `http://127.0.0.1:8787/health`,确认健康端点是否可访问;README 也列出 `http://127.0.0.1:8787/json/version` 作为 HTTP 发现入口。仓库给出的 CDP 浏览器 WebSocket 地址是 `ws://127.0.0.1:8787/devtools/browser`,可供 Puppeteer 等客户端配置连接。
本文依据公开说明提出这些只读检查步骤,未实际启动实例。端点可访问或客户端能够连接,只能说明相应服务入口有响应,不能证明目标网站的页面、登录流程、脚本或截图效果符合要求。应以自己有权访问的代表性页面和关键交互评估实际适用性。
把 CDP 支持理解为接口,而不是完整 Chrome
Cloudflare 和 README 都将 Kitesurf 标为实验性项目,开发仍在推进,兼容性、渲染保真度和性能还在改进。支持 CDP 让已有工具有机会通过熟悉的协议接入,但并不意味着 Kitesurf 实现了完整 Chrome 或所有 Chrome DevTools 功能。
如果工作依赖特定浏览器 API、复杂页面布局、扩展功能或精确截图,应先在本地验证相关工作流。不要仅凭 CDP 地址、示例页面或一次健康检查推断网站兼容性,也不要把项目公告中的性能基准链接理解为对具体网站的速度承诺。
部署到 Cloudflare 前安排费用与认证
Kitesurf 为每个页面和渲染器使用 Cloudflare Dynamic Workers 创建隔离 Worker,因此云端运行要求 Workers Paid。`wrangler dev` 是本地开发方式,不能据此推断云端部署可免费运行。公告和 README没有列出适用于每个账户的确切费用或地区可用性;预算应以 Cloudflare 当前计划和账号显示为准。
引擎本身没有认证。README 说明 workers.dev 地址默认公开,名称也可预测;知道网址的人可能通过 DevTools 或 CDP 使用实例,并消耗该账号付费资源。为避免部署后再补保护留下公开窗口,建议先为账号内 Workers 启用 Cloudflare Access,或先安排其他认证层,再部署。若实例已经部署,应立即启用访问保护。
资料来源
常见问题
本地 8787 端口已被占用怎么办?
README 给出的类 Unix shell 示例是 `KITESURF_PORT=8799 pnpm run dev`。改用 8799 后,健康检查、HTTP 发现和 CDP 客户端地址也要使用该端口,例如 `http://127.0.0.1:8799/health` 与 `ws://127.0.0.1:8799/devtools/browser`。其他 shell 需按其语法设置同名环境变量。
可以直接提交代码贡献吗?
公告欢迎贡献,但说明维护团队的审阅能力有限。提交 pull request 前应先阅读仓库贡献指南、开 issue,并取得维护者认可(vouch);不要把公开仓库理解为任何改动都会被接收。