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 | 3D 建模 | cli-anything-blender | bpy (Python 脚本) | 208 |
| Inkscape | 矢量图形 | cli-anything-inkscape | 直接 SVG/XML 操作 | 202 |
| Audacity | 音频制作 | cli-anything-audacity | Python wave + sox | 161 |
| LibreOffice | 办公套件 | cli-anything-libreoffice | ODF 生成 + 无头 LO | 158 |
| OBS Studio | 直播录制 | cli-anything-obs-studio | JSON 场景 + obs-websocket | 153 |
| Kdenlive | 视频编辑 | cli-anything-kdenlive | MLT XML + melt 渲染器 | 155 |
| Shotcut | 视频编辑 | cli-anything-shotcut | 直接 MLT XML + melt | 154 |
| Draw.io | 图表绘制 | cli-anything-drawio | mxGraph XML + draw.io CLI | 138 |
如何上手
如果你使用的是 Claude Code,可以通过插件市场快速集成。当然,也可以手动克隆仓库并安装。
以 GIMP 为例,生成后的 CLI 可以这样使用:
# 查看帮助信息
cli-anything-gimp --help
# 创建项目(指定尺寸)
cli-anything-gimp project new --width 1920 --height 1080 -o poster.json
# JSON 模式(供 Agent 使用)
cli-anything-gimp --json layer add -n "Background" --type solid --color "#1a1a2e"
# 进入交互式 REPL
cli-anything-gimp
这种方式消除了复杂的解析逻辑,让 Agent 能直接理解意图并执行操作。
核心方法论:HARNESS.md
项目的核心 SOP 是 HARNESS.md。它记录了通过自动化生成流程提炼出的成熟模式,比如:
- 拒绝玩具实现:CLI 必须调用真实后端,不能用简单导出工具替代。
- 注意渲染差距:GUI 应用在渲染时才应用效果,需确保 CLI 操作文件后能正确触发渲染。
- 时间码精度:非整数帧率(如 29.97fps)需使用
round()而非int(),测试容差设为±1 帧。 - 输出验证:不能仅凭退出码 0 就认为成功,需验证 magic bytes、像素分析等。
总结
CLI-Anything 展示了如何将人类设计的软件转化为 Agent 原生工具。它不依赖 API 或 GUI 重建,而是通过封装真实软件的能力,为 AI Agent 提供了通用的访问入口。随着更多应用类别的支持,这一生态有望成为未来人机交互的重要基础设施。
