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 推荐做法

  1. 从官方模板开始
  2. 使用已有的 13 个应用作为参考
  3. 遵循 HARNESS.md 方法论

  4. 确保测试覆盖

  5. 每个命令都有对应测试
  6. 目标 100% 通过率

  7. 生成完整的 SKILL.md

  8. 清晰的触发条件
  9. 完整的命令列表
  10. 实用的使用示例

  11. 使用 ReplSkin 接口

  12. 保持接口一致性
  13. 便于 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

  1. 准备目标软件的代码库
  2. 运行 7 阶段流水线
  3. 生成 CLI、测试和文档
  4. 在 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 部门


参考资料