CLI-Anything:从源码自动生成 AI Agent 可调用的 CLI
来源: HKUDS (香港大学数据科学实验室)
GitHub: https://github.com/HKUDS/CLI-Anything
发布时间: 2026-03-08
项目基本信息
| 指标 | 数值 |
|---|---|
| GitHub Stars | 7,995+ ⭐(发布几天内涨了30倍) |
| 代码行数 | ~45,501 行 Python |
| 主要语言 | Python (≥3.10) |
| 依赖 | Click ≥8.0, Pillow ≥10.0, prompt-toolkit ≥3.0 |
核心概念
目标: 让所有 GUI 软件都能被 AI Agent 调用
本质: 代码分析 + 能力映射 + CLI 封装
GUI 软件源码 → 分析架构 → 生成 CLI → Agent 调用
为什么这事儿重要:AI Agent 能力越来越强,但能调用的工具有限。大部分桌面软件没有 API,MCP 解决的是"有 API 的服务怎么接入",CLI-Anything 解决的是"没有 API 的软件怎么办"。
工作流程
- 输入: 本地路径或 GitHub 仓库地址
- 分析: 识别后端引擎、数据模型、API 调用
- 生成: 创建 Click 命令组 + Session 状态管理
- 输出: 可安装的 Python CLI 包
已支持的 8 款软件
| 软件 | 类型 | 用途 |
|---|---|---|
| GIMP | 图像编辑 | Photoshop 替代品 |
| Blender | 3D 建模/动画 | 建模、渲染、动画 |
| Inkscape | 矢量图形 | Illustrator 替代品 |
| Audacity | 音频编辑 | 录音、剪辑、降噪 |
| LibreOffice | 办公套件 | Word/Excel/PPT |
| OBS Studio | 直播录制 | 场景切换、推流 |
| Kdenlive | 视频剪辑 | 非线性视频编辑 |
| Shotcut | 视频剪辑 | 另一款视频编辑器 |
使用方式
# 安装生成的 CLI
pip install -e .
# 子命令模式
cli-anything-gimp project new --width 1920 --height 1080
cli-anything-gimp layer add-from-file photo.jpg
# REPL 交互模式
cli-anything-gimp repl
>>> project new --width 800 --height 600
>>> layer add background.png
>>> filter apply sharpen
>>> project export result.png
>>> undo
技术架构
cli_anything/<software>/
├── core/ # project.py, session.py, layers.py...
├── utils/ # repl_skin.py, helpers
├── tests/ # pytest 测试
└── <software>_cli.py # 入口文件
关键特性:
- Session 状态管理:操作历史可追溯
- Undo/Redo:支持回滚
- JSON 输出:供 Agent 解析
- REPL 交互界面:适合连续操作
与 MCP 的关系
| 维度 | CLI-Anything | MCP |
|---|---|---|
| 目标 | 让无 API 的软件可被调用 | 标准化工具接口协议 |
| 输入 | 软件源代码 | 预定义 API/服务 |
| 输出 | Python CLI 包 | JSON-RPC 服务 |
| 适用场景 | 本地开源软件 | 云服务、第三方 API |
结论: 互补关系。CLI-Anything 生成的 CLI 可作为 MCP 的底层实现。MCP 定义"怎么调用",CLI-Anything 解决"调用什么"。
打个比方:MCP 是统一的插座标准,CLI-Anything 是给没有插头的设备装一个插头。
限制
- 只能处理开源软件:需要源码分析,闭源软件走不通
- 复杂软件质量不稳定:百万行代码的项目(如 Blender)生成的 CLI 可能覆盖不全,需人工校验
- Agent 调用链路不成熟:CLI 生成了,但 AI 怎么"知道"有哪些命令可用?需要额外的文档或 Schema 暴露
- 跨平台兼容性:涉及图形渲染的场景,不同 OS 表现可能不一致
一些思考
CLI-Anything 代表了一个方向:让 AI Agent 的能力边界从"有 API 的世界"扩展到"有源码的世界"。
这带来一个有趣的价值重估——开源软件的价值不只是"免费"和"可定制",现在又多了一个维度:AI 可调用性。一个软件如果开源,就有机会被 AI Agent 无缝集成;如果闭源,就放弃了这条路径。
对于闭源软件,要实现类似效果,可能需要走另一条路:逆向工程 + 自动化测试,或者屏幕识别 + 自动化操作。但这两条路都不太现实——逆向有法律风险,屏幕操作不够稳定。
标签
#CLI #AI-Agent #开源项目 #HKUDS #Python #工具生成 #MCP