CLI-Anything 调研报告
CLI-Anything 调研报告
一、项目概述
1.1 基本信息
| 项目信息 | 详情 |
|---|---|
| 项目名称 | CLI-Anything |
| 开发者 | HKUDS (香港大学数据科学实验室) |
| GitHub | https://github.com/HKUDS/CLI-Anything |
| 开源协议 | MIT License |
| 编程语言 | Python |
| 核心框架 | Click |
| 当前状态 | 活跃开发中 |
1.2 一句话介绍
CLI-Anything 是一个革命性的工具,能够将任何软件转换为 AI Agent 原生的 CLI 接口,让 AI 智能体可以直接控制和操作各类应用程序。
1.3 核心理念
"Making ALL Software Agent-Native" — 让所有软件都成为 Agent 原生
传统软件设计为人机交互(HCI),CLI-Anything 的愿景是让软件能够直接被 AI Agent 控制和操作,实现真正的 Agent-Native Software。
1.4 发展背景
随着 AI Agent 技术的快速发展,如何让 AI 智能体有效地控制和操作现有软件成为关键挑战。CLI-Anything 提供了一套系统化的方法论和工具链,自动将任何软件转换为 AI 可操作的 CLI 接口。
二、核心功能
2.1 功能概览
| 功能模块 | 描述 |
|---|---|
| 7阶段自动化流水线 | Analyze → Design → Implement → Plan Tests → Write Tests → Document → Publish |
| HARNESS.md 方法论 | 将软件 Agent 化的标准操作流程 |
| SKILL.md 自动生成 | 为 AI Agent 发现生成技能定义 |
| ReplSkin 统一接口 | 跨所有生成 CLI 的统一 REPL 界面 |
| 真实软件集成 | 直接调用真实应用程序后端 |
| 多平台支持 | Claude Code、OpenCode、Goose、Qodercli、OpenClaw、Codex |
2.2 7阶段自动化流水线
CLI-Anything 的核心创新是其 7 阶段自动化流水线:
┌─────────────────────────────────────────────────────────────────┐
│ CLI-Anything Pipeline │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────┐ ┌─────────┐ ┌────────────┐ ┌─────────────┐ │
│ │ Analyze │ → │ Design │ → │ Implement │ → │ Plan Tests │ │
│ │ 分析 │ │ 设计 │ │ 实现 │ │ 规划测试 │ │
│ └─────────┘ └─────────┘ └────────────┘ └─────────────┘ │
│ │ │ │ │ │
│ ▼ ▼ ▼ ▼ │
│ 理解代码库 设计CLI架构 实现CLI命令 规划测试用例 │
│ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ Write Tests │ → │ Document │ → │ Publish │ │
│ │ 编写测试 │ │ 文档化 │ │ 发布 │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ 实现测试代码 生成文档和 发布到各平台 │
│ SKILL.md │
└─────────────────────────────────────────────────────────────────┘
各阶段详解:
| 阶段 | 功能 | 输入 | 输出 |
|---|---|---|---|
| Phase 1: Analyze | 深度分析目标软件的代码库 | 源代码 | 代码结构分析 |
| Phase 2: Design | 设计 CLI 架构和命令结构 | 分析结果 | CLI 设计文档 |
| Phase 3: Implement | 实现 CLI 命令和接口 | 设计文档 | CLI 代码 |
| Phase 4: Plan Tests | 规划测试策略和用例 | CLI 代码 | 测试计划 |
| Phase 5: Write Tests | 编写自动化测试 | 测试计划 | 测试代码 |
| Phase 6: Document | 生成文档和 SKILL.md | CLI 代码 | 文档/技能定义 |
| Phase 7: Publish | 发布到各 AI 平台 | 完整包 | 发布版本 |
2.3 HARNESS.md 方法论
HARNESS.md 是 CLI-Anything 的核心方法论文档,定义了将软件 Agent 化的标准操作流程:
# HARNESS.md 核心内容
## 核心原则
1. 真实软件集成 — 不模拟,直接调用真实后端
2. 完整功能覆盖 — 覆盖软件的核心功能
3. 一致性接口 — 统一的 CLI 设计模式
4. 可测试性 — 100% 自动化测试覆盖
## 必需组件
- cli.py: 主 CLI 入口
- commands/: 命令模块目录
- tests/: 测试目录
- SKILL.md: Agent 技能定义
2.4 SKILL.md 自动生成
CLI-Anything 自动生成 SKILL.md 文件,让 AI Agent 能够发现和使用生成的 CLI:
# SKILL.md 示例结构
## 触发条件
- 当用户需要操作 [软件名] 时
- 当用户提到 [相关关键词] 时
## 可用命令
- `command1`: 功能描述
- `command2`: 功能描述
## 使用示例
- 示例1: 具体用法
- 示例2: 具体用法
2.5 ReplSkin 统一接口
ReplSkin 提供跨所有生成 CLI 的统一 REPL 界面:
# repl_skin.py 核心功能
class ReplSkin:
"""统一的 REPL 接口"""
def start(self):
"""启动交互式 REPL"""
def execute(self, command: str):
"""执行命令"""
def autocomplete(self, partial: str):
"""命令自动补全"""
def history(self):
"""命令历史"""
统一接口的优势: - 一致的用户体验 - 降低学习成本 - 便于 Agent 理解和操作 - 统一的错误处理
三、支持的应用
3.1 已适配软件列表
CLI-Anything 已成功适配 13 款主流软件,拥有 1,588 个测试用例,100% 通过率:
| 软件 | 类型 | 测试数量 | 状态 |
|---|---|---|---|
| GIMP | 图像编辑 | 107 | ✅ |
| Blender | 3D 建模 | 208 | ✅ |
| Inkscape | 矢量图形 | 202 | ✅ |
| Audacity | 音频编辑 | 161 | ✅ |
| LibreOffice | 办公套件 | 158 | ✅ |
| OBS Studio | 直播录制 | 153 | ✅ |
| Kdenlive | 视频编辑 | 155 | ✅ |
| Shotcut | 视频编辑 | 154 | ✅ |
| Zoom | 视频会议 | 22 | ✅ |
| Draw.io | 图表绘制 | 138 | ✅ |
| Mermaid | 流程图 | 10 | ✅ |
| AnyGen | 代码生成 | 50 | ✅ |
| ComfyUI | AI 绘图 | 70 | ✅ |
| 总计 | — | 1,588 | 100% |
3.2 覆盖领域
┌─────────────────────────────────────────────────────────────┐
│ CLI-Anything 应用覆盖 │
├─────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ 图像处理 │ │ 3D 建模 │ │ 音频处理 │ │
│ │ GIMP │ │ Blender │ │ Audacity │ │
│ │ Inkscape │ │ │ │ │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ 视频编辑 │ │ 办公套件 │ │ 直播录制 │ │
│ │ Kdenlive │ │ LibreOffice │ │ OBS Studio │ │
│ │ Shotcut │ │ │ │ │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ 视频会议 │ │ 图表绘制 │ │ AI 绘图 │ │
│ │ Zoom │ │ Draw.io │ │ ComfyUI │ │
│ │ │ │ Mermaid │ │ │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘
四、技术架构
4.1 整体架构
┌─────────────────────────────────────────────────────────────────┐
│ CLI-Anything 架构 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ AI Agent 平台层 │ │
│ │ ┌───────┐ ┌────────┐ ┌──────┐ ┌────────┐ ┌──────────┐ │ │
│ │ │Claude │ │OpenCode│ │Goose │ │Qodercli│ │OpenClaw │ │ │
│ │ │ Code │ │ │ │ │ │ │ │ Codex │ │ │
│ │ └───────┘ └────────┘ └──────┘ └────────┘ └──────────┘ │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ CLI-Anything 核心 │ │
│ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ │
│ │ │ 7-Phase │ │ HARNESS.md │ │ ReplSkin │ │ │
│ │ │ Pipeline │ │ Methodology │ │ Interface │ │ │
│ │ └──────────────┘ └──────────────┘ └──────────────┘ │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ 生成层 - Agent Harness │ │
│ │ ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐│ │
│ │ │ GIMP │ │Blender │ │LibreOffice│ │OBS │ │ ... ││ │
│ │ │ CLI │ │ CLI │ │ CLI │ │ CLI │ │ ││ │
│ │ └────────┘ └────────┘ └────────┘ └────────┘ └────────┘│ │
│ └─────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ 目标软件层 │ │
│ │ ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐│ │
│ │ │ GIMP │ │Blender │ │LibreOffice│ │OBS │ │ ... ││ │
│ │ │ App │ │ App │ │ App │ │ App │ │ ││ │
│ │ └────────┘ └────────┘ └────────┘ └────────┘ └────────┘│ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
4.2 目录结构
cli-anything/
├── cli-anything-plugin/ # Claude Code 插件
│ ├── HARNESS.md # 方法论文档 (SOP)
│ ├── repl_skin.py # 统一 REPL 接口
│ ├── commands/ # 插件命令
│ │ ├── __init__.py
│ │ └── cli.py
│ └── tests/
│
├── gimp/ # GIMP CLI
│ └── agent-harness/
│ ├── cli.py # CLI 入口
│ ├── commands/ # 命令模块
│ ├── tests/ # 107 个测试
│ └── SKILL.md # Agent 技能定义
│
├── blender/ # Blender CLI
│ └── agent-harness/
│ ├── cli.py
│ ├── commands/
│ ├── tests/ # 208 个测试
│ └── SKILL.md
│
├── libreoffice/ # LibreOffice CLI
│ └── agent-harness/
│ ├── cli.py
│ ├── commands/
│ ├── tests/ # 158 个测试
│ └── SKILL.md
│
└── ... (其他应用)
4.3 Agent Harness 标准结构
每个生成的 CLI 都遵循标准结构:
{app-name}/agent-harness/
├── cli.py # Click CLI 入口
├── commands/ # 命令模块
│ ├── __init__.py
│ ├── file_ops.py # 文件操作命令
│ ├── edit.py # 编辑命令
│ └── ...
├── tests/ # 自动化测试
│ ├── __init__.py
│ ├── test_cli.py
│ ├── test_commands.py
│ └── ...
├── SKILL.md # Agent 技能定义
├── HARNESS.md # 方法论文档
└── requirements.txt # 依赖
4.4 核心技术栈
| 组件 | 技术 | 用途 |
|---|---|---|
| CLI 框架 | Click | 命令行接口实现 |
| REPL | repl_skin.py | 交互式界面 |
| 测试 | pytest | 自动化测试 |
| 插件系统 | Claude Code Plugin | AI 平台集成 |
| 文档 | Markdown | 文档和 SKILL.md |
五、支持的 AI 平台
5.1 平台兼容性
CLI-Anything 生成的 CLI 支持多个主流 AI Agent 平台:
| 平台 | 类型 | 支持状态 |
|---|---|---|
| Claude Code | Anthropic | ✅ 完全支持 |
| OpenCode | 开源 | ✅ 完全支持 |
| Goose | Block | ✅ 完全支持 |
| Qodercli | 开源 | ✅ 完全支持 |
| OpenClaw | 开源 | ✅ 完全支持 |
| Codex | OpenAI | ✅ 完全支持 |
5.2 平台集成方式
┌─────────────────────────────────────────────────────────────┐
│ 平台集成架构 │
├─────────────────────────────────────────────────────────────┤
│ │
│ AI Agent 平台 │
│ │ │
│ ▼ │
│ ┌─────────────────┐ │
│ │ SKILL.md 发现 │ ← Agent 读取技能定义 │
│ └─────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────┐ │
│ │ CLI 命令调用 │ ← Agent 执行 CLI 命令 │
│ └─────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────┐ │
│ │ 目标软件操作 │ ← 实际控制应用程序 │
│ └─────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘
六、对比分析
6.1 CLI-Anything vs MCP
| 维度 | CLI-Anything | MCP (Model Context Protocol) |
|---|---|---|
| 设计理念 | 将软件转换为 Agent 原生 | 统一 LLM 与外部工具的协议 |
| 集成方式 | 直接调用真实软件后端 | 通过协议层抽象 |
| 适配范围 | 任意软件 | MCP 服务器生态 |
| 实现复杂度 | 需要为每个软件生成 CLI | 实现标准协议接口 |
| 真实性 | 100% 真实软件操作 | 取决于 MCP 服务器实现 |
| 测试覆盖 | 1,588 个测试用例 | 依赖各服务器 |
| AI 平台 | 多平台支持 | 主要 Claude |
选择建议: - 需要操作真实桌面应用 → CLI-Anything - 需要标准化工具协议 → MCP - 两者可以结合使用
6.2 CLI-Anything vs OpenAI Function Calling
| 维度 | CLI-Anything | OpenAI Function Calling |
|---|---|---|
| 调用方式 | CLI 命令 | JSON Schema 函数定义 |
| 平台绑定 | 多平台 | OpenAI 生态 |
| 软件集成 | 深度集成 | 需要自行实现 |
| 测试体系 | 完整测试框架 | 依赖开发者 |
| 方法论 | HARNESS.md SOP | 无标准方法 |
| 文档生成 | 自动生成 SKILL.md | 手动维护 |
选择建议: - 需要操作复杂桌面软件 → CLI-Anything - 仅需简单 API 调用 → OpenAI Function Calling - OpenAI 生态优先 → Function Calling
6.3 三种方案对比矩阵
┌─────────────────┬────────────────┬────────────────┬────────────────┐
│ 维度 │ CLI-Anything │ MCP │ Function Call │
├─────────────────┼────────────────┼────────────────┼────────────────┤
│ 桌面应用支持 │ ★★★★★ │ ★★☆☆☆ │ ★☆☆☆☆ │
│ 协议标准化 │ ★★★☆☆ │ ★★★★★ │ ★★★★☆ │
│ 测试覆盖 │ ★★★★★ │ ★★★☆☆ │ ★★☆☆☆ │
│ 多平台支持 │ ★★★★★ │ ★★★☆☆ │ ★★☆☆☆ │
│ 真实软件操作 │ ★★★★★ │ ★★★☆☆ │ ★☆☆☆☆ │
│ 学习曲线 │ ★★★☆☆ │ ★★★☆☆ │ ★★★★☆ │
│ 生态系统 │ ★★☆☆☆ │ ★★★★☆ │ ★★★★★ │
│ 文档完整性 │ ★★★★☆ │ ★★★★☆ │ ★★★★☆ │
└─────────────────┴────────────────┴────────────────┴────────────────┘
七、使用场景
7.1 适用场景
| 场景 | 描述 |
|---|---|
| 自动化内容创作 | AI Agent 批量处理图像、视频、音频 |
| 企业流程自动化 | 自动化文档处理、报表生成 |
| AI 驱动的创意工作 | AI 直接操作创意软件 |
| 测试自动化 | 自动化软件功能测试 |
| 无障碍访问 | 通过 AI 控制复杂软件 |
| 批量处理任务 | 大规模文件批量处理 |
7.2 典型用例
用例 1:AI 图像批处理
用户请求 → Claude Code → GIMP CLI → 批量处理 1000 张图片
用例 2:自动化视频编辑
用户请求 → AI Agent → Kdenlive CLI → 自动剪辑视频
用例 3:文档自动化
用户请求 → AI Agent → LibreOffice CLI → 生成报告文档
7.3 不适用场景
- 简单的 API 调用任务
- 不需要真实软件操作的场景
- 仅需文本处理的任务
- 纯 Web 服务集成
八、最佳实践
8.1 推荐做法
- 从官方模板开始
- 使用已有的 13 个应用作为参考
-
遵循 HARNESS.md 方法论
-
确保测试覆盖
- 每个命令都有对应测试
-
目标 100% 通过率
-
生成完整的 SKILL.md
- 清晰的触发条件
- 完整的命令列表
-
实用的使用示例
-
使用 ReplSkin 接口
- 保持接口一致性
- 便于 Agent 理解
8.2 避坑指南
| 问题 | 解决方案 |
|---|---|
| 软件版本不兼容 | 明确指定支持的版本范围 |
| 测试环境不稳定 | 使用容器化测试环境 |
| CLI 设计不一致 | 遵循 ReplSkin 统一模式 |
| 文档不完整 | 自动生成 SKILL.md |
九、快速开始
9.1 安装
# 克隆仓库
git clone https://github.com/HKUDS/CLI-Anything.git
cd CLI-Anything
# 安装依赖
pip install -r requirements.txt
9.2 使用已有 CLI
# 使用 GIMP CLI
cd gimp/agent-harness
python cli.py --help
# 使用 Blender CLI
cd blender/agent-harness
python cli.py --help
9.3 为新软件生成 CLI
- 准备目标软件的代码库
- 运行 7 阶段流水线
- 生成 CLI、测试和文档
- 在 AI 平台中测试
十、总结
10.1 优势
| 优势 | 说明 |
|---|---|
| 真实性 | 直接操作真实软件,无模拟 |
| 完整性 | 1,588 个测试,100% 通过率 |
| 标准化 | HARNESS.md 方法论保证一致性 |
| 多平台 | 支持 6 个主流 AI Agent 平台 |
| 自动化 | 7 阶段流水线自动生成 |
| 可扩展 | 可适配任意软件 |
10.2 劣势
| 劣势 | 说明 |
|---|---|
| 新项目 | 生态系统还在发展中 |
| 学习曲线 | 需要理解 HARNESS.md 方法论 |
| 平台依赖 | 依赖目标软件的 CLI/API 支持 |
10.3 最终评价
CLI-Anything 是 AI Agent 生态中极具创新性的项目,它解决了让 AI 直接控制桌面应用的关键问题。通过标准化的方法论和自动化流水线,显著降低了软件 Agent 化的门槛。
推荐指数: ⭐⭐⭐⭐⭐ (5/5)
适用人群: - AI Agent 开发者 - 自动化工程师 - 内容创作团队 - 企业 IT 部门