CLI-Anything:让一切软件变成 Agent 原生工具
> 来源: https://github.com/HKUDS/CLI-Anything
> 团队: 香港大学数据智能实验室(Data Intelligence Lab@HKU),Chao Huang 教授
> 协议: MIT License
> 技术栈: Python 3.10+, Click CLI, Claude Code Plugin
> 测试: 1,298 个测试,100% 通过率
> 日期: 2026-03-09
📌 一句话总结
CLI-Anything 是一个 Claude Code 插件,能自动将任意开源软件的源码分析后,生成一套完整的 CLI 命令行工具,让 AI Agent 可以直接操控 Blender、GIMP、LibreOffice 等专业软件——不需要截图、不需要 GUI 自动化、不需要重写。
🎯 要解决的核心问题
AI Agent 擅长推理,但不擅长操作真正的专业软件。现有方案各有硬伤:
| 现有方案 | 问题 |
|---|---|
| GUI 自动化(RPA/截图) | 脆弱,界面一改就崩 |
| API 封装 | 大多数桌面软件没有 API |
| 重写简化版 | 丢失 90% 的功能 |
| MCP/工具协议 | 需要软件方主动适配 |
CLI-Anything 的思路:不改软件,给软件"套一层壳"——自动生成 CLI 接口,调用软件的真实后端。
🔧 工作原理:7 阶段自动管线
源代码 → 📦 CLI-Anything Plugin (Claude Code)
↓
Phase 1: 🔍 Analyze — 扫描源码,映射 GUI 操作到 API
Phase 2: 📐 Design — 设计命令组、状态模型、输出格式
Phase 3: 🔨 Implement — 构建 Click CLI + REPL + JSON 输出 + undo/redo
Phase 4: 📋 Plan Tests — 生成测试计划(TEST.md)
Phase 5: 🧪 Write Tests — 实现完整测试套件
Phase 6: 📝 Document — 更新测试结果文档
Phase 7: 📦 Publish — 生成 setup.py,安装到 PATH
↓
pip install -e . → cli-anything-<软件名> 可用
关键设计决策
1. 真实后端调用:不是模拟,是真正调用 Blender 的 bpy、LibreOffice 的 headless 模式、sox 处理音频
2. 双模式交互:命令行模式 + REPL 交互模式
3. --json 标志:每个命令都支持 JSON 输出,Agent 直接解析
4. --help 自描述:Agent 通过 which + --help 就能发现和使用工具
📊 已验证的 8 款软件
| 软件 | 领域 | 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 + headless LO | 158 |
| 📹 OBS Studio | 直播录制 | `cli-anything-obs-studio` | JSON scene + obs-websocket | 153 |
| 🎞️ Kdenlive | 视频剪辑 | `cli-anything-kdenlive` | MLT XML + melt | 155 |
| 🎬 Shotcut | 视频剪辑 | `cli-anything-shotcut` | MLT XML + melt | 154 |
| **合计** | **1,298** |
100% 通过率:895 单元测试 + 403 端到端测试。
测试分层
| 层级 | 测什么 | 示例 |
|---|---|---|
| 单元测试 | 每个核心函数 | 项目创建、图层操作、滤镜参数 |
| E2E(原生) | 文件生成管线 | ODF ZIP 结构、MLT XML 合法性 |
| E2E(真实后端) | 调用真实软件 | LibreOffice → PDF(验证 %PDF- 魔术字节) |
| CLI 子进程 | 安装后的命令 | `cli-anything-gimp --json project new` → 合法 JSON |
💡 使用示例
安装
# Claude Code 插件方式(推荐)
/plugin marketplace add HKUDS/CLI-Anything
/plugin install cli-anything
# 手动安装
git clone https://github.com/HKUDS/CLI-Anything.git
cp -r CLI-Anything/cli-anything-plugin ~/.claude/plugins/cli-anything
为任意软件生成 CLI
# 本地源码
/cli-anything /home/user/gimp
# GitHub 仓库
/cli-anything https://github.com/blender/blender
Agent 使用生成的 CLI
# 创建文档
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(调用真实 LibreOffice)
cli-anything-libreoffice --project report.json export render output.pdf -p pdf --overwrite
# → ✓ Exported: output.pdf (42,831 bytes) via LibreOffice headless
🧠 深度分析
理念:CLI 是 Agent 的最佳界面
这个项目的核心论点非常有说服力:
> "Today's Software Serves Humans. Tomorrow's Users will be Agents."
CLI 为什么比 GUI 自动化、API、MCP 更适合 Agent?
| 特性 | CLI | GUI 自动化 | API | MCP |
|---|---|---|---|---|
| 通用性 | ✅ 任何软件 | ✅ 任何有界面的 | ❌ 需要提供 | ❌ 需要适配 |
| 可靠性 | ✅ 确定性 | ❌ 界面变动即崩 | ✅ | ✅ |
| LLM 友好 | ✅ 文本输入输出 | ❌ 需要视觉 | ✅ JSON | ✅ JSON |
| 自描述 | ✅ --help | ❌ | ✅ Schema | ✅ Schema |
| 改造成本 | ⚠️ 需 Claude Code | ❌ | ❌ 软件方做 | ❌ 软件方做 |
优势
1. 零妥协的真实能力:不是"简化版 Blender",而是真正调用 Blender 渲染引擎
2. 即插即用:pip install -e . 后 Agent 通过 which 就能发现
3. 统一体验:所有生成的 CLI 共享 repl_skin.py,交互风格一致
4. 严格测试:缺少后端时测试 fail 而不是 skip,确保不是"假功能"
局限与疑问
1. 强依赖 Claude Code:7 阶段管线需要 Claude Code 的 plugin 系统执行,其他 Agent(OpenClaw、Cursor)能直接复用吗?
2. 源码分析质量:自动分析源码 → 映射 GUI 到 API 这一步,对于复杂软件(如 Blender 有上百万行代码)效果如何?
3. 维护问题:软件更新后,生成的 CLI 是否需要重新跑一遍管线?
4. 8 款之外:目前验证了 8 款,README 列出了几十个"可以做"的,但实际效果未知
5. REPL 模式的状态管理:跨会话的项目状态如何持久化?
与现有方案的对比
| 方案 | 思路 | CLI-Anything 优势 |
|---|---|---|
| **Computer Use**(Anthropic) | 截图 + 点击 | 不需要视觉模型,确定性强 |
| **MCP** | 标准化 Agent-工具协议 | 不需要软件方配合 |
| **Open Interpreter** | Python 代码执行 | 更结构化,有测试保障 |
| **browser-use** | 浏览器自动化 | 不限于 Web 应用 |
| **Lobster**(OpenClaw) | YAML 工作流 | 可互补:Lobster 编排 + CLI-Anything 执行 |
🔗 与我们的关联
直接可用
1. OpenClaw Skill 生态:CLI-Anything 生成的 CLI 可以直接作为 OpenClaw 的外部工具使用
2. Lobster 集成:在 Lobster 工作流中调用 cli-anything-* 命令,实现复杂自动化
3. 扩展 deep-research:比如用 cli-anything-libreoffice 直接生成 PDF 格式的研究报告
思考方向
1. 为 OpenClaw 本身生成 CLI?OpenClaw 已经有 CLI(openclaw),但 CLI-Anything 的理念——"让 Agent 能操控任何工具"——和 OpenClaw 的技能系统是同一方向
2. Agent 工具链的未来:CLI(标准化接口)vs MCP(协议标准)vs 原生 API——最终可能共存
3. HKU 团队的其他项目:这个实验室(HKUDS)还做了 VideoRAG、HiGPT 等,都是大模型应用方向的活跃研究组
📊 评分
| 维度 | 评分(/10) |
|---|---|
| 创新性 | 8.5 — CLI 作为 Agent 万能接口的思路清晰 |
| 技术深度 | 8.0 — 7 阶段自动管线 + 1298 个测试 |
| 实用价值 | 7.5 — 强依赖 Claude Code,通用性待验证 |
| 工程质量 | 9.0 — 测试覆盖、文档、模块化都很好 |
| 生态潜力 | 8.0 — 如果能脱离 Claude Code 依赖会更强 |
| **综合** | **8.2** |
报告由深度研究助手自动生成 | 2026-03-09
来源: https://github.com/HKUDS/CLI-Anything