CLI-Anything 调研报告
notes/research/github/cli-anything-research-20260310.md
Port 8777
---
title: CLI-Anything 调研报告
category: research/github
source_type: github
created_by: xiaomeixia
status: archived
migrated_from: agent-notes/xiaomeixia/research/github/cli-anything-research-20260310.md
tags: []
---
# CLI-Anything 调研报告
**来源**: https://github.com/HKUDS/CLI-Anything
**调研时间**: 2026-03-10
**调研人**: 小美虾 🦐
---
## 📌 一句话总结
**CLI-Anything**: 让任何软件一键变成"Agent 原生"工具 —— 通过自动生成 CLI 接口,让 AI Agent 能够控制真实的专业软件(GIMP、Blender、LibreOffice 等),无需 API、无需 GUI 自动化。
---
## 🎯 核心价值
> "Today's Software Serves Humans👨💻. Tomorrow's Users will be Agents🤖."
**核心洞察**: CLI 是 AI Agent 和人类的最佳通用接口:
- ✅ **结构化 & 可组合** - 文本命令匹配 LLM 输出格式,可链式调用
- ✅ **轻量 & 通用** - 最小开销,跨所有系统无需依赖
- ✅ **自描述** - `--help` 提供自动文档,Agent 可自主发现
- ✅ **已验证成功** - Claude Code 每天通过 CLI 运行数千真实工作流
- ✅ **Agent 优先设计** - 结构化 JSON 输出消除解析复杂度
- ✅ **确定性 & 可靠** - 一致的结果支持可预测的 Agent 行为
---
## 🔧 工作原理
### 7 阶段自动化流水线
```
/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 |
### 输出示例
```bash
# 为 GIMP 生成完整 CLI
/cli-anything ./gimp
# 安装到 PATH
cd gimp/agent-harness && pip install -e .
# 从任何地方使用
cli-anything-gimp --help
cli-anything-gimp project new --width 1920 --height 1080 -o poster.json
cli-anything-gimp --json layer add -n "Background" --type solid --color "#1a1a2e"
# 进入交互式 REPL
cli-anything-gimp
```
---
## 🎨 已验证的软件 (9 款,1436 个测试 100% 通过)
| 软件 | 领域 | 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,011 单元测试 + 425 E2E 测试
- 100% 通过率
- 真实软件后端验证(非模拟)
---
## 💡 解决的痛点
| 当前痛点 | CLI-Anything 方案 |
|----------|------------------|
| 🤖 "AI 无法使用真实工具" | 直接集成真实软件后端(Blender、LibreOffice、FFmpeg)—— 完整专业能力,零妥协 |
| 💸 "UI 自动化频繁崩溃" | 无需截图、无需点击、无需 RPA 脆弱性。纯命令行可靠性 + 结构化接口 |
| 📊 "Agent 需要结构化数据" | 内置 `--json` 输出,无缝 Agent 消费 + 人类可读格式调试 |
| 🔧 "定制集成成本高" | 一个 Claude 插件通过 7 阶段流水线为任何代码库自动生成 CLI |
| ⚡ "原型 vs 生产差距" | 1,436+ 真实软件测试验证。9 款主流应用实战检验 |
---
## 🚀 使用场景
### 1. 开源项目 Agent 化
任何 GitHub 仓库 → 一键生成 CLI → Agent 可控
- VSCodium, WordPress, Calibre, Zotero, Joplin, Logseq, Penpot...
### 2. AI/ML 平台自动化
- Stable Diffusion WebUI, ComfyUI, InvokeAI, Open WebUI, Fooocus, Kohya_ss...
### 3. 数据与分析
- JupyterLab, Apache Superset, Metabase, DBeaver, KNIME, Orange...
### 4. 开发工具
- Jenkins, Gitea, Portainer, pgAdmin, SonarQube, ArgoCD...
### 5. 创意与媒体
- Blender, GIMP, OBS, Audacity, Krita, Kdenlive, Shotcut, Inkscape...
### 6. 科学计算
- ImageJ, FreeCAD, QGIS, ParaView, Gephi, KiCad, JASP...
### 7. 企业与办公
- NextCloud, GitLab, Grafana, LibreOffice, Odoo, ERPNext...
---
## 📦 安装与使用
### 作为 Claude Code 插件(推荐)
```bash
# 添加 CLI-Anything 市场
/plugin marketplace add HKUDS/CLI-Anything
# 安装插件
/plugin install cli-anything
# 为任何软件生成 CLI
/cli-anything <software-path-or-repo>
```
### 手动安装
```bash
# 克隆仓库
git clone https://github.com/HKUDS/CLI-Anything.git
# 复制插件到 Claude Code 目录
cp -r CLI-Anything/cli-anything-plugin ~/.claude/plugins/cli-anything
# 重载插件
/reload-plugins
```
### 生成的 CLI 使用示例
```bash
# LibreOffice 示例
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 export render output.pdf -p pdf
# Blender 示例 (REPL 模式)
$ cli-anything-blender
blender> scene new --name ProductShot
blender[ProductShot]> object add-mesh --type cube --location 0 0 1
blender[ProductShot]*> render execute --output render.png --engine CYCLES
blender[ProductShot]> exit
```
---
## 🏗️ 架构设计
### 核心原则
1. **真实软件集成** - CLI 必须调用真实应用进行渲染,非替代实现
2. **灵活交互模式** - 状态化 REPL(交互式) + 子命令接口(脚本/流水线)
3. **一致用户体验** - 统一 REPL 界面(repl_skin.py),品牌化横幅、样式提示、命令历史
4. **Agent 原生设计** - 每个命令支持 `--json` 标志,结构化数据供机器消费
5. **零妥协依赖** - 真实软件是硬性要求,测试失败(非跳过)当后端缺失
### 项目结构
```
cli-anything/
├── cli-anything-plugin/ # Claude Code 插件
│ ├── HARNESS.md # 方法论 SOP(真相来源)
│ ├── README.md
│ ├── QUICKSTART.md
│ ├── PUBLISHING.md
│ ├── repl_skin.py # 统一 REPL 接口
│ ├── commands/
│ │ ├── cli-anything.md
│ │ ├── refine.md
│ │ ├── test.md
│ │ └── validate.md
│ └── scripts/
│ └── setup-cli-anything.sh
│
├── gimp/agent-harness/ # GIMP CLI (107 测试)
├── blender/agent-harness/ # Blender CLI (208 测试)
├── inkscape/agent-harness/ # Inkscape CLI (202 测试)
├── audacity/agent-harness/ # Audacity CLI (161 测试)
├── libreoffice/agent-harness/# LibreOffice CLI (158 测试)
├── obs-studio/agent-harness/ # OBS CLI (153 测试)
├── kdenlive/agent-harness/ # Kdenlive CLI (155 测试)
├── shotcut/agent-harness/ # Shotcut CLI (154 测试)
└── drawio/agent-harness/ # Draw.io CLI (138 测试)
```
---
## 📚 关键文档
| 文档 | 说明 |
|------|------|
| [HARNESS.md](https://github.com/HKUDS/CLI-Anything/blob/main/cli-anything-plugin/HARNESS.md) | 方法论 SOP - 单一真相来源 |
| [README.md](https://github.com/HKUDS/CLI-Anything/blob/main/cli-anything-plugin/README.md) | 插件文档 - 命令、选项、阶段 |
| [QUICKSTART.md](https://github.com/HKUDS/CLI-Anything/blob/main/cli-anything-plugin/QUICKSTART.md) | 5 分钟入门指南 |
| [PUBLISHING.md](https://github.com/HKUDS/CLI-Anything/blob/main/cli-anything-plugin/PUBLISHING.md) | 分发和发布指南 |
---
## 💡 关键经验教训 (来自 HARNESS.md)
| 教训 | 说明 |
|------|------|
| **使用真实软件** | CLI 必须调用真实应用渲染,不能用 Pillow 替代 GIMP |
| **渲染差距** | GUI 应用在渲染时应用效果,需用原生渲染器 |
| **滤镜翻译** | 格式映射时注意滤镜合并、流排序、参数空间差异 |
| **时间码精度** | 非整数帧率 (29.97fps) 导致累积舍入,用 `round()` 非 `int()` |
| **输出验证** | 验证魔法字节、ZIP/OOXML 结构、像素分析、音频 RMS 级别 |
---
## 🔗 与 OpenClaw 的关联
### 潜在集成点
1. **技能生成** - CLI-Anything 可生成 SKILL.md,与 OpenClaw 技能系统对接
2. **服务器管理** - 为服务器上的软件(Xray、Nginx 等)生成 CLI
3. **媒体处理** - 集成 GIMP/Blender/Audacity CLI 到媒体处理流程
4. **文档生成** - 用 LibreOffice CLI 自动生成报告 PDF
5. **自动化流水线** - 将 CLI 集成到 Cron 任务中
### 建议行动
1. **安装 CLI-Anything 插件** - 在支持的环境中(Claude Code)
2. **为常用工具生成 CLI** - 如 Xray、Nginx、FFmpeg 等
3. **创建 OpenClaw 技能** - 封装生成的 CLI 为技能
4. **集成到现有技能** - 如 `server-health-monitor` 可调用生成的 CLI
---
## 📊 对比分析
| 方案 | CLI-Anything | UI 自动化 (Selenium 等) | 直接 API |
|------|--------------|------------------------|----------|
| **覆盖率** | ✅ 100% 功能 | ⚠️ 依赖 UI 元素 | ❌ 有限 API |
| **稳定性** | ✅ 高(CLI 稳定) | ❌ 低(UI 易变) | ✅ 高 |
| **开发成本** | ✅ 自动(1 命令) | ❌ 高(手动脚本) | ⚠️ 中(需 API) |
| **Agent 友好** | ✅ 原生设计 | ❌ 需额外解析 | ⚠️ 需适配 |
| **JSON 输出** | ✅ 内置 | ❌ 需转换 | ⚠️ 部分支持 |
---
## 🎯 小美虾的建议
### 立即可用
1. **为 OpenClaw 网关生成 CLI** - 简化配置和管理
2. **为常用服务生成 CLI** - Nginx、Docker、Systemd 等
3. **集成到技能系统** - 将生成的 CLI 封装为技能
### 中长期
1. **建立 CLI 库** - 收集常用工具的 CLI harness
2. **自动化工作流** - 结合 Cron 实现定时任务
3. **社区贡献** - 发布 OpenClaw 相关的 CLI harness
---
## 🔗 相关链接
- **GitHub**: https://github.com/HKUDS/CLI-Anything
- **中文文档**: https://github.com/HKUDS/CLI-Anything/blob/main/README_CN.md
- **方法论**: https://github.com/HKUDS/CLI-Anything/blob/main/cli-anything-plugin/HARNESS.md
- **快速开始**: https://github.com/HKUDS/CLI-Anything/blob/main/cli-anything-plugin/QUICKSTART.md
---
_调研报告由小美虾生成 🦐_