系列前言
如果你正在使用 Claude Code、Cursor、Codex 或其他 AI 编程助手,CLI-Anything 可能会彻底改变你与软件交互的方式。这是由 HKUDS 实验室(香港大学数据科学实验室)开发的开源项目,已有 16+ 生产级软件 CLI 实现,通过 1,800+ 测试验证。
为什么需要 CLI-Anything?
AI Agent 时代的软件困境
今天的软件都是为人类设计的图形界面(GUI):
- 按钮、菜单、对话框 → 对 AI Agent 不友好
- 状态隐藏在界面背后 → Agent 无法获取
- 操作无法程序化 → Agent 无法自动化
flowchart LR
A[AI Agent] --> B{如何操作软件?}
B --> C[GUI 自动化<br/>❌ 脆弱不可靠]
B --> D[人工介入<br/>❌ 效率低下]
B --> E[API 封装<br/>✅ 结构化可靠]
style C fill:#ffcccc
style D fill:#ffcccc
style E fill:#e8f5e9
CLI-Anything 的解决方案
一条命令,将任何软件变成 Agent 可用的 CLI 工具。
flowchart TD
A[软件源代码] --> B[CLI-Anything<br/>7阶段流程]
B --> C[完整的 CLI 工具]
C --> D[AI Agent<br/>可直接调用]
style B fill:#e1f5ff
style C fill:#e8f5e9
7 阶段自动化流程
CLI-Anything 的核心是一个7 阶段管道,完全自动化:
| 阶段 | 名称 | 输出 | 核心任务 |
|---|---|---|---|
| 1 | Analyze | API 映射文档 | 扫描源码,映射 GUI 动作到 API |
| 2 | Design | 架构设计文档 | 命令组、状态模型、输出格式 |
| 3 | Implement | 可运行的 CLI | Click CLI + REPL + JSON 输出 |
| 4 | Plan Tests | TEST.md | 单元测试 + E2E 测试计划 |
| 5 | Write Tests | 测试代码 | 完整的测试套件 |
| 6 | Document | 更新 TEST.md | 测试结果与覆盖率 |
| 7 | Publish | pip 包 | setup.py + 安装到 PATH |
flowchart LR
subgraph Phase1["阶段 1-2: 分析与设计"]
A[🔍 Analyze] --> B[📐 Design]
end
subgraph Phase2["阶段 3: 实现"]
B --> C[🔨 Implement]
end
subgraph Phase3["阶段 4-6: 测试"]
C --> D[📋 Plan Tests]
D --> E[🧪 Write Tests]
E --> F[📝 Document]
end
subgraph Phase4["阶段 7: 发布"]
F --> G[📦 Publish]
end
style Phase1 fill:#e3f2fd
style Phase2 fill:#e8f5e9
style Phase3 fill:#fff3e0
style Phase4 fill:#f3e5f5
已支持的软件(16+)
CLI-Anything 已成功为以下软件生成 CLI:
| 软件 | 领域 | 测试数 |
|---|---|---|
| 🎨 GIMP | 图像编辑 | 107 |
| 🧊 Blender | 3D 建模 | 208 |
| ✏️ Inkscape | 矢量图形 | 202 |
| 📄 LibreOffice | 办公套件 | 158 |
| 🎬 Kdenlive | 视频剪辑 | 155 |
| 🎬 Shotcut | 视频剪辑 | 154 |
| 🎵 Audacity | 音频编辑 | 161 |
| 📹 OBS Studio | 直播录制 | 153 |
| 🎵 MuseScore | 乐谱制作 | 56 |
| 📐 Draw.io | 图表绘制 | 138 |
| 🎨 FreeCAD | CAD 设计 | 258 |
| 🎨 Krita | 数字绘画 | - |
| 📝 Mubu | 思维导图 | 96 |
| 📚 Zotero | 文献管理 | - |
| 📞 Zoom | 视频会议 | 22 |
| 🌐 Browser | 浏览器自动化 | - |
核心设计原则
CLI-Anything 遵循 5 项关键原则:
1. Authentic Software Integration(真实软件集成)
CLI 生成有效的项目文件,委托真实软件进行渲染。我们构建的是通向软件的接口,而非替代品。
# ❌ 错误:用 Pillow 替代 GIMP
from PIL import Image
img = Image.open("photo.jpg")
img.filter(ImageFilter.GaussianBlur(5))
# ✅ 正确:生成 GIMP 项目文件,调用真实 GIMP
cli-anything-gimp project new -o project.xcf
cli-anything-gimp --project project.xcf filter apply-blur --radius 5
cli-anything-gimp --project project.xcf export render output.jpg
2. Flexible Interaction Models(灵活交互模型)
每个 CLI 支持双模式:
- REPL 模式 - 交互式会话,适合 Agent 长时间工作
- 子命令模式 - 脚本和管道,适合自动化
# REPL 模式
$ cli-anything-blender
blender> scene new --name ProductShot
blender[ProductShot]> object add-mesh --type cube
# 子命令模式
$ cli-anything-blender scene new --name ProductShot
$ cli-anything-blender --project ProductShot object add-mesh --type cube
3. Consistent User Experience(统一用户体验)
所有生成的 CLI 共享统一的 REPL 界面:
- 品牌 Banner
- 样式化提示符
- 命令历史
- 进度指示器
- 标准化格式
4. Agent-Native Design(Agent 原生设计)
内置 --json 标志,每个命令输出结构化数据:
$ cli-anything-libreoffice --json document info --project report.json
{
"name": "Q1 Report",
"type": "writer",
"pages": 1,
"elements": 2,
"modified": true
}
5. Zero Compromise Dependencies(零妥协依赖)
真实软件是硬性要求——没有降级方案,没有优雅降级。
# 测试在没有后端时失败(而非跳过)
@pytest.mark.skipif(not is_gimp_installed(), reason="GIMP not installed")
# ❌ 不这样做
# ✅ 这样做:测试在没有 GIMP 时失败
# 确保功能真实有效
本系列教程结构
本系列共 10 篇 详细教程,涵盖从入门到高级的完整内容:
入门篇
- CLI-Anything 入门与安装 - 在各平台安装 CLI-Anything
- 第一阶段:软件分析 - 扫描源码,映射 GUI 到 API
- 第二阶段:架构设计 - 设计命令组和状态模型
核心实现篇
- 第三阶段:CLI 实现 - Click CLI + REPL 开发
- 第四阶段:测试计划 - 制定 TEST.md
- 第五阶段:测试编写 - 单元测试与 E2E 测试
发布与优化篇
- 第六阶段:文档与 SKILL.md - 完善文档和 Agent 技能定义
- 第七阶段:发布与优化 - PyPI 发布与迭代改进
高级应用篇
- 实战案例:为开源软件生成 CLI - 完整实战演示
- CLI-Hub 与生态建设 - 社区贡献与 CLI 发现
谁适合学习 CLI-Anything?
- ✅ AI 编程工具用户 - 让 Claude Code、Cursor 等能操作更多软件
- ✅ 开源软件开发者 - 为自己的软件生成 Agent 可用接口
- ✅ 自动化工程师 - 构建软件自动化工作流
- ✅ 技术团队负责人 - 推动团队 AI Agent 能力升级
前置要求
- Python 3.10+
- 基本的 CLI 使用经验
- 了解 Click 框架(可选,教程会讲解)
- 一个支持 CLI-Anything 的平台(Claude Code 推荐)
快速开始(5 分钟)
# 1. 添加 Marketplace(Claude Code)
/plugin marketplace add HKUDS/CLI-Anything
# 2. 安装插件
/plugin install cli-anything
# 3. 为软件生成 CLI
/cli-anything ./gimp
# 完成!生成的 CLI 位于 gimp/agent-harness/
使用场景示例
场景 1:自动化设计工作流
# 使用 cli-anything-blender 自动化 3D 渲染
/cli-anything-blender scene new --name BatchRender
/cli-anything-blender --project BatchRender import model --file product.obj
/cli-anything-blender --project BatchRender material apply --type metallic
/cli-anything-blender --project BatchRender render execute --output product.png
场景 2:批量文档处理
# 使用 cli-anything-libreoffice 批量生成报告
for data in reports/*.csv; do
cli-anything-libreoffice document new -o temp.json
cli-anything-libreoffice --project temp.json writer import-csv --file "$data"
cli-anything-libreoffice --project temp.json export render "${data%.csv}.pdf"
done
场景 3:AI Agent 自主操作
User: 帮我用 GIMP 给这张图片添加模糊效果
Claude Code(使用 cli-anything-gimp):
1. 分析图片格式和尺寸
2. 创建 GIMP 项目
3. 应用高斯模糊滤镜
4. 导出处理后的图片
5. 验证输出文件
与 Superpowers 的关系
CLI-Anything 与 Superpowers 是互补关系:
| Superpowers | CLI-Anything | |
|---|---|---|
| 层级 | AI Agent 行为规范 | 软件接口封装 |
| 目标 | 规范 AI 开发流程 | 让软件可被 AI 使用 |
| 触发 | 自动触发技能 | 显式调用 CLI |
| 配合 | AI 用 Superpowers 开发 CLI-Anything 生成的 CLI |
最佳实践:用 Superpowers 的 TDD、规划、调试技能来开发 CLI-Anything 生成的 CLI 工具。
参考资源
- 官方仓库: github.com/HKUDS/CLI-Anything
- CLI-Hub: hkuds.github.io/CLI-Anything
- HARNESS.md: 核心方法论文档
系列导航:
- → 下一篇:教程 1:CLI-Anything 入门与安装
讨论区:欢迎在评论区分享你的 CLI-Anything 使用经验或提出问题!