Anthropic 官方 CLI「ant」:把整个 Claude API 搬进终端
不认同?欢迎来评论区辩论。
你可能在想:Claude Code 不就是 Anthropic 的 CLI 吗?不完全是。Claude Code 是个 AI 编程助手,帮你写代码的。而 ant 是另一个东西——它是 Claude Platform API 的命令行客户端,把每一个 API 端点都暴露成了 shell 命令。
可以理解为:ant 之于 Claude API,就像 aws 之于 AWS,或者 stripe 之于 Stripe。
项目地址:anthropics/anthropic-cli
本文提纲
- ant 是什么、不是什么
- 核心设计:从 OpenAPI Spec 自动生成
- 实际用法:5 个真实场景
- 技术栈拆解
- ant vs Claude Code vs Codex:定位完全不同
- 安装和快速上手
ant 是什么、不是什么
是:Claude Platform API 的完整 CLI 封装。发消息、列模型、管 Agent、管 Session、上传文件、查 Webhook——所有 API 端点都是终端命令。
不是:AI 编程助手。它不会帮你写代码、不会自动执行命令、没有 Agent Loop。它就是一个纯粹的 API 客户端。
命令遵循资源式模式:
ant <resource>[:<subresource>] <command> [flags...]
覆盖的资源:
| 资源 | 说明 |
|---|---|
messages |
Messages API,发消息、拿回复 |
models |
模型管理,列出和查询模型详情 |
beta:agents |
Beta 阶段的 Agent 管理 |
beta:sessions |
Beta 阶段的 Session 管理 |
beta:files |
Beta 阶段的文件上传 |
auth |
认证(OAuth、API Key、OIDC) |
核心设计:从 OpenAPI Spec 自动生成
这是 ant 最有意思的架构决策。
大部分 CLI 命令代码不是手写的——是从 Claude API 的 OpenAPI Spec 自动生成的。贡献者列表里排第一的 stainless-app[bot](153 次提交)就是 Stainless 的代码生成机器人。
Stainless 这家公司专门帮 API 厂商生成 SDK 和 CLI 工具,OpenAI、Stripe、Anthropic 都是他们的客户。
这意味着:
- API 新增端点,CLI 自动跟上:Spec 更新 → 重新生成 → 新命令就有了
- 手写代码极少:只维护核心逻辑(TUI、认证、JSON 处理),命令层全是生成的
- 5 个月 21 个版本:v1.0.0 到 v1.12.1,节奏很快
当然也有代价:生成的 CLI 命令风格比较"机械",不像手写的那么直觉化。但这对于 API 客户端来说,完全可接受——完整性比美观更重要。
实际用法:5 个真实场景
1. 发一条消息
ant messages create \
--model claude-opus-4-8 \
--max-tokens 1024 \
--message '{role: user, content: "Hello, Claude"}'
注意这里用的是宽松 JSON——key 不用加引号,写起来像 YAML。这是 ant 专门做的 DX 优化。
2. jq 风格提取字段
ant messages create \
--model claude-opus-4-8 \
--max-tokens 1024 \
--message '{role: user, content: "What is 2+2?"}' \
--transform content.0.text --raw-output
--transform 用 GJSON 语法直接提取响应字段,不用 pipe 给 jq。--raw-output 去掉引号,输出纯文本。
这在脚本里特别好用——一行命令拿到结果,不用解析 JSON。
3. 上传图片提问
ant messages create \
--model claude-opus-4-8 \
--max-tokens 1024 \
--message '{role: user, content: [
{type: image, source: {type: base64, media_type: image/jpeg, data: "@photo.jpg"}},
{type: text, text: "What is in this image?"}
]}'
@photo.jpg 语法——ant 自动读取文件并 base64 编码。不用手动处理文件。
4. 列出所有模型
ant models list
ant models retrieve --model-id claude-opus-4-8
不加 --transform 时,响应会进入一个交互式 TUI 浏览器(用 Charm BubbleTea 构建的),可以滚动、搜索、展开 JSON 字段。
5. 管理 Beta Agent
ant beta:agents list
ant beta:agents create --name "my-agent" ...
Claude Platform 的 Agent 功能还在 Beta,但 CLI 已经完整支持了。
技术栈拆解
MERMAID_BLOCK_0
关键技术选型:
| 组件 | 技术 | 说明 |
|---|---|---|
| 语言 | Go 1.25 | 97.1% Go |
| CLI 框架 | urfave/cli/v3 |
资源式命令路由 |
| TUI | charmbracelet/bubbletea |
交互式 JSON 浏览器 |
| JSON 处理 | tidwall/gjson |
jq 风格字段提取 |
| 构建/发布 | GoReleaser | 跨 8 个平台,deb/rpm/apk/Homebrew |
| SDK | anthropic-sdk-go v1.50.1 |
官方 Go SDK |
发布渠道覆盖很全:Homebrew (anthropics/tap/ant)、.deb、.rpm、.apk、Arch Linux AUR、Termux(Android),甚至 Windows 都支持。
ant vs Claude Code vs Codex:定位完全不同
这个对比是最容易混淆的,专门说一下:
| 维度 | ant | Claude Code | Codex CLI |
|---|---|---|---|
| 定位 | API 客户端 | AI 编程助手 | AI 编程助手 |
| 核心能力 | 调用每个 API 端点 | 读代码、改代码、跑命令 | 沙箱里写代码 |
| 交互模式 | 一次性命令 + TUI 浏览 | 对话式 REPL | 对话式 + 审批流 |
| 语言 | Go | TypeScript | TypeScript |
| 目标用户 | 后端/DevOps/自动化 | 开发者 | 开发者 |
| 类比 | aws CLI |
Cursor/Copilot | Devin |
简单说:用 Claude Code 让 AI 帮你干活,用 ant 把 Claude API 编排进你的脚本和流水线。
它们互补,不冲突。
安装和快速上手
macOS / Linux (Homebrew):
brew install anthropics/tap/ant
Go install:
go install 'github.com/anthropics/anthropic-cli/cmd/ant@latest'
认证:
# 方式 1:交互式 OAuth
ant auth login# 方式 2:环境变量
export ANTHROPIC_API_KEY=sk-ant-xxx
跑起来:
# 看看有哪些模型
ant models list# 问个问题
ant messages create \
--model claude-sonnet-4-20250514 \
--max-tokens 256 \
--message '{role: user, content: "Say hi in JSON"}' \
--transform content.0.text --raw-output
三行命令,从安装到出结果。
仓库数据:514 Star,66 Fork,MIT 协议,v1.12.1,5 个月迭代了 21 个版本。仓库地址 github.com/anthropics/anthropic-cli。
你用 Claude API 做过什么有意思的事?评论区聊聊。觉得有用点个赞让更多人看到。
作者: itech001
来源: 公众号:AI人工智能时代
网站: https://www.theaiera.cn/
每日分享最前沿的AI新闻资讯和技术研究。
本文首发于 AI人工智能时代,转载请注明出处。
