CLI-Anything 评测:让任意命令行工具变成 AI Agent,Python 39k 星不是没道理
CLI-Anything 是香港大学数据科学实验室开源的项目,核心思路是把任何 CLI 工具包装成 Agent 可用的接口。我试了一圈,发现它解决了一个很实际的问题。
广告
CLI-Anything 评测:让任意命令行工具变成 AI Agent,Python 39k 星不是没道理
第一次看到这个项目的名字,我还以为是又一个”万物皆可 CLI”的玩具。但看了下背后的团队——香港大学数据科学实验室,再加上 3.9 万星的体量——我觉得有必要认真试试。
项目背景
CLI-Anything 的核心命题特别直接:现在的 AI Agent 能操作浏览器、能写代码、能查数据库,但那些用了十几年的命令行工具(ffmpeg、git、docker、curl 等等)它们却用不好。为什么?因为 Agent 不知道这些工具的参数格式、不知道输出长什么样、也不知道哪些参数组合会炸。
CLI-Anything 的做法是:给每个 CLI 工具自动生成一个”认知层”——包含它的命令结构、参数说明、输入输出格式、常见用法示例。Agent 调用之前先读这个认知层,再决定怎么构造命令。
核心功能
1. 自动工具认知生成
你把一个 CLI 工具的名字丢给 CLI-Anything,它会自动去解析 --help 输出、man page、官方文档,然后生成一个结构化的 JSON 描述。这个 JSON 就是 Agent 的”说明书”。
我试了一下 ffmpeg,它生成的 JSON 包含了所有编解码器参数、输入输出格式、滤镜选项,甚至还有常见用法的示例命令。说实话,比我手写的那份还全。
2. Agent-Native 接口
生成认知层之后,CLI-Anything 会暴露一个统一接口。Agent 不需要知道 ffmpeg -i input.mp4 -c:v libx264 output.mp4 这种具体命令,而是说”把 input.mp4 转成 H.264 格式的 output.mp4”,CLI-Anything 负责翻译成实际命令。
我用 Claude Code 试了一下,让它”把当前目录所有 wav 文件压缩成 mp3”。Claude 通过 CLI-Anything 调 ffmpeg,参数设置得还挺合理——128k 码率、44100 采样率,没搞出什么妖蛾子。
3. CLI-Hub 生态
他们还做了一个 CLI-Hub(https://clianything.cc/),上面已经收录了上千个常用 CLI 工具的认知层。git、docker、kubectl、awscli、terraform 这些都有。不用自己生成,直接下载就能用。
实际使用场景
我印象最深的是两个例子:
一个是自动化运维脚本。以前让 Agent 写 shell 脚本,它总是搞错 find 的参数顺序,或者记混 tar 的压缩/解压选项。现在通过 CLI-Anything,Agent 先查认知层再构造命令,出错率明显低了。
另一个是数据处理流水线。我让 Agent 用 jq、awk、sed 组合处理一个 JSON 日志文件。没装 CLI-Anything 之前,Agent 写的 jq 过滤器十有八九语法错误。装了之后,它能先查 jq 的语法说明,再写出正确的过滤表达式。
快速上手
pip install cli-anything
cli-anything init ffmpeg # 生成 ffmpeg 的认知层
cli-anything hub install git # 从 CLI-Hub 下载 git 的认知层
然后在 Agent 配置里加上 CLI-Anything 的 MCP server 地址就行。
优缺点
优点:
- 解决了一个真实痛点:Agent 用不好 CLI 工具
- CLI-Hub 生态已经挺丰富了,常用工具基本覆盖
- 纯 Python,安装简单,没有额外依赖
- 认知层是标准 JSON,可以自己手动编辑补全
缺点:
- 对复杂交互式 CLI(比如
vim、htop)支持有限,毕竟这些不是一次命令能搞定的 - 自动生成的认知层有时候会有错,尤其是文档写得不清楚的工具
- 目前只支持命令行工具,GUI 程序不在范围内(当然这也合理)
与竞品对比
说实话,这个领域目前基本没什么竞品。Google 的 CLIA 项目有过类似想法但似乎已经停了。CLI-Anything 的优势在于它走了一条”实用主义”路线——不是搞什么通用 AI 理解,而是给每个工具写说明书,让 Agent 照说明书办事。
适合谁
如果你在用 AI Agent 做自动化工作流,尤其是涉及大量命令行工具的场景,CLI-Anything 几乎可以说是必装。它让 Agent 从”大概知道有这么个工具”进化到了”知道这工具怎么用、参数什么意思”。
3.9 万星的体量说明这个方向是对的。而且香港大学实验室的背景也让人比较放心,不是那种火了就跑的网红项目。
关于作者
柳钉鱼,全栈开发者,GitHub 重度用户。过去 3 年 Star 了 900+ 仓库,这里只写我真正用过或深度调研过的工具。
📧 发现好工具想推荐?发邮件到 [email protected]
广告