CLI-Anything:让所有软件都能被 AI Agent 原生调用
项目背景
香港大学数据科学实验室(HKUDS)推出的 CLI-Anything 项目,核心目标非常明确:让所有软件都能被 AI Agent 原生调用。它的愿景是'今天的软件服务于人类,明天的用户将是 Agent'。目前该项目在 GitHub 上已有超过 1.1k Stars,主要使用 Python 开发。
为什么需要 CLI?
现有的 AI 方案在使用真实工具时面临不少痛点。UI 自动化往往依赖截图和点击,极其脆弱;而重新实现功能又会导致能力阉割。Agent 需要的是结构化的数据和确定的行为,但大多数软件缺乏标准化的输出格式,定制集成成本也过高。
CLI-Anything 的核心洞察在于:CLI(命令行界面)是人类和 AI Agent 的通用接口。相比 UI,它具有以下优势:
- 结构化且可组合:文本命令天然匹配 LLM 格式,便于链式组合复杂工作流。
- 轻量且通用:最小开销,跨系统无依赖。
- 自描述:
--help标志提供自动文档,Agent 可自动发现。 - 确定且可靠:一致的结果实现可预测的 Agent 行为。
技术架构与流程
项目采用七阶段全自动流水线来构建 CLI,整个过程由 LLM 驱动,从分析源代码到发布安装一气呵成:
/cli-anything <software-path-or-repo>
↓ 1. 🔍 Analyze(分析)— 扫描源代码,映射 GUI 动作到 API
↓ 2. 📐 Design(设计)— 架构命令组、状态模型、输出格式
↓ 3. 🔨 Implement(实现)— 构建 Click CLI,含 REPL、JSON 输出、撤销/重做
↓ 4. 📋 Plan Tests(规划测试)— 创建 TEST.md,含单元测试+E2E 测试计划
↓ 5. 🧪 Write Tests(编写测试)— 实现全面测试套件
↓ 6. 📝 Document(文档)— 更新 TEST.md 结果
↓ 7. 📦 Publish(发布)— 创建 setup.py,安装到 PATH
在设计原则方面,它强调真实软件集成。CLI 必须调用实际应用进行渲染,而不是用 Pillow 替代 GIMP 这种玩具实现。同时内置了 --json 标志和标准 --help 命令,方便 Agent 发现和使用。
已验证的生产级应用
目前项目已经成功为 9 个主流软件生成了 CLI 工具,总计通过了 1,436 个测试(包括 1,011 个单元测试和 425 个 E2E 测试),通过率 100%。
| 软件 | 领域 | CLI 命令示例 | 后端技术 | 测试数 |
|---|---|---|---|---|
| GIMP | 图像编辑 | cli-anything-gimp | Pillow + GEGL/Script-Fu | 107 |
| Blender |

