Files
CLI-Anything/README_CN.md
yuhao 728ee63be5 Merge main into fix/cleanup-and-docs-1dcf1e0: resolve conflicts, fix test totals
Include both openscreen and cloudanalyzer in test summary.
Correctly recount all totals across badge, HTML table, prose, and test summary.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-09 15:25:17 +00:00

35 KiB
Raw Permalink Blame History

  CLI-Anything: 让所有软件都能被 Agent 驱动

今天的软件为人而生👨‍💻,明天的用户是 Agent🤖
CLI-Anything连接 AI Agent 与全世界软件的桥梁

🌐 CLI-Hub:在 CLI-Hub 探索社区已构建的所有 CLI一条命令即可安装。想贡献你的 CLI提交 PR — Hub 会即时更新。

Quick Start Demos Tests License

Python Click Pytest Coverage Output Feishu WeChat

一行命令,让任意软件接入 OpenClaw、nanobot、Cursor、Claude Code 等 Agent 框架。

CLI-Anything typing demo

CLI-Anything Teaser


🤔 为什么是 CLI

CLI 是人类和 AI Agent 共通的万能接口:

结构化、可组合 - 文本命令天然匹配 LLM 的输入格式,可自由串联成复杂工作流

轻量且通用 - 几乎零开销,跨平台运行,不依赖额外环境

自描述 - 一个 --help 就能让 Agent 自动发现所有功能

久经验证 - Claude Code 每天通过 CLI 执行数以千计的真实任务

Agent 友好 - 结构化 JSON 输出Agent 无需任何额外解析

确定且可靠 - 输出稳定一致Agent 行为可预测

🚀 快速上手

环境要求

选择你的平台

Claude Code

第一步:添加插件市场

CLI-Anything 以 Claude Code 插件市场的形式托管在 GitHub 上。

# 添加 CLI-Anything 插件市场
/plugin marketplace add HKUDS/CLI-Anything

第二步:安装插件

# 从市场安装 cli-anything 插件
/plugin install cli-anything

搞定。插件已经在你的 Claude Code 会话中可用了。

Windows 注意: Claude Code 通过 bash 执行命令。Windows 下请安装 Git for Windows包含 bashcygpath 或使用 WSL否则可能出现 cygpath: command not found

第三步:一行命令生成 CLI

# /cli-anything:cli-anything <软件路径或仓库地址>
# 为 GIMP 生成完整的 CLI7 个阶段全自动)
/cli-anything:cli-anything ./gimp

# 注意:如果你的 Claude Code 版本低于 2.x请使用 "/cli-anything"。

完整流水线自动执行:

  1. 🔍 分析 — 扫描源码,将 GUI 操作映射到 API
  2. 📐 设计 — 规划命令分组、状态模型、输出格式
  3. 🔨 实现 — 构建 Click CLI包含 REPL、JSON 输出、撤销/重做
  4. 📋 规划测试 — 生成 TEST.md涵盖单元测试和端到端测试计划
  5. 🧪 编写测试 — 实现完整测试套件
  6. 📝 文档 — 更新 TEST.md写入测试结果
  7. 📦 发布 — 生成 setup.py,安装到 PATH

第四步(可选):优化和扩展 CLI

初始构建完成后,你可以迭代优化 CLI扩展覆盖面并补充缺失的功能

# 全面优化 — Agent 分析所有功能的覆盖差距
/cli-anything:refine ./gimp

# 定向优化 — 指定特定功能领域
/cli-anything:refine ./gimp "我需要更多图像批处理和滤镜相关的 CLI"

优化命令会对软件的完整功能与当前 CLI 覆盖范围进行差距分析,然后为识别到的差距实现新命令、测试和文档。你可以多次运行该命令,逐步扩大功能覆盖范围 — 每次运行都是增量的、非破坏性的。

备选方案:手动安装

如果你不想用插件市场:

# 克隆仓库
git clone https://github.com/HKUDS/CLI-Anything.git

# 复制插件到 Claude Code 插件目录
cp -r CLI-Anything/cli-anything-plugin ~/.claude/plugins/cli-anything

# 重新加载插件
/reload-plugins

OpenCode (实验性支持)

第一步:安装命令

注意: 请升级到最新 OpenCode旧版本可能使用不同的命令目录路径。

