HKU Data Science Lab · 开源项目

CLI-Anything

让所有软件都能被 AI Agent 驱动
今天的软件为人而生,明天的用户是 Agent。一行命令,连接 AI 与全世界的软件。

14.6K GitHub Stars
1.2K Forks
1,508 Tests Passing
11 Software CLIs
MIT License
claude-code — bash
# Claude Code 中一键添加插件市场
claude> /plugin marketplace add HKUDS/CLI-Anything
✓ Marketplace added: HKUDS/CLI-Anything

# 安装 CLI-Anything 插件
claude> /plugin install cli-anything
✓ Plugin installed successfully

# 为 GIMP 生成完整的 CLI(7 个阶段全自动)
claude> /cli-anything:cli-anything ./gimp
🔍 Phase 1: Analyzing source code...
📐 Phase 2: Designing CLI architecture...
🔨 Phase 3: Implementing Click CLI...
🧪 Phase 5: Writing test suite...
📦 Phase 7: Published → cli-anything-gimp
✅ 107 tests passed · CLI ready on PATH

为什么选择 CLI?

CLI 是人类和 AI Agent 共通的万能接口,天然适配 LLM 的工作方式。

🧩

结构化、可组合

文本命令天然匹配 LLM 的输入格式,可自由串联成复杂的自动化工作流,无需额外的解析与适配。

轻量且通用

几乎零额外开销,跨所有系统运行,无需额外依赖。Claude Code 每天通过 CLI 执行数以千计的真实任务。

📖

自我描述

一个 --help 就能让 Agent 自动发现全部功能与参数,无需额外的文档维护。

📊

Agent 友好

内置 --json 输出模式,Agent 无需解析复杂格式,直接消费结构化 JSON 数据。

🔒

确定且可靠

输出稳定一致,Agent 行为完全可预测。相比 GUI 自动化,CLI 不受界面更新影响。

🌍

久经验证

CLI 接口是软件世界中最成熟的接口形态,经过几十年的检验,稳定可靠,生态完善。

Agent 与软件之间的鸿沟

AI Agent 擅长推理,却难以操控真实的专业软件。CLI-Anything 填补这一空白。

❌ 当前痛点 ✅ CLI-Anything 的解决方案
🤖 "AI 无法使用真实的专业工具" 直接调用实际软件后端(Blender、LibreOffice、FFmpeg)——完整的专业能力,零妥协
💸 "UI 自动化方案频繁失效" 无截图、无点击、无 RPA 的脆弱性。纯命令行可靠性,结构化接口
📊 "Agent 需要结构化数据" 内置 JSON 输出,Agent 无缝消费 + 人类可读格式方便调试
🔧 "定制集成成本极高" 一个 Claude 插件通过验证过的 7 阶段流水线,自动为任意代码库生成 CLI
⚡ "原型与生产间的巨大差距" 1,508 个测试 + 真实软件验证。经过 11 款主流应用的严格检验

六大核心能力

工业级设计,每一项都经过 11 款主流软件的实战检验。

🏗️

全自动 7 阶段流水线

从代码库分析到 PyPI 发布,插件完全自动处理架构设计、CLI 实现、测试规划、测试编写和文档生成。

🎯

真实软件集成

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

🔁

智能会话管理

持久化项目状态 + 撤销/重做功能,统一 REPL 接口(ReplSkin)在所有 CLI 间提供一致的交互体验。

📦

零配置安装

简单的 pip install -e . 即可将 cli-anything-<software> 放入 PATH。Agent 通过标准 which 命令发现工具。

🧪

生产级测试

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

🐍

清晰的包架构

所有 CLI 统一组织在 cli_anything.* 命名空间下,无冲突,可 pip 安装,命名一致:cli-anything-gimpcli-anything-blender

全自动 7 阶段流水线

从代码库到生产就绪的 CLI,全程无需人工干预。

🔍

分析 (Analyze)

扫描源代码,将 GUI 操作映射到底层 API,建立完整的功能清单

📐

设计 (Design)

