今天的软件为人而生👨💻,明天的用户是 Agent🤖
CLI-Anything:连接 AI Agent 与全世界软件的桥梁
一行命令,让任意软件接入 OpenClaw、nanobot、Cursor、Claude Code 等 Agent 框架。
CLI 是人类和 AI Agent 共通的万能接口:
• 结构化、可组合 - 文本命令天然匹配 LLM 的输入格式,可自由串联成复杂工作流
• 轻量且通用 - 几乎零开销,跨平台运行,不依赖额外环境
• 自描述 - 一个 --help 就能让 Agent 自动发现所有功能
• 久经验证 - Claude Code 每天通过 CLI 执行数以千计的真实任务
• Agent 友好 - 结构化 JSON 输出,Agent 无需任何额外解析
• 确定且可靠 - 输出稳定一致,Agent 行为可预测
第一步:添加插件市场
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(包含 bash 和 cygpath)
或使用 WSL,否则可能出现 cygpath: command not found。
第三步:一行命令生成 CLI
# /cli-anything:cli-anything <软件路径或仓库地址>
# 为 GIMP 生成完整的 CLI(7 个阶段全自动)
/cli-anything:cli-anything ./gimp
# 注意:如果你的 Claude Code 版本低于 2.x,请使用 "/cli-anything"。
完整流水线自动执行:
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,旧版本可能使用不同的命令目录路径。
将 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 生成完整的 CLI(7 个阶段全自动)
/cli-anything ./gimp
# 从 GitHub 仓库构建
/cli-anything https://github.com/blender/blender
命令以子任务方式运行,遵循与 Claude Code 相同的 7 阶段方法论。
第三步(可选):优化和扩展 CLI
# 全面优化 — Agent 分析所有功能的覆盖差距
/cli-anything-refine ./gimp
# 定向优化 — 指定特定功能领域
/cli-anything-refine ./gimp "批处理和滤镜"
第一步:注册插件
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
第一步:安装 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 步构建流程。
第一步:安装 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 结构。
CLI-Anything 的设计是平台无关的,计划支持更多 AI 编程工具:
codex-skill/ 提供接入opencode-commands/ 目录的实现。无论你用哪个平台构建,生成的 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 即刻被 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 |
| 💻 开发工具 | 通过命令行接口串联代码编辑、构建、测试和部署流程 | 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 |
AI Agent 推理能力很强,但操控真实专业软件的能力很弱。现有方案要么是脆弱的 GUI 自动化,要么是覆盖面有限的 API,要么是阉割了 90% 功能的重新实现。
CLI-Anything 的解法:把任何专业软件变成 Agent 原生工具,功能一个不少。
| 现有痛点 | CLI-Anything 怎么解 |
|---|---|
| 🤖 "AI 用不了真正的专业工具" | 直接对接真实软件后端(Blender、LibreOffice、FFmpeg)—— 完整的专业能力,零妥协 |
| 💸 "GUI 自动化三天两头崩" | 告别截图、点击和 RPA 的脆弱性,纯命令行操控,结构化接口 |
| 📊 "Agent 需要结构化数据" | 内置 JSON 输出供 Agent 直接消费,同时保留可读格式方便调试 |
| 🔧 "定制集成太贵了" | 一个插件就能为任意代码库自动生成 CLI,经过验证的 7 阶段流水线 |
| ⚡ "原型和生产之间差十万八千里" | 1,508+ 测试用例,全部在真实软件上验证通过,覆盖 11 款主流应用 |
|
不管是专业场景还是日常事务 —— 把代码库扔给 |
受够了一堆零碎的 Web 服务 API?把文档或 SDK 手册喂给 |
CLI-Anything 可以直接替代基于 GUI 的 Agent 方案 —— 不再截图,不再脆弱地点像素。更有意思的是:一旦你对 GUI 软件跑过 |
|
从代码分析到发布上线 —— 插件自动完成架构设计、代码实现、测试规划、测试编写和文档生成,全程无需人工介入。 |
直接调用真实应用进行渲染。LibreOffice 生成 PDF,Blender 渲染 3D 场景,Audacity 通过 sox 处理音频。零妥协,零玩具实现。 |
|
持久化项目状态,支持撤销/重做,加上统一的 REPL 交互界面(ReplSkin),所有 CLI 的使用体验保持一致。 |
|
|
多层验证:使用合成数据的单元测试、使用真实文件和软件的端到端测试,外加已安装命令的 CLI 子进程验证。 |
所有 CLI 统一在 cli_anything.* 命名空间下 —— 无冲突、可 pip 安装、命名规范统一:cli-anything-gimp、cli-anything-blender 等。 |
CLI-Anything 适用于任何有代码库的软件 —— 不限领域,不限架构。
在 11 款复杂应用上进行了实测,涵盖创意、生产力、通信、图表和 AI 内容生成领域 —— 这些软件此前对 AI Agent 来说几乎不可触及。
从创意工作流(图像编辑、3D 建模、矢量图形)到生产工具(音频、办公、直播、视频剪辑)。
每款软件都生成了完整的、可投产的 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 |
| 📹 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 |
| 📞 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 |
| 合计 | ✅ 1,508 | |||
全部 1,508 项测试 100% 通过 —— 1,073 项单元测试 + 435 项端到端测试。
每个 CLI 都经过多层严格测试,确保生产可用:
| 测试层级 | 测什么 | 示例 |
|---|---|---|
| 单元测试 | 每个核心函数的隔离验证,使用合成数据 | test_core.py — 项目创建、图层操作、滤镜参数 |
| 端到端测试(原生) | 项目文件的完整生成流程 | ODF ZIP 结构合法性、MLT XML 正确性、SVG 格式完整性 |
| 端到端测试(真实后端) | 调用真实软件并验证输出 | LibreOffice → 含 %PDF- 魔术字节的 PDF,Blender → 渲染后的 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) zoom 22 passed ✅ (22 unit + 0 e2e) drawio 138 passed ✅ (116 unit + 22 e2e) anygen 50 passed ✅ (40 unit + 10 e2e) ────────────────────────────────────────────────────────────────────────────── TOTAL 1,508 passed ✅ 100% pass rate
--json 参数,输出结构化数据供 Agent 消费,同时可读的表格格式服务于交互调试。Agent 通过标准的 --help 和 which 命令发现能力。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 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 Studio CLI(153 项测试) ├── 🎞️ kdenlive/agent-harness/ # Kdenlive CLI(155 项测试) ├── 🎬 shotcut/agent-harness/ # Shotcut CLI(154 项测试) ├── 📞 zoom/agent-harness/ # Zoom CLI(22 项测试) ├── 📐 drawio/agent-harness/ # Draw.io CLI(138 项测试) └── ✨ anygen/agent-harness/ # AnyGen CLI(50 项测试)
每个 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
}
$ 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 是我们通过自动化 CLI 生成让任意软件变得 Agent 可用的权威 SOP。
它记录了在自动化生成过程中验证和沉淀下来的模式与方法论。
这本手册提炼了成功构建全部 11 套生产级 CLI 的关键经验。
| 经验 | 说明 |
|---|---|
| 必须用真实软件 | CLI 必须调用真实应用进行渲染。不能用 Pillow 替代 GIMP,不能自己写渲染器替代 Blender。正确做法:生成合法的项目文件 → 调用真实后端。 |
| 渲染鸿沟 | GUI 应用在渲染时才应用特效。如果你的 CLI 操作了项目文件但用了简陋的导出工具,特效会被静默丢弃。正确做法:原生渲染器 → 滤镜转译 → 渲染脚本。 |
| 滤镜转译 | 在不同格式间映射特效时(如 MLT → ffmpeg),要注意:重复滤镜合并、交错的流排序、参数空间差异、无法映射的特效。 |
| 时间码精度 | 非整数帧率(如 29.97fps)会导致累积舍入误差。用 round() 而非 int(),显示时用整数运算,测试中允许 ±1 帧容差。 |
| 输出验证 | 永远不要因为进程退出码为 0 就信任导出成功。要验证:魔术字节、ZIP/OOXML 结构、像素分析、音频 RMS 电平、时长检查。 |
# 添加市场并安装(推荐)
/plugin marketplace add HKUDS/CLI-Anything
/plugin install cli-anything
# 为任何有代码库的软件生成 CLI
/cli-anything:cli-anything <软件路径或仓库>
# 克隆仓库
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
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-anything-plugin/PUBLISHING.md 提交你的成果。HARNESS.md 提 PR,把新的经验教训沉淀下来/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 — 该应用的架构 SOPtests/TEST.md — 测试计划和结果文档如果 CLI-Anything 帮到了你,给个 Star 吧!⭐
MIT License — 可自由使用、修改和分发。
CLI-Anything — 一行命令,让任何软件成为 Agent 的原生工具。
为 AI Agent 时代而生 | 11 款专业软件实测 | 1,508 项测试全部通过
感谢访问 ✨ CLI-Anything!