Cloudflare 发布面向智能体的新命令行工具 cf
Introducing cf: the agentic CLI for the entire Cloudflare API
Cloudflare 推出了全新的命令行工具 cf,旨在让智能体能够访问整个 Cloudflare 平台中超过 3,000 种操作。
该工具默认输出 JSON 格式以节省上下文,内置自然语言搜索功能,并采用基于 TypeScript 的全新配置格式和 Vite 开发服务。
该产品直接将整个平台的 API 能力适配给智能体,读者可以通过专属配置和命令简化相关工作流。
在过去的一年里,AI 代理(agent)对 Wrangler 的使用量呈指数级增长。
2026 年 3 月,代理占 Wrangler 使用量的四分之一,而前一年这一比例仅为个位数。上周,代理的使用率达到了 48%。
代理是更高产的用户,每天使用的不同命令数量接近人类的两倍,使用 6 个或更多命令的概率接近人类的四倍。
代理非常喜欢 CLI。但 Wrangler 仅提供约 280 个操作的命令,而 Cloudflare 提供了数千个。
今年早些时候,我们预告了 我们计划如何解决这个问题,而今天,我们通过推出一个新的 CLI:cf,让代理能够使用所有的 Cloudflare 产品。
cf 是一个为下一代软件开发构建的 CLI:
- 借助定制搜索和引导,代理可以找到完成其想做的任何事情所需的命令。
- JSON 是默认接口,为人类进行了美化打印(pretty printed),为代理进行了压缩,以最大程度地节省上下文。
- cloudflare.config.ts 是整个 Cloudflare 的新配置格式,从 Workers 开始,将 TypeScript 的安全性和准确性带给您和您的代理的语言服务器协议(LSP)。
- Vite 成为默认选择,带来了最佳的本地开发服务器,以及面向开发者和框架作者的插件套件。
今天在全球范围内安装公开测试版,并从任何地方运行它:
复制提示词
Please update your global agent instructions, so you use Cloudflare's new `cf` CLI.
Add the Markdown below to the user-level instructions file that you load in every project – not this repository's AGENTS.md or CLAUDE.md. Use the file for the agent you are: Claude Code `~/.claude/CLAUDE.md`, Codex `~/.codex/AGENTS.md`, OpenCode `~/.config/opencode/AGENTS.md`, Pi `~/.pi/agent/AGENTS.md`. For any other agent, use its equivalent global rules file; if your global rules can only be set in a settings screen, tell me what to paste there instead. Create the file if it doesn't exist. Keep everything already in it, but replace any existing instruction about Wrangler or the Cloudflare CLI instead of adding a conflicting one. If the same guidance is already there, leave the file as it is. When you're done, tell me the path of the file you changed.
```markdown
## Cloudflare CLI - cf - v20260928
`cf` is Cloudflare's current CLI and covers the whole Cloudflare platform. Prefer it over Wrangler: create projects with `cf init`, develop with `cf dev`, deploy with `cf deploy`, and manage account resources with `cf <product> …` (for example `cf d1 list`).
Wrangler is only for projects that already use it – a `wrangler.jsonc`, `wrangler.json` or `wrangler.toml` file – or when the user asks for it. Keep using Wrangler in those projects unless asked to migrate, and use `cf migrate` in this case.
`cf` commands differ from Wrangler's; check `cf --help` or `cf cli search <what you want to do>` instead of guessing. If a `cf` command fails in a project that doesn't use Wrangler, don't fall back to Wrangler (including `npx wrangler`) without offering to report it.cf 让您的代理能够访问整个 Cloudflare API
如果您的代理能够做 Cloudflare 能做的所有事情会怎样?这就是今年早些时候激发我们兴趣的问题:代理变得越来越强大,但它们能够通过 Cloudflare 的 CLI 做的事情仍然有限。
Wrangler 是由每个产品团队共同构建的,他们对命令开发体验采取了各自的方法。在团队之间强制推行统一模式几乎是不可能的,甚至在我们大约 280 个命令路径中也是如此。我们在 d1 info、hyperdrive get、workflows describe 中拥有不一致的术语,因为每个团队在不同时间都提出了自己的实践。一些团队编写了数千行代码来构建完全自定义的体验,结果却极少被使用,而且各个团队还提出了不同的方法来解决相同的问题。
我们希望同时标准化工具有限的现状并实现巨大扩展。Forge(Cloudflare 全新的统一 API 生成管道)使我们能够做到这一点,它建立在直接从驱动 API 文档和 SDK 生成的 API 架构生成 CLI 命令的理念之上。我们提供的所有内容都有一个 OpenAPI 架构,如果我们为其添加一点额外的信息,就可以将其用作 Forge 生成 CLI 的源。
这使我们能够将 cf 从 Wrangler 随时间积累的大约 280 个函数扩展到涵盖拥有 3,000 多个操作的整个 Cloudflare API 表面。
现在,只需一个工具,就可以简单地将 cf 交给您的代理,并要求它去设置一个 worker、部署它、监控和观察它、用 Cloudflare Access 保护它、购买一个域名,并用 Cloudflare WAF 为其提供前端防护。
为从未用过 cf 的代理构建
cf 是为软件工程的发展轨迹而构建的,在这里,代理式开发正在彻底改变软件的构建和部署方式。今年我们专注于提供支持这一转变的工具,最终形成了 cf。cf 从零开始就以代理为中心构建,并包含我们认为在不久的将来会成为更多 CLI 标准的新型代理命令发现工具。
Wrangler 的优势在于多年的文档、博客和第三方指南已被吸收到 LLM 的训练过程中。它也带来了同样的缺点:改变 Wrangler 的工作方式现在违背了已学到的行为,而鉴于我们想要实现的改进规模,重大变更将不可避免。
推出一个代理从未见过的新 CLI 看起来像一次大规模颠覆性的变化——但实际上这是我们能做的最干净的事情。由于我们做出的设计决策、可以注入的上下文以及可以追加的 AGENTS.md 文件,这种切换方式实际上比让代理对其熟悉的工具的两个版本之间的主要差异进行上下文化更不易混淆。我们将以几项面向代理的功能预装启动,后续还会有更多功能。
代理需要过滤 JSON,而不是查看表格
当代理使用 Wrangler 时,它们会在每个运行的命令后追加 --json,并且经常使用 jq 过滤输出以提取一部分字段。但 Wrangler 中只有部分命令支持 --json;许多命令返回的是为终端中人类查看而设计的 Unicode 表格。代理可以搞清楚这些,但这比使用 jq 过滤器花费更多时间和令牌。
在 cf 中,我们采取相反的立场:代理只需要 JSON,如果代理是该工具未来的主要用户,它应该是默认设置。对于绝大多数很少被人类访问的命令,这显然是正确的选择。
你作为此 CLI 的人类客户,实际上已经与使用它隔了一步。代理能够轻松过滤其结果,然后按你请求的任何格式返回过滤后的列表,比提供你几乎不会直接阅读的表格更可取。
但如果你想做一些可能需要真实个人输入的事情,例如搜索可购买的域名,该怎么办?
对于代理可以通过在长而笨拙的序列中链式调用命名参数来访问的命令,你只需填写一个表单。Cf 将 API 的需求拆解为一系列已验证的输入,因此即使是具有复杂需求的域名购买也很容易跟随。
或者,如果你坚持,只需让你的代理去做。
你的代理可以自己找到正确的命令
在 CLI 中有 3,000 条可能的路径,代理如何在不膨胀上下文的情况下快速找到所需的正确操作?为此,我们还添加了 cf cli search。
此命令允许你的代理用自然语言询问它需要做什么,随后一个小型搜索索引将根据其 API 描述和参数提供一份合适命令列表。我们在代理第一次运行 --help 时会自动告知它此命令。
对你的代理进行类型检查的配置
我们的新配置格式基于 TypeScript,易于人类和代理解析,并允许你以编程方式编写配置。
类型化配置对代理非常有帮助。我们发现,即使没有关于程序化配置格式的先前上下文,代理也能轻松识别并按需编辑配置,即使在像 env 这样与 Wrangler 中同名功能已大幅变化的元素上也是如此。所有使用 LSP 插件(如 Claude Code 和 Codex)的代理,都能更好地理解配置文件格式的上下文,从而提供更准确的建议。
与 TOML(没有可访问的模式)或 JSONC(拥有链接模式但代理很少使用)相比。
Cloudflare 内部的一些 Wrangler 配置文件已被压缩 40%,从 5,000 行以上、每位开发者拥有众多自定义环境,转变为更高效构建每位开发者配置的工厂文件。
这通过从同一通用基底以编程方式定义每个环境实现,而不是像 Wrangler 典型做法那样复制 env 块。一个具有多环境的简单 Worker 只需切换 Vite 原生 mode 参数,即可在一组配置与另一组之间切换。
现在实现此功能的简单配置如下:
您可以通过 cf migrate 将 Cloudflare Worker 迁移到此新格式。
我们还提供了一些辅助函数,让构建 Worker 变得轻而易举。
bindings 为您的代理提供了一个简单的位置,发现开发者平台提供的一切。环境变量、存储、数据库、队列等所有内容,都可由编辑器自动完成并解释。
同样,我们为 triggers, 提供了一个辅助工具,它是定义 Worker 路由、队列、计划和电子邮件触发器的新方式。与其在配置文件中散布这些内容,不如在单一块中简单查找可能触发 Worker 运行的操作。
defineConfig.worker 仅是起点。我们对 cloudflare.config.ts 的意图是,这就是您整体管理 Cloudflare 的方式。您所需的每个产品——以及通过 cf 可供代理使用的 API——都能通过类型安全的配置来表达。很快,您将能够通过此配置文件配置整个策略、设置区域、配置 DNS 等。
一流的开发体验
当 Wrangler 最初开始构建 JavaScript Workers 时,Vite 并不存在。相反,我们在 Wrangler 中使用 esbuild 来打包你的 Workers。Wrangler 在 :8787 上提供的开发服务器是 Wrangler 团队自己构建的,修改其中任何部分都意味着要深入 Cloudflare 专用本地工具 Miniflare 的内部。
Vite 在这方面有了巨大改进,并配备了丰富的插件生态系统,提供一流的开发服务器(支持 HMR 热模块替换)以及使用 Rust 库 Rolldown 进行树摇的构建。您能用 Vite 做的任何事,都可以用 Cloudflare Vite 插件完成。
Cloudflare Vite 插件是我们建议您构建 Workers 的推荐方式,无论您在构建什么:前端聚焦项目还是后端 API。结合我们的 Vitest 插件,它提供了与 Workers 运行时匹配的统一开发和测试环境,并让您直接访问绑定和平台 API。
cf 默认基于 Vite 构建。你的大部分 Workers 可以通过 agent 轻松迁移。其他的可能需要更多时间,这就是为什么 cf 将继续把开发和部署委托给 Wrangler,以便需要继续使用 esbuild、Rust 和 Python Workers 的 JavaScript Workers 使用。
从 Wrangler 迁移
从 Wrangler 迁移 Worker 只需运行
已经使用 Vite 构建的 Worker 将为你转换为 cloudflare.config.ts 。如果你的 Worker 依赖 Wrangler 进行 esbuild,那么 cf 将继续把构建委托给 Wrangler。
当公开测试版结束时,我们将发布 Wrangler 的最后一个主要版本,指导你和你的 agent 使用 cf。在测试版结束后,我们将继续为 Wrangler 提供 18 个月的维护支持,以便你有时间进行迁移。
你还可以通过运行 cf init/deploy 来获取新项目并自动为 Cloudflare 进行配置,这会为你安装 Cloudflare Vite 插件并创建一个配置文件。
静态网站仍然不需要配置文件即可启动,部署它们只需在你的项目中运行 cf deploy 。
要使用 cf 启动一个新的 Hello World 项目,请使用 cf init。
cf 是开源的,问题可以 向我们的 GitHub 仓库报告.
Source: cloudflare blog · blog.cloudflare.com