将 CLI-Anything 命令 HARNESS.md 复制到 OpenCode 命令目录:

# 克隆仓库
git clone https://github.com/HKUDS/CLI-Anything.git

# 全局安装(所有项目可用)
cp CLI-Anything/opencode-commands/*.md ~/.config/opencode/commands/
cp CLI-Anything/cli-anything-plugin/HARNESS.md ~/.config/opencode/commands/

# 或项目级安装
cp CLI-Anything/opencode-commands/*.md .opencode/commands/
cp CLI-Anything/cli-anything-plugin/HARNESS.md .opencode/commands/

注意: HARNESS.md 是所有命令引用的方法论规范,必须和命令文件放在同一目录下。

安装后获得 5 个斜杠命令:/cli-anything/cli-anything-refine/cli-anything-test/cli-anything-validate/cli-anything-list

第二步:一行命令生成 CLI

# 为 GIMP 生成完整的 CLI7 个阶段全自动)
/cli-anything ./gimp

# 从 GitHub 仓库构建
/cli-anything https://github.com/blender/blender

命令以子任务方式运行,遵循与 Claude Code 相同的 7 阶段方法论。

第三步(可选):优化和扩展 CLI

# 全面优化 — Agent 分析所有功能的覆盖差距
/cli-anything-refine ./gimp

# 定向优化 — 指定特定功能领域
/cli-anything-refine ./gimp "批处理和滤镜"

Qodercli 社区贡献

第一步:注册插件

git clone https://github.com/HKUDS/CLI-Anything.git
bash CLI-Anything/qoder-plugin/setup-qodercli.sh

脚本会将 cli-anything 插件注册到 ~/.qoder.json。注册后开启新的 Qodercli 会话即可使用。

第二步:在 Qodercli 中使用 CLI-Anything

/cli-anything:cli-anything ./gimp
/cli-anything:refine ./gimp "批处理和滤镜"
/cli-anything:validate ./gimp

OpenClaw

第一步:安装 Skill

CLI-Anything 提供了原生的 OpenClaw SKILL.md 文件。请将其复制到你的 OpenClaw 技能目录:

# Clone the repo
git clone https://github.com/HKUDS/CLI-Anything.git

# Install to the global skills folder
mkdir -p ~/.openclaw/skills/cli-anything
cp CLI-Anything/openclaw-skill/SKILL.md ~/.openclaw/skills/cli-anything/SKILL.md

第二步:构建 CLI

安装完成后,你就可以在 OpenClaw 中直接调用:

@cli-anything build a CLI for ./gimp

该技能采用了与 Claude Code 和 OpenCode 一致的 7 步构建流程。

Codex 实验性 社区贡献

第一步:安装 Skill

运行仓库内置的安装脚本:

# 克隆仓库
git clone https://github.com/HKUDS/CLI-Anything.git

# 安装 skill
bash CLI-Anything/codex-skill/scripts/install.sh

在 Windows PowerShell 中,可以使用:

.\CLI-Anything\codex-skill\scripts\install.ps1

脚本会把 skill 安装到 $CODEX_HOME/skills/cli-anything;如果没有设置 CODEX_HOME,则默认安装到 ~/.codex/skills/cli-anything

安装后重启 Codex让它重新发现这个 skill。

第二步:在 Codex 里使用 CLI-Anything

直接用自然语言描述任务,例如:

Use CLI-Anything to build a harness for ./gimp
Use CLI-Anything to refine ./shotcut for picture-in-picture workflows
Use CLI-Anything to validate ./libreoffice

这个 Codex skill 复用了 Claude Code 插件和 OpenCode 命令所使用的同一套方法论, 不会改变生成出来的 Python harness 结构。

GitHub Copilot CLI 社区贡献

第一步:安装插件

git clone https://github.com/HKUDS/CLI-Anything.git
cd CLI-Anything
copilot plugin install ./cli-anything-plugin

这将 CLI-Anything 插件安装到 GitHub Copilot CLI 中。插件应该已经在你的 GitHub Copilot CLI 会话中可用了。

第二步:在 GitHub Copilot CLI 中使用 CLI-Anything

/cli-anything:cli-anything ./gimp
/cli-anything:refine ./gimp "批处理和滤镜"
/cli-anything:validate ./gimp

🔮 更多平台(即将支持)

CLI-Anything 的设计是平台无关的,计划支持更多 AI 编程工具:

  • Codex — 已通过 codex-skill/ 提供接入
  • Cursor — 即将支持
  • Windsurf — 即将支持
  • 你喜欢的工具 — 欢迎贡献!参考 opencode-commands/ 目录的实现。

开始使用生成的 CLI

无论你用哪个平台构建,生成的 CLI 使用方式完全一样:

# 安装到 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

💡 CLI-Anything 的愿景:构建 Agent 原生的软件生态

🌐 无门槛接入 - 任何软件都能通过结构化 CLI 即刻被 Agent 操控。

🔗 无缝集成 - 不需要专门的 API、不需要操控 GUI、不需要重构代码也不需要复杂的适配层。

🚀 面向未来 - 一条命令,就能把为人类设计的软件变成 Agent 的原生工具。


🔧 适用场景

类别 如何接入 Agent 典型软件
📂 GitHub 开源项目 通过自动生成 CLI将任意开源项目转化为 Agent 可控工具 VSCodium、WordPress、Calibre、Zotero、Joplin、Logseq、Penpot、Super Productivity
🤖 AI/ML 平台 用结构化命令驱动模型训练、推理流水线和超参搜索 Stable Diffusion WebUI、ComfyUI、InvokeAI、Text-generation-webui、Open WebUI、Fooocus、Kohya_ss、AnythingLLM、SillyTavern
📊 数据与分析 以编程方式完成数据处理、可视化和统计分析工作流 JupyterLab、Apache Superset、Metabase、Redash、DBeaver、KNIME、Orange、OpenSearch Dashboards、Lightdash
💻 开发工具 通过 CLI 串联代码编辑、构建、测试与部署流程 Jenkins、Gitea、Hoppscotch、Portainer、pgAdmin、SonarQube、ArgoCD、OpenLens、Insomnia、Beekeeper Studio
🎨 创意与媒体 以编程方式控制内容创作、编辑和渲染工作流 Blender、GIMP、OBS Studio、Audacity、Krita、Kdenlive、Shotcut、Inkscape、Darktable、LMMS、Ardour
📐 图表与可视化 以编程方式创建和操作流程图、架构图、ER 图等各类图表 Draw.io (diagrams.net)、Mermaid、PlantUML、Excalidraw、yEd
🔬 科学计算 自动化科研工作流、仿真模拟和复杂计算 ImageJ、FreeCAD、QGIS、ParaView、Gephi、LibreCAD、Stellarium、KiCad、JASP、Jamovi
🏢 企业与办公 将商业应用和生产力工具转化为 Agent 可访问的系统 NextCloud、GitLab、Grafana、Mattermost、LibreOffice、AppFlowy、NocoDB、Odoo (Community)、Plane、ERPNext
📞 通信与协作 通过结构化 CLI 自动化会议调度、参会人管理、录制获取和报告生成 Zoom、Jitsi Meet、BigBlueButton、Mattermost

CLI-Anything 的核心优势

Agent 与软件之间的鸿沟

AI Agent 推理能力很强,但操控真实专业软件的能力很弱。现有方案要么是脆弱的 GUI 自动化,要么是覆盖面有限的 API要么是阉割了 90% 功能的重新实现。

CLI-Anything 的解法:把任何专业软件变成 Agent 原生工具,功能一个不少。

现有痛点 CLI-Anything 怎么解
🤖 "AI 用不了真正的专业工具" 直接对接真实软件后端Blender、LibreOffice、FFmpeg—— 完整的专业能力,零妥协
💸 "GUI 自动化三天两头崩" 告别截图、点击和 RPA 的脆弱性,纯命令行操控,结构化接口
📊 "Agent 需要结构化数据" 内置 JSON 输出供 Agent 直接消费,同时保留可读格式方便调试
🔧 "定制集成太贵了" 一个插件就能为任意代码库自动生成 CLI经过验证的 7 阶段流水线
"原型和生产之间差十万八千里" 1,508+ 测试用例,全部在真实软件上验证通过,覆盖 11 款主流应用

🎯 CLI-Anything 能做什么?

🛠️ 让 Agent 接管你的工作流

不管是专业场景还是日常事务 —— 把代码库扔给 /cli-anything 就行。GIMP、Blender、Shotcut 搞创作LibreOffice、OBS Studio 干日常。没有源码?找个开源替代品,照样能用。你会立刻得到一套 Agent 可以直接调用的完整 CLI。

🔗 把散装 API 统一成一个 CLI

受够了一堆零碎的 Web 服务 API把文档或 SDK 手册喂给 /cli-anything,你的 Agent 就能拿到一个有状态的、功能完整的 CLI,把那些零散的接口整合成逻辑清晰的命令组。一个工具可替代几十个裸 API 调用 —— 能力更强token 更省。

🚀 取代 GUI Agent或让它更强

CLI-Anything 可直接替代基于 GUI 的 Agent 方案 —— 无需截图,也无需繁琐地点击像素操作。更实用的是:只要你对 GUI 软件执行过 /cli-anything 命令,就能全自动生成 Agent 任务、评测器及 Benchmark —— 全程采用纯代码与终端操作,支持迭代优化,显著提升效率。


⚙️ CLI-Anything 的工作方式

🏗️ 全自动 7 阶段流水线

从代码分析到发布上线 —— 插件自动完成架构设计、代码实现、测试规划、测试编写和文档生成,全程无需人工介入。

🎯 真实软件集成

直接调用真实应用进行渲染。LibreOffice 生成 PDFBlender 渲染 3D 场景Audacity 通过 sox 处理音频。零妥协零玩具实现

🔁 智能会话管理

持久化项目状态,支持撤销/重做,加上统一的 REPL 交互界面ReplSkin所有 CLI 的使用体验保持一致。

📦 零配置安装

pip install -e . 即可将 cli-anything-<软件名> 装到 PATH。Agent 通过标准的 which 命令发现工具,不需要额外配置。

🧪 生产级测试

多层验证:使用合成数据的单元测试、使用真实文件和软件的端到端测试,外加已安装命令的 CLI 子进程验证。

🐍 干净的包架构

所有 CLI 统一在 cli_anything.* 命名空间下 —— 无冲突、可 pip 安装、命名规范统一cli-anything-gimp、cli-anything-blender 等。


🎬 实测展示

🎯 通用性

CLI-Anything 适用于任何有代码库的软件 —— 不限领域,不限架构。

🏭 专业级测试

在 11 款复杂应用上进行了实测,涵盖创意、生产力、通信、图表和 AI 内容生成领域 —— 这些软件此前对 AI Agent 来说几乎不可触及。

🎨 覆盖多元领域

从创意工作流图像编辑、3D 建模、矢量图形)到生产工具(音频、办公、直播、视频剪辑)。

完整的 CLI 生成

每款软件都生成了完整的、可投产的 CLI 接口 —— 不是 demo而是保留全部功能的完整工具接入。

软件 领域 CLI 命令 后端 测试
🎨 GIMP 图像编辑 cli-anything-gimp Pillow + GEGL/Script-Fu 107
🧊 Blender 3D 建模与渲染 cli-anything-blender bpy (Python scripting) 208
✏️ Inkscape 矢量图形 cli-anything-inkscape Direct SVG/XML manipulation 202
🎵 Audacity 音频制作 cli-anything-audacity Python wave + sox 161
📄 LibreOffice 办公套件Writer、Calc、Impress cli-anything-libreoffice ODF generation + headless LO 158
📚 Zotero 文献管理与引用 cli-anything-zotero Local SQLite + connector + Local API 新增
📹 OBS Studio 直播与录制 cli-anything-obs-studio JSON scene + obs-websocket 153
🎞️ Kdenlive 视频剪辑 cli-anything-kdenlive MLT XML + melt renderer 155
🎬 Shotcut 视频剪辑 cli-anything-shotcut Direct MLT XML + melt 154
🎬 Openscreen 屏幕录像编辑器 cli-anything-openscreen ffmpeg backend 101
📞 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 (anygen.io) 50
🎨 Sketch UI 设计 sketch-cli sketch-constructor (Node.js) 19
合计 1,527

全部 1,628 项测试 100% 通过 —— 1,151 项单元测试 + 458 项端到端测试 + 19 项 Node.js 测试。


📊 测试结果

每个 CLI 都经过多层严格测试,确保生产可用:

测试层级 测什么 示例
单元测试 每个核心函数的隔离验证,使用合成数据 test_core.py — 项目创建、图层操作、滤镜参数
端到端测试(原生) 项目文件的完整生成流程 ODF ZIP 结构合法性、MLT XML 正确性、SVG 格式完整性
端到端测试(真实后端) 调用真实软件并验证输出 LibreOffice → 含 %PDF- 魔术字节的 PDFBlender → 渲染后的 PNG
CLI 子进程测试 通过 subprocess.run 调用已安装命令 cli-anything-gimp --json project new → 合法 JSON 输出
================================ Test Summary ================================
gimp          107 passed  ✅   (64 unit + 43 e2e)
blender       208 passed  ✅   (150 unit + 58 e2e)
inkscape      202 passed  ✅   (148 unit + 54 e2e)
audacity      161 passed  ✅   (107 unit + 54 e2e)
libreoffice   158 passed  ✅   (89 unit + 69 e2e)
obs-studio    153 passed  ✅   (116 unit + 37 e2e)
kdenlive      155 passed  ✅   (111 unit + 44 e2e)
shotcut       154 passed  ✅   (110 unit + 44 e2e)
openscreen    101 passed  ✅   (78 unit + 23 e2e)
zoom           22 passed  ✅   (22 unit + 0 e2e)
drawio        138 passed  ✅   (116 unit + 22 e2e)
anygen         50 passed  ✅   (40 unit + 10 e2e)
sketch         19 passed  ✅   (19 jest, Node.js)
──────────────────────────────────────────────────────────────────────────────
TOTAL        1,628 passed  ✅   100% pass rate

🏗️ CLI-Anything 的架构

CLI-Anything Architecture

🎯 核心设计原则

  1. 真实软件集成 — CLI 生成合法的项目文件ODF、MLT XML、SVG然后交给真实应用去渲染。我们做的是软件的结构化接口,而不是替代品
  2. 灵活的交互模式 — 每个 CLI 都支持两种模式:有状态的 REPL 用于 Agent 交互会话,子命令模式用于脚本和流水线。直接运行命令即进入 REPL
  3. 一致的使用体验 — 所有生成的 CLI 共享统一的 REPL 界面repl_skin.py带有品牌横幅、风格化提示符、命令历史、进度指示器和标准化格式。
  4. Agent 原生设计 — 每个命令内置 --json 参数,输出结构化数据供 Agent 消费,同时可读的表格格式服务于交互调试。Agent 通过标准的 --helpwhich 命令发现能力
  5. 零妥协的依赖策略 — 真实软件是硬性要求 —— 没有兜底,没有降级。后端缺失时测试直接失败(而非跳过),确保功能的真实性

📂 项目结构

cli-anything/
├── 📄 README.md                          # 英文文档
├── 📄 README_CN.md                       # 中文文档(你在这里)
├── 📁 assets/                            # 图片和媒体文件
│   ├── icon.png                          # 项目图标
│   └── teaser.png                        # 概览图
│
├── 🔌 cli-anything-plugin/               # Claude Code 插件
│   ├── HARNESS.md                        # 方法论 SOP唯一权威来源
│   ├── README.md                         # 插件文档
│   ├── QUICKSTART.md                     # 5 分钟快速上手
│   ├── PUBLISHING.md                     # 分发与发布指南
│   ├── repl_skin.py                      # 统一 REPL 界面
│   ├── commands/                         # 插件命令定义
│   │   ├── cli-anything.md               # 主构建命令
│   │   ├── refine.md                     # 扩展已有 harness 覆盖面
│   │   ├── test.md                       # 测试运行器
│   │   ├── validate.md                   # 标准验证
│   │   └── list.md                       # 列出所有 CLI 工具
│   └── scripts/
│       └── setup-cli-anything.sh         # 安装脚本
│
├── 📋 opencode-commands/                # OpenCode 命令
│   ├── cli-anything.md                  # 主构建命令
│   ├── cli-anything-refine.md           # 优化扩展命令
│   ├── cli-anything-test.md             # 测试运行器
│   ├── cli-anything-validate.md         # 标准验证
│   └── cli-anything-list.md             # 列出所有 CLI 工具
│
├── 🤖 codex-skill/                      # Codex skill 接入层
├── 🎨 gimp/agent-harness/               # GIMP CLI107 项测试)
├── 🧊 blender/agent-harness/            # Blender CLI208 项测试)
├── ✏️ inkscape/agent-harness/            # Inkscape CLI202 项测试)
├── 🎵 audacity/agent-harness/           # Audacity CLI161 项测试)
├── 📄 libreoffice/agent-harness/        # LibreOffice CLI158 项测试)
├── 📚 zotero/agent-harness/             # Zotero CLI新增支持文献导入
├── 📹 obs-studio/agent-harness/         # OBS Studio CLI153 项测试)
├── 🎞️ kdenlive/agent-harness/           # Kdenlive CLI155 项测试)
├── 🎬 shotcut/agent-harness/            # Shotcut CLI154 项测试)
├── 🎬 openscreen/agent-harness/         # Openscreen CLI — 屏幕录像编辑器101 项测试)
├── 📞 zoom/agent-harness/               # Zoom CLI22 项测试)
├── 📐 drawio/agent-harness/             # Draw.io CLI138 项测试)
├── ✨ anygen/agent-harness/             # AnyGen CLI50 项测试)
└── 🎨 sketch/agent-harness/             # Sketch CLI19 项测试Node.js

每个 agent-harness/ 包含一个可安装的 Python 包,位于 cli_anything.<软件名>/ 下,包含 Click CLI、核心模块、工具类repl_skin.py 和后端适配器)以及完整的测试。


🎯 插件命令

命令 说明
/cli-anything <软件路径或仓库> 构建完整的 CLI —— 全部 7 个阶段
/cli-anything:refine <软件路径> [聚焦方向] 优化已有的 CLI —— 通过差距分析扩展覆盖面
/cli-anything:test <软件路径或仓库> 运行测试并更新 TEST.md
/cli-anything:validate <软件路径或仓库> 按照 HARNESS.md 标准进行验证
/cli-anything:list 列出所有已安装和已生成的 CLI 工具

使用示例

# 从本地源码为 GIMP 构建完整 CLI
/cli-anything /home/user/gimp

# 从 GitHub 仓库构建
/cli-anything https://github.com/blender/blender

# 优化已有的 CLI —— 全面差距分析
/cli-anything:refine /home/user/gimp

# 带聚焦方向的优化
/cli-anything:refine /home/user/shotcut "画中画和视频叠加合成"

# 运行测试并更新 TEST.md
/cli-anything:test /home/user/inkscape

# 按照 HARNESS.md 标准验证
/cli-anything:validate /home/user/audacity

🎮 实际操作演示

cli-anything-libreoffice 为例,看看 Agent 能做什么:

# 创建一个 Writer 文档
$ cli-anything-libreoffice document new -o report.json --type writer
✓ Created Writer document: report.json

# 添加内容
$ cli-anything-libreoffice --project report.json writer add-heading -t "Q1 Report" --level 1
✓ Added heading: "Q1 Report"

$ cli-anything-libreoffice --project report.json writer add-table --rows 4 --cols 3
✓ Added 4×3 table

# 通过 LibreOffice headless 导出为真实 PDF
$ cli-anything-libreoffice --project report.json export render output.pdf -p pdf --overwrite
✓ Exported: output.pdf (42,831 bytes) via libreoffice-headless

# JSON 模式供 Agent 消费
$ cli-anything-libreoffice --json document info --project report.json
{
  "name": "Q1 Report",
  "type": "writer",
  "pages": 1,
  "elements": 2,
  "modified": true
}

REPL 模式

$ 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! 👋

📖 标准手册HARNESS.md

HARNESS.md 是我们通过自动化 CLI 生成,使任意软件具备 Agent 可用性的权威标准操作流程SOP

它记录了在自动化生成过程中经验证并沉淀出的模式与方法论。

这本手册提炼了成功构建全部 11 套生产级 CLI 的关键经验。

核心经验

经验 说明
必须用真实软件 CLI 必须调用真实应用进行渲染。不能用 Pillow 替代 GIMP不能自己写渲染器替代 Blender。正确做法生成合法的项目文件 → 调用真实后端。
渲染鸿沟 GUI 应用在渲染时才应用特效。如果你的 CLI 操作了项目文件但用了简陋的导出工具,特效会被静默丢弃。正确做法:原生渲染器 → 滤镜转译 → 渲染脚本。
滤镜转译 在不同格式间映射特效时(如 MLT → ffmpeg要注意重复滤镜合并、交错的流排序、参数空间差异、无法映射的特效。
时间码精度 非整数帧率(如 29.97fps)会导致累积舍入误差。用 round() 而非 int(),显示时用整数运算,测试中允许 ±1 帧容差。
输出验证 永远不要因为进程退出码为 0 就信任导出成功。要验证魔术字节、ZIP/OOXML 结构、像素分析、音频 RMS 电平、时长检查。

完整方法论见:cli-anything-plugin/HARNESS.md


📦 安装与使用

Claude Code 用户

# 添加市场并安装(推荐)
/plugin marketplace add HKUDS/CLI-Anything
/plugin install cli-anything

# 为任何有代码库的软件生成 CLI
/cli-anything:cli-anything <软件路径或仓库>

OpenCode 用户

# 克隆仓库
git clone https://github.com/HKUDS/CLI-Anything.git

# 请确保使用最新 OpenCode旧版本可能使用不同的命令目录路径
# 复制命令和 HARNESS.md 到 OpenCode 命令目录
cp CLI-Anything/opencode-commands/*.md ~/.config/opencode/commands/
cp CLI-Anything/cli-anything-plugin/HARNESS.md ~/.config/opencode/commands/

# 为任何有代码库的软件生成 CLI
/cli-anything <软件路径或仓库>

使用生成的 CLI

# 安装任意生成的 CLI
cd <软件名>/agent-harness
pip install -e .

# 验证安装
which cli-anything-<软件名>

# 开始使用
cli-anything-<软件名> --help
cli-anything-<软件名>                    # 进入 REPL
cli-anything-<软件名> --json <命令>      # JSON 输出供 Agent 使用

运行测试

# 运行某个 CLI 的测试
cd <软件名>/agent-harness
python3 -m pytest cli_anything/<软件名>/tests/ -v

# 强制安装模式(推荐用于验证)
CLI_ANYTHING_FORCE_INSTALLED=1 python3 -m pytest cli_anything/<软件名>/tests/ -v -s

🤝 参与贡献

欢迎贡献CLI-Anything 天然支持扩展:

  • 新的目标软件 — 用插件为任意有代码库的软件生成 CLI然后通过 cli-anything-plugin/PUBLISHING.md 提交你的成果。
  • 方法论改进 — 向 HARNESS.md 提 PR把新的经验教训沉淀下来
  • 插件增强 — 新命令、阶段优化、更好的验证逻辑
  • 测试覆盖 — 更多端到端场景、边界情况、工作流测试

已知局限

  • 依赖强大的基础模型 — CLI-Anything 依赖前沿级别的模型(如 Claude Opus 4.6、Claude Sonnet 4.6、GPT-5.4)才能可靠地生成 harness。较弱或较小的模型可能产出不完整或有误的 CLI需要大量人工修正。
  • 依赖可用的源代码/cli-anything 基于源码进行分析和生成。如果目标软件只提供编译后的二进制文件需要反编译才能获取代码harness 的质量和覆盖率会显著下降。
  • 可能需要迭代优化 — 单次 /cli-anything 运行不一定能完整覆盖所有功能。通常需要执行一次或多次 /refine 命令,才能将 CLI 的性能和覆盖率推到生产级水平。

📖 文档

文档 说明
cli-anything-plugin/HARNESS.md 方法论 SOP — 唯一权威来源
cli-anything-plugin/README.md 插件文档 — 命令、选项、阶段
cli-anything-plugin/QUICKSTART.md 5 分钟快速上手
cli-anything-plugin/PUBLISHING.md 分发与发布指南

每个生成的 CLI 还包含:

  • <软件名>.md — 该应用的架构 SOP
  • tests/TEST.md — 测试计划和结果文档

Star History

如果 CLI-Anything 帮到了你,给个 Star 吧!


📄 License

MIT License — 可自由使用、修改和分发。


CLI-Anything一行命令,让任何软件成为 Agent 的原生工具。

为 AI Agent 时代而生 | 11 款专业软件实测 | 1,508 项测试全部通过


CLI-Anything Icon

感谢访问 CLI-Anything

Views