Anthropic 发布官方 CLI 工具 ant:Claude API 进入命令行时代

产品更新

Anthropic 正式推出 ant 命令行工具,开发者无需再手写 curl + JSON 就能调用 Claude API,支持消息、Agent、文件等全部能力。这是继 Claude Code 之后,Anthropic 在终端生态上的又一次发力。

不用再写 curl 了

这两天 Anthropic 悄悄上线了一个叫 ant 的命令行工具——Claude API 的官方 CLI 客户端。没有发布会,没有 Sam Altman 式的预告,GitHub 仓库 anthropics/anthropic-cli 直接开源,Homebrew 也已经收录。

用过 Claude API 的人应该都熟悉那套流程:写一个 Python 脚本,或者临时调试时用 curl 拼一段长得离谱的 JSON,headers 里塞 x-api-keyanthropic-version,body 里堆 messages 数组。简单测一个 prompt 也得来这么一套。现在 Anthropic 把这件事简化成了一行:

ant messages create --model claude-sonnet-4-5 --message "你好"

这就是 ant 的核心定位——把 Claude API 完整能力做成 Unix 风格的 CLI,能 pipe、能脚本化、能塞进 Makefile 和 CI 里。

ant CLI 在终端中调用 Claude Sonnet 4.5 的截图

和 Claude Code 不是一回事

先把容易混淆的地方说清楚。Anthropic 现在终端里有两个产品:

  • Claude Code:去年发布的 AI 编程 Agent,你跟它对话,它帮你改代码、跑测试、提交 PR,定位是「住在终端里的编程助手」;
  • ant:今天的主角,是 Claude API 的官方 CLI 客户端,对标的是 OpenAI 的 openai CLI,定位是「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 并附上修复建议;
  • 临时 RAGant 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 这次是认真在投人力维护的。

参考来源