CLI-Anything:一条命令让任意软件成为 AI Agent 的工具
AI Agent 能写代码、能分析数据,但让它打开 Photoshop 帮你修个图?抱歉,做不到。
这就是当前 Agent 落地的尴尬——大脑很强,手脚不行。
香港大学数据智能实验室(HKUDS)开源的 CLI-Anything 项目,用一个简单粗暴的思路解决了这个问题:既然 AI 最擅长敲命令,那就把所有软件都变成命令行工具。
一、为什么 Agent 操控软件这么难
目前让 AI 操作软件主要有两条路,但都走不通:
截图 + 模拟点击:让 Agent 看屏幕截图,然后模拟鼠标操作。
问题是界面稍微变一下,脚本就崩了。
而且效率极低,操作一个按钮可能要花几秒。
调用 API:前提是软件得有 API。
Photoshop、Blender 这些专业软件要么没 API,要么 API 能力有限,很多功能压根调不了。
所以现状是:Agent 能把任务规划得明明白白,但执行环节直接卡死。
二、CLI-Anything 的解决思路
CLI-Anything 的核心逻辑很简单:给没有命令行的软件自动生成一套 CLI 接口。
为什么选命令行?因为 CLI 天然适合 AI:
- 结构化:文本命令完美匹配大模型的输入输出格式
- 自描述:一个
--help就能告诉 AI 有哪些功能可用 - 可组合:多个命令串起来就是完整的工作流
- 稳定:不像 GUI 那样一更新界面就失效
实际上,AI 写命令的能力远比操作界面靠谱。
让 Claude 写一行 ffmpeg 命令没问题,让它精准点击一个像素位置?难。
三、怎么把软件变成 CLI
整个过程是全自动的 7 阶段流水线:
- 扫描源码:分析软件的架构、数据模型、内部 API
- 设计接口:规划命令分组和参数结构
- 生成代码:基于 Python Click 框架实现 CLI,自带 REPL 模式
- 生成测试:自动创建测试套件
- 运行测试:验证功能正确性
- 写文档:生成使用说明
- 打包安装:放进系统 PATH,随时可用
一条命令触发,几分钟后就能得到一个可用的 CLI 工具。以前人工做这事可能要几天。
四、实际能干什么
项目已经在 11 款软件上验证过,通过了 1508 项测试,覆盖率 100%。支持的软件包括:
| 类型 | 软件 |
|---|---|
| 图像处理 | GIMP |
| 3D 建模 | Blender |
| 矢量设计 | Inkscape |
| 办公套件 | LibreOffice |
| 音频编辑 | Audacity |
| 直播录制 | OBS Studio |
| 视频剪辑 | Kdenlive、Shotcut |
举个例子,用 LibreOffice 生成一份报告:
## 创建文档
cli-anything-libreoffice document new -o report.json --type writer
## 添加标题
cli-anything-libreoffice --project report.json writer add-heading -t "Q1 Report" --level 1
## 插入表格
cli-anything-libreoffice --project report.json writer add-table --rows 4 --cols 3
## 导出 PDF
cli-anything-libreoffice --project report.json export render output.pdf -p pdf这不是模拟操作,是真的在调用 LibreOffice 的能力,生成的文件和手动操作一模一样。
五、CLI-Anything vs MCP:两条路线之争
去年 MCP(Model Context Protocol)很火,它的思路是制定一个标准协议,让软件厂商主动适配。
有点像当年的 HTTP,一旦普及,生态爆发力很强。
CLI-Anything 走的是另一条路:不等厂商,自己动手生成接口。
| 维度 | MCP | CLI-Anything |
|---|---|---|
| 理念 | 定协议,等厂商适配 | 不改软件,自动生成 CLI |
| 门槛 | 需要开发者支持 | 有源码就能用 |
| 覆盖 | 取决于厂商意愿 | 取决于源码可得性 |
| 成本 | 需要部署 MCP Server | 直接本地执行 |
社区有句话说得挺有意思:「MCP is the new SOAP,CLI is the new REST」——前者追求规范,后者追求实用。
两者其实可以互补。
CLI-Anything 生成的接口,完全可以包一层 MCP 协议对外暴露。
解决的是不同层面的问题:MCP 解决「怎么调用」,CLI-Anything 解决「调用什么」。
六、上手体验
前置条件:Python 3.10+,目标软件已安装,有 Claude Code 或 OpenCode 环境。
以 GIMP 为例:
## 安装插件
/plugin marketplace add HKUDS/CLI-Anything
## 生成 CLI
/cli-anything:cli-anything ./gimp
## 安装使用
cd gimp/agent-harness && pip install -e .
cli-anything-gimp --help如果一次生成不完整,可以用 /cli-anything:refine 命令针对特定功能补充。
七、目前的局限
说实话,这个项目还不是开箱即用的完美方案:
- 只能处理开源软件:需要源码分析,Adobe 全家桶之类的闭源软件没戏(你不会天真的以为像微信、QQ、抖音这种也能操作吧?)
- 依赖强模型:生成过程需要 Claude Sonnet 4 级别的模型,弱模型容易出问题
- 复杂软件可能不全:像 Blender 这种巨型项目,一次生成可能覆盖不了所有功能
- Agent 集成还要额外工作:生成了 CLI,还得告诉 Agent 怎么用
但方向是对的。
现在开源软件相比闭源多了一个新优势:AI 可调用性。
未来软件的竞争,可能不只是功能比拼,还要看能不能被 Agent 接管。
常见问题
Q1. CLI-Anything 和传统自动化脚本有什么区别?
传统脚本是针对特定任务硬编码的,换个需求就要重写。
CLI-Anything 生成的是通用接口,AI 可以根据不同任务自由组合命令。
而且传统脚本模拟 GUI 操作,稳定性差;CLI 是直接调用软件内部能力,更可靠。
Q2. 支持 Windows 吗?
支持,但部分涉及图形渲染的功能可能在不同系统上表现不一致。
建议先在测试环境验证。
Q3. 闭源软件真的没办法吗?
理论上可以反编译后分析,但质量会大打折扣,而且可能涉及法律风险。
目前不建议在闭源软件上使用。
Q4. 生成的 CLI 可以商用吗?
CLI-Anything 本身是 MIT 协议开源。
但生成的 CLI 会继承原软件的许可证,比如 GIMP 是 GPL,那生成的 CLI 也要遵守 GPL。
写在最后
CLI-Anything 代表了一种务实的思路:与其等生态成熟,不如先动手解决眼前的问题。
它把「AI Agent 能做什么」的边界又往外推了一步。
当 Agent 能像人一样操作 Blender 建模、用 LibreOffice 写文档、拿 Audacity 剪音频,很多工作流的想象空间就打开了。
项目地址:https://github.com/HKUDS/CLI-Anything
如果你在用 Claude Code 或者 OpenCode,可以试试把自己常用的开源软件 CLI 化,说不定能解锁一些新玩法。
有什么问题或者有趣的用法,欢迎在评论区聊聊。
版权声明
未经授权,禁止转载本文章。
如需转载请保留原文链接并注明出处。即视为默认获得授权。
未保留原文链接未注明出处或删除链接将视为侵权,必追究法律责任!
本文原文链接: https://fiveyoboy.com/articles/cli-anything-ai-agent-tool/
备用原文链接: https://blog.fiveyoboy.com/articles/cli-anything-ai-agent-tool/