一、项目概述
CLI-Anything 是由香港大学数据科学实验室(HKUDS)开发的开源项目,核心目标是让所有软件都能被 AI Agent 原生调用。
| 项目指标 | 数值 |
|---|
| Stars | 1.1k |
| Forks | 110 |
| Watchers | 7 |
| 主要语言 | Python (99.7%) |
| 测试通过率 | 100% (1,436 tests) |
二、核心问题与解决方案
2.1 现有痛点
| 痛点 | 具体表现 |
|---|
| AI 无法使用真实工具 | 现有方案要么是脆弱的 UI 自动化,要么是功能阉割的重新实现 |
| UI 自动化不可靠 | 截图、点击、RPA 等方式容易崩溃 |
| Agent 需要结构化数据 | 缺乏标准化的输出格式 |
| 定制集成成本高 | 每个软件都需要单独开发接口 |
| 原型与生产差距大 | 缺乏真实软件验证 |
2.2 CLI-Anything 的解决思路
核心洞察:CLI(命令行界面)是人类和 AI Agent 的通用接口
- ✅ 结构化且可组合 — 文本命令匹配 LLM 格式,可链式组合复杂工作流
- ✅ 轻量且通用 — 最小开销,跨系统无依赖
- ✅ 自描述 —
--help 标志提供自动文档,Agent 可自动发现
- ✅ 已验证成功 — Claude Code 每天通过 CLI 运行数千个真实工作流
- ✅ Agent 优先设计 — 结构化 JSON 输出消除解析复杂性
- ✅ 确定且可靠 — 一致结果实现可预测的 Agent 行为
三、技术架构
3.1 七阶段全自动流水线
/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
3.2 核心设计原则
| 原则 | 说明 |
|---|
| 真实软件集成 | CLI 必须调用实际应用进行渲染,不是替代而是封装 |
| 灵活交互模式 | 有状态 REPL + 子命令接口,裸命令进入 REPL 模式 |
| 一致用户体验 | 统一 REPL 界面(repl_skin.py),品牌横幅、样式提示、命令历史 |
| Agent 原生设计 | 内置 --json 标志,标准 --help 和 which 命令发现能力 |
| 零妥协依赖 | 真实软件是硬性要求,缺失时测试失败而非跳过 |
四、已验证的 9 个生产级 CLI
| 软件 | 领域 | 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 |
| 总计 | | | | 1,436 |
测试构成:1,011 单元测试 + 425 E2E 测试,100% 通过率
五、使用方式
5.1 快速开始(Claude Code 插件)
5.2 手动安装
git clone https://github.com/HKUDS/CLI-Anything.git
cp-r CLI-Anything/cli-anything-plugin ~/.claude/plugins/cli-anything
/reload-plugins
5.3 使用生成的 CLI
cd gimp/agent-harness && pip install -e .
六、插件命令集
| 命令 | 功能 |
|---|
/cli-anything <path-or-repo> | 完整构建 CLI(全部 7 阶段) |
/cli-anything:refine <path> [focus] | 优化现有 CLI,扩展覆盖范围 |
/cli-anything:test <path-or-repo> | 运行测试并更新 TEST.md |
/cli-anything:validate <path-or-repo> | 按 HARNESS.md 标准验证 |
七、项目结构
cli-anything/
├── 📄 README.md / README_CN.md
├── 📁 assets/
├── 🔌 cli-anything-plugin/
│ ├── HARNESS.md
│ ├── QUICKSTART.md
│ ├── PUBLISHING.md
│ ├── repl_skin.py
│ └── commands/
│ ├── cli-anything.md
│ ├── refine.md
│ ├── test.md
│ └── validate.md
├── 🎨 gimp/agent-harness/
├── 🧊 blender/agent-harness/
├── ✏️ inkscape/agent-harness/
├── 🎵 audacity/agent-harness/
├── 📄 libreoffice/agent-harness/
├── 📹 obs-studio/agent-harness/
├── 🎞️ kdenlive/agent-harness/
├── 🎬 shotcut/agent-harness/
└── 📐 drawio/agent-harness/
每个 agent-harness/ 包含:
- 可安装的 Python 包(
cli_anything.<software>/)
- Click CLI 实现
- 核心模块
- 工具(含
repl_skin.py 和后端包装器)
- 全面测试
八、关键方法论:HARNESS.md
HARNESS.md 是项目的标准操作程序(SOP),编码了通过自动化生成流程提炼的成熟模式。
关键经验教训
| 教训 | 详细说明 |
|---|
| 使用真实软件 | CLI 必须调用实际应用渲染,不能用 Pillow 替代 GIMP,不能用自定义渲染器替代 Blender |
| 渲染差距问题 | GUI 应用在渲染时才应用效果,若 CLI 操作项目文件但使用简单导出工具,效果会被静默丢弃 |
| 滤镜转换 | MLT→ffmpeg 等格式映射时注意:重复滤镜合并、交错流排序、参数空间差异、不可映射效果 |
| 时间码精度 | 非整数帧率(29.97fps)导致累积舍入,用 round() 而非 int(),显示用整数运算,测试容差±1 帧 |
| 输出验证 | 不能因退出码 0 就信任导出成功,需验证:magic bytes、ZIP/OOXML 结构、像素分析、音频 RMS 电平、时长检查 |
九、应用场景分类
| 类别 | 如何 Agent 化 | 典型示例 |
|---|
| 📂 GitHub 仓库 | 自动 CLI 生成将任何开源项目转为 Agent 可控工具 | VSCodium, WordPress, Calibre, Zotero, Joplin |
| 🤖 AI/ML 平台 | 结构化命令自动化模型训练、推理流程、超参调优 | Stable Diffusion, ComfyUI, InvokeAI, Fooocus |
| 📊 数据分析 | 程序化数据处理、可视化、统计分析工作流 | JupyterLab, Superset, Metabase, DBeaver |
| 💻 开发工具 | 命令接口简化代码编辑、构建、测试、部署 | Jenkins, Gitea, Portainer, SonarQube |
| 🎨 创意媒体 | 程序化控制内容创作、编辑、渲染工作流 | Blender, GIMP, OBS, Krita, Kdenlive |
| 🔬 科学计算 | 自动化研究工作流、仿真、复杂计算 | ImageJ, FreeCAD, QGIS, ParaView, KiCad |
| 🏢 企业办公 | 将业务应用和生产力工具转为 Agent 可访问系统 | NextCloud, GitLab, Grafana, LibreOffice, ERPNext |
| 📐 图表可视化 | 程序化创建和操作图表、流程图、架构图 | Draw.io, Mermaid, PlantUML, Excalidraw |
| ✨ AI 内容生成 | 通过 AI 云 API 生成专业交付物(幻灯片、文档、图表) | AnyGen, Gamma, Beautiful.ai, Tome |
十、愿景与路线图
10.1 核心愿景
- 🌐 通用访问 — 每个软件都通过结构化 CLI 即时 Agent 可控
- 🔗 无缝集成 — Agent 无需 API、GUI、重建或复杂包装器即可控制任何应用
- 🚀 未来就绪生态 — 一条命令将人类设计的软件转为 Agent 原生工具
10.2 路线图
- 支持更多应用类别(CAD、DAW、IDE、EDA、科学工具)
- Agent 任务完成率基准测试套件
- 社区贡献的内部/定制软件 CLI
- 与 Claude Code 之外的更多 Agent 框架集成
- 支持将闭源软件和 Web 服务的 API 打包为 CLI
- 生成 SKILL.md 供 Agent 技能发现和编排
十一、核心洞察总结
- CLI 是 Agent 时代的通用语言 — 不是替代 GUI,而是为 Agent 提供结构化接口
- 真实软件调用是关键 — 生成有效项目文件→调用真实后端,拒绝玩具实现
- 测试即文档 — 1,436 个测试不仅是质量保证,更是功能规格说明
- 方法论可复现 — HARNESS.md 将经验编码为可执行的标准
- 插件化降低门槛 — 通过 Claude Code 插件市场实现一键 CLI 生成