不用再写 curl 了
这两天 Anthropic 悄悄上线了一个叫 ant 的命令行工具——Claude API 的官方 CLI 客户端。没有发布会,没有 Sam Altman 式的预告,GitHub 仓库 anthropics/anthropic-cli 直接开源,Homebrew 也已经收录。
用过 Claude API 的人应该都熟悉那套流程:写一个 Python 脚本,或者临时调试时用 curl 拼一段长得离谱的 JSON,headers 里塞 x-api-key 和 anthropic-version,body 里堆 messages 数组。简单测一个 prompt 也得来这么一套。现在 Anthropic 把这件事简化成了一行:
ant messages create --model claude-sonnet-4-5 --message "你好"
这就是 ant 的核心定位——把 Claude API 完整能力做成 Unix 风格的 CLI,能 pipe、能脚本化、能塞进 Makefile 和 CI 里。

和 Claude Code 不是一回事
先把容易混淆的地方说清楚。Anthropic 现在终端里有两个产品:
- Claude Code:去年发布的 AI 编程 Agent,你跟它对话,它帮你改代码、跑测试、提交 PR,定位是「住在终端里的编程助手」;
- ant:今天的主角,是 Claude API 的官方 CLI 客户端,对标的是 OpenAI 的
openaiCLI,定位是「API 的命令行包装」。
两者的关系大致是:Claude Code 是「成品」,ant 是「原料」。Claude Code 帮你做完整工作流,ant 让你自己拼工作流。一个面向终端用户,一个面向脚本作者和后端开发者。
这个分工挺合理的。过去一年很多开发者吐槽 Anthropic 在开发者工具上做得不如 OpenAI,OpenAI CLI 早就是社区基础设施,Anthropic 这边一直只有 SDK 没有官方 CLI。现在算是补上了。
安装与基础用法
macOS 用户用 Homebrew 一行搞定:
brew install anthropics/tap/ant
如果是 Go 开发者,也可以从源码装:
git clone https://github.com/anthropics/anthropic-cli
cd anthropic-cli
go install ./cmd/ant
安装完之后配一下 API Key(沿用 SDK 的环境变量约定):
export ANTHROPIC_API_KEY=sk-ant-...
然后就可以开始用了。一些典型场景:
# 最简调用
ant messages create --model claude-sonnet-4-5 --message "用一句话解释 RAG"
# 指定 system prompt
ant messages create \
--model claude-sonnet-4-5 \
--system "你是一个资深 Go 工程师" \
--message "review 这段代码"
# 从文件读取输入
ant messages create --model claude-sonnet-4-5 --message @prompt.txt
# 把代码文件作为附件
ant messages create --model claude-sonnet-4-5 \
--message "找出这个文件里的并发 bug" \
--attachment @server.go
@filename 这个语法是 ant 的一个小巧思——参数前缀加 @ 就自动读文件内容,跟 curl 的 @ 语义一致,老 Unix 用户立刻就懂。如果你真的想传一个以 @ 开头的字符串字面量,用 @@ 转义。
Agents、Files、Beta 子命令
比起简单的 messages,ant 更有意思的地方在于它把 Anthropic 平台上一些原本只能通过 REST 调的功能也封装了。比如托管 Agent:
ant beta:agents create \
--name "code-reviewer" \
--model claude-sonnet-4-5 \
--system "你是代码审查员" \
--tools file_search
ant beta:agents list
ant beta:agents run agt_xxx --message "审一下 PR #234"
以前要用托管 Agent,你得自己写 SDK 代码、保存 agent_id、构造 run。现在终端两行命令完事,调试 Agent 编排时方便不少。
文件上传也类似:
ant files upload ./dataset.pdf
ant files list
ant files retrieve file_xxx
Beta 阶段的功能统一放在 beta: 前缀下,这种命名约定虽然啰嗦但很清楚——你一眼能看出哪些是稳定 API、哪些是还可能变的。这点比 OpenAI CLI 把 beta 和 stable 混在一起处理得更干净。
一些值得点赞的设计
用了半天,几个细节挺打动人:
第一,输出格式可控。 默认是人类可读的彩色输出,加 --json 就吐裸 JSON,加 --stream 走 SSE 流式输出。这意味着你可以这样玩:
ant messages create --model claude-sonnet-4-5 \
--message "生成一个 SQL 查询" --json | jq -r '.content[0].text' | psql mydb
这种 Unix pipe 友好的设计才是 CLI 的本分。
第二,stdin 自动识别。 不带 --message 参数时,ant 会读 stdin,于是:
cat error.log | ant messages create --model claude-sonnet-4-5 \
--system "分析这段日志,定位故障原因"
这个用法对运维和 SRE 太友好了,比起 curl + jq 组合的反人类程度,简直是降维打击。
第三,多 profile 支持。 通过 --profile 切换不同 API Key、不同 base URL:
ant --profile work messages create ...
ant --profile personal messages create ...
对同时维护多个项目、多个 key 的开发者很实用。配置存在 ~/.config/ant/config.toml。
第四,原生 Go 实现。 单个二进制、零依赖、跨平台。不像某些 CLI 工具得先装 Node 或 Python 运行时,ant 直接 brew install 就跑。在 CI/Docker 这种环境里这是刚需。
和 OpenAI CLI 对比
横向看,OpenAI 官方那个 openai CLI 一直是 Python 写的,作为 Python SDK 的副产品存在,体验偏「能用」而不是「好用」。Anthropic 这次直接用 Go 重写、做成独立项目,野心明显大一些。
几个明显差异:
| OpenAI CLI | ant | |
|---|---|---|
| 实现语言 | Python | Go |
| 分发方式 | pip | Homebrew / Go install / 二进制 |
| Agent 支持 | Assistants API(命令较繁琐) | 一等公民,专门子命令 |
| 文件 @ 语法 | 部分支持 | 全面支持 |
| Beta 隔离 | 混在主命令中 | beta: 前缀 |
| Stream 输出 | 支持 | 支持 |
当然 ant 也有不成熟的地方。目前还没有 Windows 的原生包(Windows 用户得走 go install),shell 补全只支持 bash/zsh/fish,企业级的 SSO 登录方式也还没接入。但作为 v0.x 阶段的产物,能用已经很不错了。
它对开发者意味着什么
往大了说,CLI 工具的出现往往是一个 API 平台「成熟」的标志。一个 API 刚发布时,大家用 SDK 写 demo;用得多了,就会想要 CLI 来做日常调试;CLI 用得顺了,就会冒出一堆基于 CLI 的二次工具——shell 函数、tmux 集成、Vim 插件、各种自动化脚本。
OpenAI 生态走过这条路,所以你今天能在 GitHub 上找到几千个基于 openai 命令的小工具。Anthropic 这条路才刚起步,但 ant 给出的设计水准让人觉得,社区基于它能玩出花来。
几个我能立刻想到的用法:
- Git hook:commit 时让 Claude 自动 review 改动,写不好就拒绝提交;
- 日志分析:把 ELK 的查询结果 pipe 给 ant,让模型生成异常摘要;
- CI 自动化:跑完测试把失败信息丢给 Claude,自动开 issue 并附上修复建议;
- 临时 RAG:
ant messages create --attachment @docs/*.md --message "我们的 API 怎么处理鉴权?",连向量库都不用搭。
这些场景以前不是做不了,是「太麻烦不值得做」。CLI 把门槛降到「写一行 alias」之后,做的人就多了。
顺带一提
OpenAI Hub 这边已经测过 ant 通过 ANTHROPIC_BASE_URL 指向自定义端点是可以正常工作的——把 base URL 改成 Hub 的 Anthropic 兼容地址,原本调 OpenAI 的同一个 Key 也能直接调 Claude Sonnet 4.6 和 Haiku 4.5。对于已经在 Hub 上管理多模型 Key 的团队,这是个零成本的迁移路径。
顺便提醒一下,Anthropic 此前公告 Claude Sonnet 4 和 Opus 4 会在 2026 年 6 月退役(也就是这个月),还在用老模型的脚本记得趁这次升级 CLI 顺手切到 Sonnet 4.6。
ant 的项目主页和文档在 GitHub 上,目前是 MIT 协议开源,欢迎提 issue 和 PR——从 commit 频率看 Anthropic 这次是认真在投人力维护的。
参考来源
- Claude Ant,Anthropic 官方推出的命令行工具 - linux.do:社区首发讨论帖,包含安装和基础用法演示
- anthropics/anthropic-cli - GitHub:ant CLI 官方仓库,含完整文档、源码和 release