Hacker News 中文摘要

RSS订阅

Cf:面向 Cloudflare API 的智能体 CLI -- Cf: The Agentic CLI for the Cloudflare API

过去一年,agent 对 Wrangler 的使用量激增。2026 年 3 月,agent 已占 Wrangler 用量的四分之一,前一年还只有个位数百分比,上周更达到 48%。agent 每天使用的不同命令几乎是人类的两倍,用六个以上命令的可能性接近四倍。agent 喜欢 CLI,但 Wrangler 只覆盖约 280 个操作,Cloudflare 却有数千个。今年早些时候 Cloudflare 预告了解决办法,今天推出新的 CLI:cf。

正文

过去一年,agent 使用 Wrangler 的量飙升。2026年3月,agent 占了 Wrangler 使用量的四分之一,高于前一年的个位数百分比。上周,agent 使用率达到了 48%。agent 是更高产的用户,每天使用的不同命令数几乎是人类的两倍,使用六个以上命令的可能性几乎是人类四倍。agent 喜欢命令行,但 Wrangler 只提供约 280 个操作命令,而 Cloudflare 提供数千个。

今年早些时候我们预告了解决方案,今天推出新 CLI:cf,让 agent 能使用所有 Cloudflare 产品。cf 是为下一代软件开发构建的 CLI:

  • agent 可通过定制搜索和引导找到做任意事所需的命令
  • JSON 是默认接口,为人类美化打印、为 agent 压缩以最大化节省上下文
  • cloudflare.config.ts 是 Cloudflare 的新配置格式,从 Workers 开始,将 TypeScript 的安全和准确带给您和 agent 的语言服务器协议(LSP)
  • Vite 成为默认,带来最佳本地开发服务器和开发者及框架作者的插件套件

全局安装开放测试版并随时运行:npm i -g cf

cf 让你的 agent 访问整个 Cloudflare API

如果 agent 能做 Cloudflare 能做的一切会怎样?这是今年初激发我们的想法:agent 越来越强,但用 Cloudflare CLI 能做的事仍有限。Wrangler 是手工构建的,各产品团队自搞一套命令体验,即使约 280 个命令路径也难以统一模式。术语不一致(如 d1 info、hyperdrive get、workflows describe),有些团队写了数千行自定义体验却极少被用。

我们想同时标准化和大规模扩展。Forge(Cloudflare 统一 API 生成管道)使我们能直接从驱动 API 文档和 SDK 生成的 API schema 生成 CLI 命令。每个产品都有 OpenAPI schema,稍加标注就能作为 Forge 生成 CLI 的源头。这使 cf 从 Wrangler 积累的约 280 个功能扩展到覆盖超 3000 个操作的完整 Cloudflare API。现在给 agent 一个 cf,就能让它设 worker、部署、监控、用 Access 保护、买域名、用 WAF 前置,全在一个工具里完成。

为从未用过 cf 的 agent 构建

cf 为软件工程趋势构建,agent 开发正急剧改变构建部署方式。今年我们聚焦支持这种转变,cf 从头按 agent 需求打造,包含新颖的 agent 命令发现工具,我们认为不久将成 CLI 标准。

Wrangler 的优势是多年文档博客被大模型训练吸收,劣势是改动违背习得行为。推出 agent 没见过的新 CLI 看似颠覆,实则最干净。凭借设计决策、上下文注入和 AGENTS.md 追加,这种切换比让 agent 理解熟悉工具两个版本差异更不混淆。我们发布时就内置了几个此类 agent 向功能。

agent 需要过滤 JSON 而非查看表格

agent 用 Wrangler 时每个命令加 --json,再用 jq 过滤字段。但只有部分命令支持 --json,很多返回给人类看的 unicode 表格。agent 能搞懂但更费时费 token。cf 立场相反:agent 只需 JSON,若 agent 是未来主要用户,就该是默认。大多数命令人类极少访问,这显然正确。人类用户其实间接使用,agent 过滤结果按你要的格式返回更好。

但若需真实个人输入如搜域名买?对于 agent 通过长串命名参数链访问的命令,你可填表。cf 将 API 要求拆成验证输入,买复杂域名也简单。或者干脆让 agent 做。

agent 能自己找到正确的命令

面对 3000 条 CLI 路由,agent 如何快速找对操作而不撑爆上下文?我们加了 cf cli search。agent 用自然语言问需求,小型搜索索引基于 API 描述和参数提供合适命令列表。首次运行 --help 时自动告知此命令。

为你的 agent 提供类型检查的配置

新配置格式基于 TypeScript,人类和 agent 易解析,可编程写。类型配置对 agent 极有帮助:即使无先验,agent 也能轻松识别编辑配置,包括从 Wrangler 大改的 env。用 LSP 插件(如 Claude Code、Codex)的 agent 能更好解读配置格式,建议更准确。相比之下 TOML 无 schema,JSONC 有 schema 但 agent 少用。Cloudflare 内某些 Wrangler 配置从超 5000 行减了 40%,多环境变为高效工厂文件。这是通过编程从统一基础定义环境,而非复制 env 块;简单多环境 worker 用 Vite 原生的 mode 参数切换配置。

