Cloudflare 电脑使用接口

cloudflare/computer 访问 GitHub ↗
🔤 TypeScript ★ 7796 ⑂ 0 weekly #1 (+6020) 抓取 2026-08-13

一句话简介

基于 Cloudflare Workers 的浏览器自动化平台,通过云端沙箱实现远程网页操作与计算机交互任务。

标签

  • 浏览器自动化
  • 云端沙箱
  • TypeScript
  • Cloudflare Workers
  • 远程计算

适用应用场景

  • 云端网页数据抓取与自动化操作
  • AI 代理远程控制浏览器完成任务
  • 在隔离沙箱中运行不可信代码与脚本
  • 构建可扩展的无服务器爬虫服务

README 中文摘要

项目概述

Cloudflare Computer 是一个运行在 Durable Object 之内的虚拟文件系统。它以 SQLite 存储权威状态,并通过 workspace.runtime 暴露可插拔的执行层。当前内置三种后端实现,均以惰性连接方式按需接入。

三种执行后端

Container 后端:将 SQLite 状态作为真实 FUSE 挂载投射到沙箱容器中,由 computerd 守护进程负责挂载文件系统,并通过 capnweb RPC 通道回传变更。该后端提供完整的 Linux 用户态、真实二进制与真实网络能力。

Isolate shell 后端:在 Dynamic Worker 中运行 just-bash。它直接通过 Workers RPC 访问权威 Workspace,不存在第二份存储或同步往返。

Isolate JavaScript 后端:在全新的 Dynamic Worker 中执行 ECMAScript 模块,提供结构化输入输出、持久化的相对导入、配置化库、基于 Workspace 的 node:fs/promises,以及可信的 ws:gitws:artifacts 模块。

Workspace 可为多个后端注册稳定 ID,通过 workspace.runtime.exec(source, { backend }) 统一调用入口;source 的语义(Shell 命令或 ECMAScript 模块)由所选后端决定。Workspace 也可以不绑定任何后端单独使用,仅暴露文件系统能力。

预览版本:该包目前为反馈目的的预览版,API 不稳定且设计可能变更,仅适合实验与原型,不建议用于生产。

使用方式

构建应用需安装 @cloudflare/computer,并参考其 packages/computer/README.md 获取安装步骤、入口映射以及 fsruntime 的示例用法。贡献者可查阅 CONTRIBUTING.mdCOLLABORATORS.md 了解协作流程与开发规范。

示例项目

examples/ 目录包含若干可运行的消费者:

  • examples/container:在容器内运行 computerd,挂载 workspace 并通过 capnweb 与 Durable Object 通信,提供 write / read / exec HTTP 接口。
  • examples/worker-shell:通过 env.LOADER 在 Dynamic Worker 中加载 just-bash,HTTP 接口与容器示例一致,但不使用容器。
  • examples/worker-javascript:与 worker-shell 类似,但 exec 改为在 Dynamic Worker 中求值 ECMAScript 模块。
  • examples/egress:在同一 URL 上分别测试容器、Worker shell、Worker JavaScript 三种后端,并配置 none / all 或自定义出站策略。
  • examples/mcp:Computer MCP 示例,提供一个由持久化 workspace、Worker shell 与 Linux 容器支撑的 Code Mode code 工具。
  • examples/think:基于 @cloudflare/think 的聊天代理,以 workspace 为工作目录,可从终端访问。
  • examples/think-compare-runtimes:在 Web UI 中并行运行同一代理任务,分别对比容器与 Worker 运行时表现。
  • examples/tutorial:分步构建一个端点:代理在主机上撰写 Markdown 菜谱卡片,再在容器中调用 pandoc 生成 PDF。
  • examples/artifacts:在 workspace 中生成 Worker 项目,并通过 Cloudflare Artifacts 发布为可克隆仓库。
  • examples/assets:将文本提示转为 Workers AI 图像,写入 workspace 并通过 @cloudflare/computer/assets 返回可分享链接。

仓库结构

该仓库为小型 monorepo:

  • packages/dofs@cloudflare/dofs):基于 Durable Object SQLite 的虚拟文件系统、同步协议组件及面向 Node 的 @platformatic/vfs 提供器。
  • packages/rpc@cloudflare/computer-rpc):Durable Object 与 computerd 共用的 capnweb 线协议类型与服务端/客户端辅助。
  • packages/computerd@cloudflare/computerd):computerd 守护进程,由 FUSE 挂载与 HTTP/WebSocket RPC 服务组成,运行于沙箱容器内。
  • packages/computer@cloudflare/computer):顶层 Computer 包,供 Durable Object 消费,仍在开发中。
  • packages/computer-computerd-linux-x64computerd linux-x64 预编译二进制的私有 Docker 镜像上下文。镜像本身即发布产物,而非 npm 包。

性能说明

computerd 的 FUSE 挂载在元数据密集型操作上优于真实磁盘,但在大块顺序 I/O 上略逊。完整基准数据见 docs/19_performance.md,其中包含 fs-bench 数值、与 cloudflare/sandbox-sdknpm install 场景下的对比及复现方法。

文档与协作

docs/ 目录收录了前瞻性的设计说明,docs/19_performance.md 提供文件系统基准结果。Bug 报告、修复提案、功能请求与设计提案可通过 Issue 与 Discussion 提交,不接受未经请求的 Pull Request,详细路径见 CONTRIBUTING.md。已在册的协作者应遵循 COLLABORATORS.md 中的构建、格式化、测试与提交规范。以代理方式工作时,可先阅读 AGENTS.md.agents/skills/ 中的技能定义。许可证为 MIT,详见 LICENSE

摘要更新于 2026-08-13 00:32:32 · 原文 6380 字符 · md5 6c7e912794ef…