# CLI-Anything **Repository Path**: qq_connect-64/CLI-Anything ## Basic Information - **Project Name**: CLI-Anything - **Description**: CLI-Anything: Making ALL Software Agent-Native - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-03-11 - **Last Updated**: 2026-03-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

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

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

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**(需支持插件) - **Python 3.10+** - 目标软件已安装(如 GIMP、Blender、LibreOffice 或你自己的应用) ### 第一步:添加插件市场 CLI-Anything 以 Claude Code 插件市场的形式托管在 GitHub 上。 ```bash # 添加 CLI-Anything 插件市场 /plugin marketplace add HKUDS/CLI-Anything ``` ### 第二步:安装插件 ```bash # 从市场安装 cli-anything 插件 /plugin install cli-anything ``` 搞定。插件已经在你的 Claude Code 会话中可用了。 ### 第三步:一行命令生成 CLI ```bash # /cli-anything <软件路径或仓库地址> # 为 GIMP 生成完整的 CLI(7 个阶段全自动) /cli-anything ./gimp ``` 完整流水线自动执行: 1. 🔍 **分析** — 扫描源码,将 GUI 操作映射到 API 2. 📐 **设计** — 规划命令分组、状态模型、输出格式 3. 🔨 **实现** — 构建 Click CLI,包含 REPL、JSON 输出、撤销/重做 4. 📋 **规划测试** — 生成 TEST.md,涵盖单元测试和端到端测试计划 5. 🧪 **编写测试** — 实现完整测试套件 6. 📝 **文档** — 更新 TEST.md,写入测试结果 7. 📦 **发布** — 生成 `setup.py`,安装到 PATH ### 第四步:开始使用 ```bash # 安装到 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 ```
备选方案:手动安装 如果你不想用插件市场: ```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-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 | | **💻 开发工具** | 通过命令行接口串联代码编辑、构建、测试和部署流程 | 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,458+ 测试用例,全部在真实软件上验证通过,覆盖 10 款主流应用 | --- ## 🎯 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 生成 PDF,Blender 渲染 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 适用于任何有代码库的软件 —— 不限领域,不限架构。 ### 🏭 专业级测试 在 9 款复杂的开源应用上进行了实测,涵盖创意、生产力、通信和图表领域 —— 这些软件此前对 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
📹 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
合计 ✅ 1,458
> 全部 1,458 项测试 **100% 通过** —— 1,033 项单元测试 + 425 项端到端测试。 --- ## 📊 测试结果 每个 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) ────────────────────────────────────────────────────────────────────────────── TOTAL 1,458 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 通过标准的 `--help` 和 `which` 命令发现能力**。 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 # 主构建命令 │ │ ├── build.md # 扩展已有 harness 覆盖面 │ │ ├── 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 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 项测试) ``` 每个 `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 标准进行验证 | ### 使用示例 ```bash # 从本地源码为 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 能做什么: ```bash # 创建一个 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。 它记录了在自动化生成过程中验证和沉淀下来的模式与方法论。 这本手册提炼了成功构建全部 9 套生产级 CLI 的关键经验。 ### 核心经验 | 经验 | 说明 | |-----|------| | **必须用真实软件** | CLI 必须调用真实应用进行渲染。不能用 Pillow 替代 GIMP,不能自己写渲染器替代 Blender。正确做法:生成合法的项目文件 → 调用真实后端。 | | **渲染鸿沟** | GUI 应用在渲染时才应用特效。如果你的 CLI 操作了项目文件但用了简陋的导出工具,特效会被静默丢弃。正确做法:原生渲染器 → 滤镜转译 → 渲染脚本。 | | **滤镜转译** | 在不同格式间映射特效时(如 MLT → ffmpeg),要注意:重复滤镜合并、交错的流排序、参数空间差异、无法映射的特效。 | | **时间码精度** | 非整数帧率(如 29.97fps)会导致累积舍入误差。用 `round()` 而非 `int()`,显示时用整数运算,测试中允许 ±1 帧容差。 | | **输出验证** | 永远不要因为进程退出码为 0 就信任导出成功。要验证:魔术字节、ZIP/OOXML 结构、像素分析、音频 RMS 电平、时长检查。 | > 完整方法论见:[`cli-anything-plugin/HARNESS.md`](cli-anything-plugin/HARNESS.md) --- ## 📦 安装与使用 ### 插件用户(Claude Code) ```bash # 添加市场并安装(推荐) /plugin marketplace add HKUDS/CLI-Anything /plugin install cli-anything # 为任何有代码库的软件生成 CLI /cli-anything <软件名> ``` ### 使用生成的 CLI ```bash # 安装任意生成的 CLI cd <软件名>/agent-harness pip install -e . # 验证安装 which cli-anything-<软件名> # 开始使用 cli-anything-<软件名> --help cli-anything-<软件名> # 进入 REPL cli-anything-<软件名> --json <命令> # JSON 输出供 Agent 使用 ``` ### 运行测试 ```bash # 运行某个 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`](cli-anything-plugin/PUBLISHING.md) 提交你的成果。 - **方法论改进** — 向 `HARNESS.md` 提 PR,把新的经验教训沉淀下来 - **插件增强** — 新命令、阶段优化、更好的验证逻辑 - **测试覆盖** — 更多端到端场景、边界情况、工作流测试 --- ## 📖 文档 | 文档 | 说明 | |-----|------| | [`cli-anything-plugin/HARNESS.md`](cli-anything-plugin/HARNESS.md) | 方法论 SOP — 唯一权威来源 | | [`cli-anything-plugin/README.md`](cli-anything-plugin/README.md) | 插件文档 — 命令、选项、阶段 | | [`cli-anything-plugin/QUICKSTART.md`](cli-anything-plugin/QUICKSTART.md) | 5 分钟快速上手 | | [`cli-anything-plugin/PUBLISHING.md`](cli-anything-plugin/PUBLISHING.md) | 分发与发布指南 | 每个生成的 CLI 还包含: - `<软件名>.md` — 该应用的架构 SOP - `tests/TEST.md` — 测试计划和结果文档 --- ## ⭐ Star History 如果 CLI-Anything 帮到了你,给个 Star 吧!⭐ --- ## 📄 License MIT License — 可自由使用、修改和分发。 ---
**CLI-Anything** — *一行命令,让任何软件成为 Agent 的原生工具。* 为 AI Agent 时代而生 | 10 款专业软件实测 | 1,458 项测试全部通过
CLI-Anything Icon

感谢访问 ✨ CLI-Anything!

Views