Loading... # CLI-Anything:让所有软件成为 AI Agent 原生工具 # 一、概述 ## 1. 简介 ### A. 是什么 CLI-Anything 是一个 Claude Code 插件,能够将任何软件自动转换为 AI Agent 可控制的命令行工具。通过一条命令,它可以为 GIMP、Blender、LibreOffice 等应用生成功能完整的 CLI 接口,让 AI Agent 获得直接控制专业软件的能力。 ### B. 为什么学 - **解决 AI Agent 使用软件难题**:当前 AI Agent 虽然推理能力强,但难以使用真实的专业软件 - **统一接口范式**:CLI 是 AI Agent 的理想接口,结构化、可组合、自描述 - **自动化生成**:无需手动编写代码,自动分析软件架构并生成 CLI - **生产级质量**:1,508 个测试用例验证,覆盖 11 个主流应用 ### C. 学完能做什么 - 为任何软件自动生成 CLI,让 AI Agent 可以控制 - 理解 7 阶段自动化流水线的工作原理 - 部署和使用生成的 CLI 工具 - 通过 refine 命令迭代改进 CLI 覆盖率 ## 2. 前置知识 ### A. 必备技能 - Python 3.10+ 基础 - 基本的命令行操作经验 - 理解 AI Agent 的基本概念 ### B. 推荐知识 - Click 框架(Python CLI 工具) - pytest 测试框架 - Claude Code 使用经验 # 二、环境准备 ## 1. 系统要求 - Python 3.10 或更高版本 - 目标软件已安装(如 GIMP、Blender 等) - Claude Code 或其他支持的 AI 编码代理 ## 2. 安装步骤 Claude Code 平台安装: ```bash # 添加 CLI-Anything 市场 /plugin marketplace add HKUDS/CLI-Anything # 安装插件 /plugin install cli-anything ``` 手动安装(可选): ```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 ``` ## 3. 验证安装 安装完成后,在 Claude Code 会话中输入: ```bash /cli-anything:cli-anything --help ``` # 三、核心概念 ## 1. 基本术语 - **Agent-Native(Agent 原生)**:专为 AI Agent 设计的接口,支持结构化输入输出 - **Harness(工具套件)**:为特定软件生成的完整 CLI 包 - **REPL(交互式解释器)**:命令行交互模式,支持状态持久化 - **7-Phase Pipeline**:从分析到发布的自动化流程 ## 2. 工作原理 CLI-Anything 通过自动化流程分析软件源码,理解其功能架构,然后生成标准的命令行接口。生成的 CLI 直接调用真实软件的后端,确保功能完整性。 ```mermaid graph TB A[软件源码/仓库] --> B[分析阶段] B --> C[设计阶段] C --> D[实现阶段] D --> E[测试规划] E --> F[测试编写] F --> G[文档更新] G --> H[发布安装] subgraph 生成产物 I[Click CLI] J[REPL 界面] K[JSON 输出] L[测试套件] end D --> I D --> J D --> K F --> L ```  ## 3. 架构设计 ```mermaid graph LR A[AI Agent] -->|命令| B[CLI-Anything 生成的 CLI] B -->|调用| C[真实软件后端] C -->|渲染/处理| D[输出文件] B -->|JSON 输出| A B -->|人类可读| E[终端输出] subgraph CLI-Anything 核心 F[分析引擎] G[代码生成器] H[测试框架] end F --> G G --> H ```  # 四、快速上手 ## 1. Hello World 示例 生成第一个 CLI 工具: ```bash # 为本地 GIMP 源码生成完整 CLI(所有 7 个阶段) /cli-anything:cli-anything ./gimp ``` ## 2. 核心功能演示 ```bash # 从 GitHub 仓库生成 /cli-anything:cli-anything https://github.com/blender/blender ``` ## 3. 代码讲解 上述命令会自动执行以下流程: **第 1 阶段:分析** 扫描源代码,映射 GUI 操作到 API **第 2 阶段:设计** 架构命令组、状态模型、输出格式 **第 3 阶段:实现** 构建 Click CLI,包含 REPL、JSON 输出、撤销/重做功能 **第 4 阶段:测试规划** 创建 TEST.md,包含单元测试和端到端测试计划 **第 5 阶段:测试编写** 实现全面的测试套件 **第 6 阶段:文档** 更新 TEST.md 包含测试结果 **第 7 阶段:发布** 创建 setup.py,安装到 PATH ## 4. 使用生成的 CLI ```bash # 进入生成的 harness 目录 cd gimp/agent-harness # 安装到 PATH 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 ``` # 五、进阶内容 ## 1. 常用功能 ### 插件命令列表 | 命令 | 描述 | |------|------| | `/cli-anything <path-or-repo>` | 构建完整 CLI 工具套件 | | `/cli-anything:refine <path> [focus]` | 改进现有工具套件,扩展覆盖率 | | `/cli-anything:test <path-or-repo>` | 运行测试并更新 TEST.md | | `/cli-anything:validate <path-or-repo>` | 验证是否符合 HARNESS.md 标准 | ### refine 命令使用 迭代改进 CLI 覆盖率: ```bash # 广泛改进 —— 分析所有功能的缺口 /cli-anything:refine ./gimp # 聚焦改进 —— 针对特定功能区域 /cli-anything:refine ./gimp "批量图像处理和滤镜功能" ``` refine 命令会执行以下操作: - 分析软件完整能力与当前 CLI 覆盖之间的缺口 - 为识别出的缺口实现新命令 - 添加相关测试 - 更新文档 可以多次运行以稳步扩展覆盖率,每次运行都是增量且非破坏性的。 ## 2. 最佳实践 ### 真实软件集成原则 - CLI 必须调用实际软件进行渲染 - 不使用简化替代品(如用 Pillow 替代 GIMP) - 生成有效的项目文件,然后调用真实后端 ### 测试策略 ```bash # 运行特定 CLI 的测试 cd <software>/agent-harness python3 -m pytest cli_anything/<software>/tests/ -v # 强制已安装模式(推荐用于验证) CLI_ANYTHING_FORCE_INSTALLED=1 python3 -m pytest cli_anything/<software>/tests/ -v -s ``` ### JSON 输出模式 AI Agent 可以通过 --json 标志获取结构化输出: ```bash cli-anything-libreoffice --json document info --project report.json ``` 返回格式: ```json { "name": "Q1 Report", "type": "writer", "pages": 1, "elements": 2, "modified": true } ``` ## 3. 性能优化 - 使用批量操作减少命令调用次数 - 在 REPL 模式下工作,保持会话状态 - JSON 模式比人类可读输出更快,适合 Agent 解析 # 六、实战案例 ## 1. 场景描述 为 LibreOffice 生成 CLI,让 AI Agent 能够自动创建文档、添加内容并导出为 PDF。 ## 2. 实现步骤 步骤 1:生成 CLI ```bash /cli-anything:cli-anything https://github.com/LibreOffice/core ``` 步骤 2:安装生成的 CLI ```bash cd libreoffice/agent-harness pip install -e . ``` 步骤 3:使用 CLI 创建文档 ```bash # 创建新的 Writer 文档 cli-anything-libreoffice document new -o report.json --type writer # 添加标题 cli-anything-libreoffice --project report.json writer add-heading -t "季度报告" --level 1 # 添加表格 cli-anything-libreoffice --project report.json writer add-table --rows 4 --cols 3 ``` 步骤 4:导出为 PDF ```bash cli-anything-libreoffice --project report.json export render output.pdf -p pdf --overwrite ``` ## 3. 完整 REPL 交互 ```bash $ cli-anything-blender ╔══════════════════════════════════════════╗ ║ cli-anything-blender v1.0.0 ║ ║ Blender CLI for AI Agents ║ ╚══════════════════════════════════════════╝ blender> scene new --name ProductShot ✓ Created scene: ProductShot blender[ProductShot]> object add-mesh --type cube --location 0 0 1 ✓ Added mesh: Cube at (0, 0, 1) blender[ProductShot]*> render execute --output render.png --engine CYCLES ✓ Rendered: render.png (1920×1080, 2.3 MB) via blender --background blender[ProductShot]> exit Goodbye! ``` # 七、常见问题 ## 1. 安装问题 问题:插件安装后无法识别 解决:确认 Claude Code 版本,使用 /reload-plugins 重新加载 ## 2. 生成问题 问题:生成过程失败或输出不完整 解决:确保源码可访问,检查 Python 依赖是否安装完整 ## 3. 运行问题 问题:生成的 CLI 命令无法执行 解决:确认已运行 pip install -e . 安装到 PATH # 八、应用场景 CLI-Anything 可用于多种软件类型: ### GitHub 仓库 将任何开源项目转换为 Agent 可控工具,如 VSCodium、WordPress、Calibre、Zotero 等 ### AI/ML 平台 自动化模型训练、推理管道和超参数调优,如 Stable Diffusion WebUI、ComfyUI、InvokeAI 等 ### 数据与分析工具 支持程序化数据处理、可视化和统计分析,如 JupyterLab、Apache Superset、Metabase 等 ### 开发工具 简化代码编辑、构建、测试和部署流程,如 Jenkins、Gitea、Portainer、SonarQube 等 ### 创意媒体工具 控制内容创建、编辑和渲染工作流,如 Blender、GIMP、OBS Studio、Krita、Kdenlive 等 ### 科学计算 自动化研究工作流、模拟和复杂计算,如 ImageJ、FreeCAD、QGIS、ParaView 等 ### 企业办公 将商业应用和生产力工具转换为 Agent 可访问系统,如 NextCloud、GitLab、Grafana、Mattermost 等 # 九、测试结果 CLI-Anything 在 11 个不同的应用上进行了全面测试,总计 1,508 个测试用例,100% 通过率。 | 软件 | 领域 | CLI 命令 | 后端 | 测试数量 | |------|------|---------|------|---------| | GIMP | 图像编辑 | cli-anything-gimp | Pillow + GEGL/Script-Fu | 107 | | Blender | 3D 建模与渲染 | cli-anything-blender | bpy (Python scripting) | 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 | | Zoom | 视频会议 | cli-anything-zoom | Zoom REST API (OAuth2) | 22 | | Draw.io | 绘图 | cli-anything-drawio | mxGraph XML + draw.io CLI | 138 | | AnyGen | AI 内容生成 | cli-anything-anygen | AnyGen REST API | 50 | | **总计** | | | | **1,508** | 测试层级包括: - 单元测试:隔离测试每个核心函数 - E2E 测试(原生):项目文件生成管道 - E2E 测试(真实后端):真实软件调用 + 输出验证 - CLI 子进程测试:通过 subprocess.run 验证已安装命令 *** ## 参考资料 1. [CLI-Anything GitHub Repository](https://github.com/HKUDS/CLI-Anything) 2. [Claude Code Documentation](https://docs.anthropic.com/claude/docs/claude-code) 最后修改:2026 年 03 月 12 日 © 允许规范转载 赞 如果觉得我的文章对你有用,请随意赞赏