规划命令分组层次、状态模型、输出格式,设计 CLI 架构蓝图

🔨

实现 (Implement)

构建完整的 Click CLI,包含 REPL 交互模式、JSON 输出、撤销/重做功能

📋

规划测试 (Plan Tests)

创建包含单元测试和端到端测试方案的 TEST.md,覆盖所有关键路径

🧪

编写测试 (Write Tests)

实现完整的测试套件,包含合成数据单元测试和真实软件调用的 E2E 测试

📝

生成文档 (Document)

更新 TEST.md,填写测试运行结果,生成完整的使用文档

📦

发布 (Publish)

创建 setup.py,将 CLI 安装到系统 PATH,Agent 可立即通过 which 命令发现

生成后的 CLI 使用示例
# LibreOffice CLI 使用演示

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

# 添加内容
$ cli-anything-libreoffice \
  --project report.json writer add-table \
  --rows 4 --cols 3
✓ Added 4×3 table

# 导出真实 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
}

5 分钟快速开始

选择你的 AI 编程平台,几行命令即可开始生成 CLI。

bash · Claude Code
# 第一步:添加插件市场
/plugin marketplace add HKUDS/CLI-Anything

# 第二步:安装插件
/plugin install cli-anything

# 第三步:为 GIMP 生成完整 CLI(7 个阶段全自动)
/cli-anything:cli-anything ./gimp

# 可选:迭代优化 CLI 覆盖率
/cli-anything:refine ./gimp "更多图像批处理和滤镜功能"
bash · 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/

# 使用 CLI-Anything 生成 CLI
/cli-anything ./gimp
/cli-anything https://github.com/blender/blender

# 优化现有 CLI
/cli-anything-refine ./gimp "批处理和滤镜"
bash · Codex
# 克隆仓库
git clone https://github.com/HKUDS/CLI-Anything.git

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

# 在 Codex 中用自然语言描述任务
"Use CLI-Anything to build a harness for ./gimp"
"Use CLI-Anything to refine ./shotcut for picture-in-picture"
"Use CLI-Anything to validate ./libreoffice"
bash · 手动安装到 Claude Code
# 克隆仓库
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
cd gimp/agent-harness && pip install -e .
cli-anything-gimp --help
cli-anything-gimp --json project new --width 1920 --height 1080 -o poster.json

11 款软件,1,508 个测试全部通过

覆盖创意、办公、通信、绘图、AI 内容生成等多个领域,100% 通过率。

软件 领域 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 操作 ✅ 202
🎵 Audacity 音频制作 cli-anything-audacity Python wave + sox ✅ 161
📄 LibreOffice 办公套件 cli-anything-libreoffice ODF + 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 ✅ 50
合计 ✅ 1,508

1,073 个单元测试 + 435 个端到端测试 · 100% 通过率

REPL 交互模式

所有生成的 CLI 均支持交互式 REPL 模式,带有品牌 banner 和持久化项目状态。

Blender 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! 👋
测试结果汇总
================ Test Summary ================
gimp 107 passed ✅ (64u + 43e2e)
blender 208 passed ✅ (150u + 58e2e)
inkscape 202 passed ✅ (148u + 54e2e)
audacity 161 passed ✅ (107u + 54e2e)
libreoffice 158 passed ✅ (89u + 69e2e)
obs-studio 153 passed ✅ (116u + 37e2e)
kdenlive 155 passed ✅ (111u + 44e2e)
shotcut 154 passed ✅ (110u + 44e2e)
zoom 22 passed ✅ (22u + 0e2e)
drawio 138 passed ✅ (116u + 22e2e)
anygen 50 passed ✅ (40u + 10e2e)
──────────────────────────────────────────────
TOTAL 1,508 passed ✅ 100% pass rate

# 运行特定 CLI 的测试
$ cd gimp/agent-harness
$ python3 -m pytest cli_anything/gimp/tests/ -v
✅ 107 passed in 4.23s

支持的软件类别

CLI-Anything 适用于任何具有代码库的软件,没有领域限制。

📂

GitHub 仓库