我们提供辅助函数:bindings 让 agent 发现平台能力,环境变量、存储、数据库、队列等可被编辑器自动补全解释;triggers 是新方式,在单块中定义路由、队列、计划、邮件等触发动作。可用 cf migrate 迁移 Worker 到该格式。cloudflare.config.ts 意图是管理整个 Cloudflare,未来配策略、zone、DNS 等都将通过此类型安全配置实现。

最佳的开发体验

Wrangler 初建 JS Worker 时还没 Vite,用 esbuild 打包,:8787 开发服务器自研,改要动 Miniflare 内部。Vite 是大改进,有插件生态、HMR、Rust Rolldown 构建 tree-shaking。Cloudflare Vite Plugin 是推荐建 Worker 方式,配合 Vitest plugin 提供匹配运行时的测试环境。cf 默认基于 Vite。多数 Worker 由 agent 简单迁移,少数需 esbuild、Rust 或 Python 的,cf 仍委托 Wrangler 构建部署。

从 Wrangler 迁移

迁移 Worker 只需运行 cf migrate。用 Vite 的会转成 cloudflare.config.ts;依赖 esbuild 的 cf 继续委托 Wrangler。开放测试结束将发最终 Wrangler 版引导用 cf,并在结束后维护 18 个月。新项目运行 cf init/deploy 自动装 Vite Plugin 建配置。静态站不需配置文件,cf deploy 即可部署。新 Hello World 用 cf init。cf 是开源的,问题可提交至 GitHub 仓库。

评论

讨论整体对新 CLI 持欢迎态度,但分歧集中在两点:agent 是否真的需要 CLI(还是 REST 文档就够)、以及用 TypeScript 写 CLI 是否合理;另有少数人指出发布时机与令牌配置体验的问题。

认为 CLI 是当下最好的产品发布形态

  • 有人感叹如今最出色的产品发布不少都是命令行工具,cf 受欢迎也因为它意在取代让人提不起好感的 wrangler(较多人) > 现在一些最好的产品发布居然都是 CLI。(@emadabdulrahim)

认为让 agent 写脚本调用 CLI 比直接喂文档更可靠

  • 与其把 markdown 说明交给 agent、指望它当天照做,不如让它生成脚本来调用这类工具:token 更少、更可靠、少跑偏;脚本还能放在 agent 两侧,把凭据从它的流程里彻底移除,避免一整类不想向老板汇报的事故(较多人)
  • 同时提醒:这类 CLI 很适合只读的排障会话,但只要涉及修改云基础设施,还是继续走 IaC(较多人) > 让 agent 写脚本去用这类工具,比直接把工具交给它更好:token 更少、更可靠、少跑偏。(@verdverm)

认为只用 REST API 就够了,CLI 的价值存疑

  • 有人表示靠 REST 文档,agent 已经知道几乎能做什么操作,从没遇到问题;因此想知道 CLI 是 REST 能力的子集,还是覆盖了全部(少数人)

批评用 TypeScript 写 CLI 是架构决策失误

  • 不该让用户去管理你 CLI 的依赖,CLI 应当用编译型语言写;这正说明即便 agent 能写出代码,基础计算机科学判断仍然关键——要理解决策背后的理由,再让 agent 采用正确的架构(少数人)

觉得 TypeScript 做配置格式费解但有意思

  • 对「新配置格式基于 TypeScript」这一点,有人评价为最让人挠头却也最有意思的部分(少数人)

期待原生输出 Terraform 代码

  • 单兵开发者部署 worker 时体验很好,但如果能原生产出 terraform 代码,对生产部署会是巨大的加分;鉴于它构建在 Forge 之上,希望原生的 terraform 支持也在计划中(少数人)

认为云服务形态会为 agent 而变,Cloudflare 押对了方向

  • 现有云与服务是按人类使用体验设计的,未来形态会改变;免费提供 agent 报告账户这种设计,对构建 agent 间的分享很有想象力(少数人)

指出 1.0 尚未发布、CI 还是红的

  • 版本并未真正发布、CI 处于失败状态,虽然预发布版用起来不错,但这篇帖子本可以再等几天(少数人)

指出令牌授权仍要回网页里翻找

  • 除了给自己创建带权限的令牌这件事,它什么都能做;为拿令牌还得在官网里翻出 tokens 区域,而且那个入口每周都在换位置(少数人)

有价值的补充

  • 建议支持 clidoc.dev 之类的开放 CLI 规范,让工具可被发现、自带示例
  • 顺带提到 Matt Pocock 的一个 skill:让 agent 生成交互式 bash 脚本,去处理只有人类能做或该做的事,适合 devops 类场景
  • 命名撞车:Cloudflare 的 cf 与 CloudFoundry 的 CLI 同名,有人得先卸载旧的才能避免冲突
  • 有人开玩笑说 Cloudflare 与 SoundCloud 的 favicon 现在看起来差不多,于是有了「SoundCloudflare」