当前位置: 首页 > news >正文

Anthropic 官方 CLI「ant」:把整个 Claude API 搬进终端

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

本文提纲

  1. ant 是什么、不是什么
  2. 核心设计:从 OpenAPI Spec 自动生成
  3. 实际用法:5 个真实场景
  4. 技术栈拆解
  5. ant vs Claude Code vs Codex:定位完全不同
  6. 安装和快速上手

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人工智能时代,转载请注明出处。

http://www.gsyq.cn/news/1509564.html

相关文章:

  • 如何构建百度网盘直链解析工具:技术实现与架构设计
  • DBX数据库管理工具
  • 告别纯理想仿真:用CGH40010F模型在ADS里手把手搭建Doherty功放(附工程文件)
  • 在哪能找到口碑靠谱的家政清洁上门?|京东自营新客7折起 - 博客万
  • ROC曲线与AUC:二分类模型评估的核心诊断工具
  • 计算机Java毕设实战-基于springboot和vue的校园二手书交易系统【完整源码+LW+部署说明+演示视频,全bao一条龙等】
  • 气候数据科学落地七道关:从茶山传感器到老年机决策
  • LLM在数字与生物流行病建模中的创新应用
  • 用Python和PuLP库实战线性规划:从对偶变量到‘影子价格’的经济学解读
  • SLAM 建图与定位 — 领域全景入门
  • 从IEEE-754到Verilog:手把手搞定实数($real)与整数($rtoi/$itor)的转换与存储
  • Python 高手编程系列三千四百零二:处理错误与速率限制
  • 告别电源噪声!用ME6211这颗高PSRR LDO,搞定你的蓝牙耳机/麦克风电路设计
  • Android Java点餐界面源码:带进度页和双样式弹窗的列表实现
  • MuleSoft+LLM企业级AI编排:构建可审计、可治理的智能服务总线
  • 【echo-agent系列文章】给 Agent 加一个可恢复的状态层
  • 图解STM32F103 USB数据流:从寄存器配置到SRAM缓冲区,一次讲清数据到底存哪了
  • 全志V853/V851s等平台LCD闪屏、花屏?可能是你的lcd_dclk_freq算错了
  • 想在周口考 CPPM,怎么报名、在哪报名? - 中供国培
  • 2026 年 AI 搜索工具对比:Perplexity、ChatGPT Search 与 Gemini 怎么选
  • 别再死记硬背了!用‘普遍性与特殊性’搞定你的LeetCode刷题与系统设计面试
  • NSK高刚性重载滚珠丝杠DFT8016-7.5技术详解
  • 终极语音克隆指南:用10分钟数据打造专属AI声音 [特殊字符]
  • 工厂老师傅的实战笔记:从PLC报警到MES工单,我们是如何一步步打通数据‘肠梗阻’的
  • 国产手持式超声波流量计十大品牌排名 - 仪表人小余
  • Mimics灰度值映射材料属性避坑指南:为什么你的股骨有限元结果不准?
  • 计算机Java毕设实战-基于Web的工艺品展示系统的设计与实现基于SpringBoot的艺术作品展示平台的设计与实现【完整源码+LW+部署说明+演示视频,全bao一条龙等】
  • [实战指南] 2026年制造业质量管理是什么?从图纸识别到数字化检验全流程
  • 手把手解读OCP NVMe SSD的Write Zeroes命令:如何用DEAC和FUA在一分钟内清空整个盘?
  • 北欧路线老年旅行团哪家好?好的北欧路线旅行社推荐 - 品牌2026