VSCodium、WordPress、Calibre、Zotero、Logseq 等

🤖

AI/ML 平台

Stable Diffusion、ComfyUI、Open WebUI、AnythingLLM 等

📊

数据与分析

JupyterLab、Metabase、DBeaver、KNIME 等

💻

开发工具

Jenkins、Gitea、Portainer、pgAdmin、SonarQube 等

🎨

创意与媒体

Blender、GIMP、OBS Studio、Kdenlive、Krita 等

🔬

科学计算

ImageJ、FreeCAD、QGIS、ParaView、KiCad 等

🏢

企业与办公

NextCloud、GitLab、Grafana、LibreOffice、Odoo 等

📐

图表与可视化

Draw.io、Mermaid、PlantUML、Excalidraw 等

AI 内容生成

AnyGen、Gamma、Beautiful.ai 等 AI 幻灯片与文档服务

📞

通信与协作

Zoom、Jitsi Meet、BigBlueButton、Mattermost 等

四大核心命令

覆盖构建、优化、测试、验证的完整生命周期。

/cli-anything:cli-anything

全量构建

为任意代码库或 GitHub 仓库运行完整的 7 阶段流水线,生成生产就绪的 CLI。

/cli-anything:refine

迭代优化

对现有 CLI 进行覆盖率差距分析,实现新命令、测试和文档。可多次运行逐步扩展覆盖率。

/cli-anything:test

运行测试

执行测试套件并用最新结果更新 TEST.md。支持强制已安装模式进行严格验证。

/cli-anything:validate

标准验证

根据 HARNESS.md 方法论标准验证生成的 CLI,确保符合生产质量要求。

bash · 命令示例
# 从本地源码构建 GIMP 的 CLI
/cli-anything /home/user/gimp

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

# 宽泛优化 —— Agent 分析所有能力的差距
/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

五大核心设计原则

经过 11 款专业软件实战打磨的架构方法论,沉淀在 HARNESS.md 中。

PRINCIPLE 01

真实软件集成

CLI 生成有效的项目文件(ODF、MLT XML、SVG),并将渲染委托给真实应用。我们构建的是指向软件的结构化接口,而非替代品。

PRINCIPLE 02

灵活交互模型

每个 CLI 双模运行:有状态 REPL 供 Agent 交互会话使用 + 子命令接口供脚本/管道使用。直接运行命令即进入 REPL 模式。

PRINCIPLE 03

一致用户体验

所有生成的 CLI 共享统一的 REPL 接口(repl_skin.py),带有品牌 banner、样式化提示符、命令历史、进度指示器和标准化格式。

PRINCIPLE 04

Agent 原生设计

每条命令内置 --json 标志,向机器提供结构化数据,同时为交互使用保留人类可读的表格。

PRINCIPLE 05

零妥协依赖

真实软件是硬性要求,无回退、无优雅降级。当后端缺失时测试失败(而非跳过),确保功能真实可靠。

⚠ 已知局限性

  • 需要强大的基础模型(如 Claude Opus 4.6、GPT-5),较弱的模型可能产生不完整的 CLI,需要大量手动修正。
  • 依赖可用的源代码。目标软件仅提供编译后的二进制文件时,harness 质量和覆盖率会大幅降低。
  • 可能需要迭代优化。单次 /cli-anything 运行可能无法完全覆盖所有功能,运行 /refine 一次或多次可将 CLI 性能推向生产质量。

欢迎社区贡献

CLI-Anything 被设计为高度可扩展的,有多种参与方式。

🆕

新软件目标

用插件为任意代码库生成 CLI,然后通过 PUBLISHING.md 提交你的 harness

📖

方法论改进

向 HARNESS.md 提交 PR,将从实战中学到的新经验编码进去

🔌

插件增强

添加新命令、改进阶段流水线、优化验证逻辑

🧪

测试覆盖

更多 E2E 场景、边缘用例、工作流测试,提升生产可靠性

Python ≥3.10 MIT License Click ≥8.0 pytest 100% pass JSON + Human output
⭐ 在 GitHub 上 Star