AI 不会用软件?这个开源项目一行命令就能搞定,Github 20K Star 炸裂
你的 AI Agent 会写代码、会查资料、会发邮件——
但它能用 Blender 建模吗?能用 GIMP 修图吗?能控制 OBS 开播吗?不能。这是 2026 年 AI Agent 最大的短板。
而 CLI-Anything 正在把这堵墙推倒。
🤔 说一个真实的困境:AI 会思考,但不会”动手”
AI Agent 在推理层面已经非常强大。让它写一篇报告、分析一份数据、规划一个项目——完全没问题。
但如果你说:”帮我把这 200 张图片批量用 GIMP 加滤镜”,它会卡住。
为什么?
因为 GIMP 是一个 GUI 软件,没有标准化的命令行接口,没有 REST API。AI Agent 要控制它,要么靠脆弱的截图+点击(随时失效),要么靠人工手写封装代码(耗时费力),要么……就是做不到。
这个问题不只存在于 GIMP。Blender、Audacity、LibreOffice、OBS Studio、ComfyUI、Ollama——几乎所有专业软件,对 AI Agent 来说都是黑箱。
这正是 CLI-Anything 要解决的问题。
🎯 CLI-Anything 是什么?
来自香港大学数据科学团队(HKUDS)的开源项目,副标题直接把问题说透:
Making ALL Software Agent-Native
让所有软件对 AI Agent 原生友好
项目刚发布不久,已经收获 20,500+ GitHub Star,Fork 数超过 1,800,是近期最受关注的 AI 工程化工具之一。
核心功能用一句话概括:给 Claude Code(或其他 AI Agent)一个插件,它就能自动为任意软件生成一套完整的 CLI 命令行接口,附带测试、文档和 pip 安装包。
这套 CLI 不是玩具。它调用的是真实软件的真实后端——LibreOffice 真的在生成 PDF,Blender 真的在渲染 3D 场景,不是什么简化的替代实现。

⚡ 核心理念:CLI 是人类和 AI 共同的语言
为什么要用 CLI 而不是 GUI 自动化?项目给出了六个理由,每一条都切中要害:
-
• 结构化 + 可组合:文本命令格式和 LLM 天然契合,命令可以链式组合构建复杂工作流 -
• 轻量 + 通用:最小化开销,跨所有系统运行,无额外依赖 -
• 自描述: --help标志提供自动文档,Agent 可以自动发现用法 -
• 经过验证:Claude Code 每天已经通过 CLI 跑了数千个真实工作流 -
• Agent 优先设计:结构化 JSON 输出消除了解析复杂性 -
• 确定性 + 可靠:一致的结果让 Agent 行为可预期
这六条理由不只是设计哲学,更是工程选择的依据。
🚀 快速上手:三步开始
第一步:安装插件(以 Claude Code 为例)
# 在 Claude Code 会话中,添加 CLI-Anything 插件市场
/plugin marketplace add HKUDS/CLI-Anything
# 安装插件
/plugin install cli-anything
就这两条命令,插件就在你的 Claude Code 里激活了。
Windows 用户注意:Claude Code 通过
bash执行命令。Windows 需要安装 Git for Windows(包含bash和cygpath),或者使用 WSL,否则会报cygpath: command not found。
第二步:为目标软件生成 CLI
# 给 GIMP 生成完整 CLI(执行全部 7 个阶段)
/cli-anything:cli-anything ./gimp
# 也可以直接传 GitHub 仓库地址
/cli-anything:cli-anything https://github.com/blender/blender
这一条命令背后,AI Agent 会自动完成七个阶段的工作(详见下文),从分析源码到生成 pip 安装包,全自动。
第三步:安装并使用生成的 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
# 添加图层(JSON 模式,适合 AI 读取)
cli-anything-gimp --json layer add -n "Background" --type solid --color "#1a1a2e"
# 进入交互式 REPL 模式
cli-anything-gimp
🏗️ 7 阶段流水线:AI 是怎么自动生成 CLI 的?
这是 CLI-Anything 最值得深挖的部分。当你执行 /cli-anything 命令,AI Agent 不是”随便写一些代码”,而是执行一套经过 17 款软件实战检验的标准化流程:
① 分析(Analyze)
扫描目标软件的源代码,将 GUI 操作逐一映射到底层 API 调用。这一步决定了生成的 CLI 是否真实——要调用真正的后端,就必须先理解软件内部是怎么工作的。
② 设计(Design)
架构命令分组,设计状态模型,规划输出格式。一个好的 CLI 不是功能的堆砌,而是有结构的接口设计。
③ 实现(Implement)
用 Python Click 框架构建 CLI,同时实现 REPL 交互模式、JSON 结构化输出、undo/redo 状态管理。
④ 规划测试(Plan Tests)
生成 TEST.md,包含单元测试和端到端测试的完整计划。
⑤ 编写测试(Write Tests)
实现测试套件,覆盖合成数据测试(单元)和真实文件测试(E2E)。
⑥ 文档(Document)
更新 TEST.md 结果,同时生成 SKILL.md——一份 AI 可读的技能定义文件,让其他 Agent 能自动发现和使用这个 CLI。
⑦ 发布(Publish)
创建 setup.py,把 CLI 打包成可安装的 Python 包,安装到系统 PATH。
整个流程下来,输出的不是脚本,是一个完整的、有测试的、可发布的软件包。
🎬 真实案例:AI 用 LibreOffice 生成 PDF 报告
这是项目官方演示中最有说服力的案例之一:
# 创建新的 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 财务报告" --level 1
✓ Added heading: "Q1 财务报告"
# 添加 4×3 数据表格
$ 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 模式查看文档信息(给 AI Agent 读取)
$ cli-anything-libreoffice --json document info --project report.json
{
"name": "Q1 财务报告",
"type": "writer",
"pages": 1,
"elements": 2,
"modified": true
}
关键细节:这里输出的 output.pdf 是 LibreOffice 真实渲染的 PDF,有 %PDF- 魔法字节头,不是假的。项目的测试用例会验证这个。
🎮 Blender REPL 模式:AI 在终端里建 3D 场景
$ 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! 👋
REPL 模式的设计让 AI Agent 可以保持会话状态,在一次对话中完成完整的创作工作流——不是单条命令的拼接,而是有状态的协作过程。
🔧 迭代优化:refine 命令
单次生成不可能覆盖所有功能。CLI-Anything 提供了 refine 命令,可以在首次生成的基础上持续扩展:
# 广泛迭代——分析全部功能缺口
/cli-anything:refine ./gimp
# 聚焦迭代——指定要补充的功能方向
/cli-anything:refine ./gimp "I want more CLIs on image batch processing and filters"
# 针对视频编辑的特定能力
/cli-anything:refine ./shotcut "vid-in-vid and picture-in-picture compositing"
每次 refine 都是增量的、非破坏性的:Agent 分析现有 CLI 与软件完整能力之间的缺口,只补充缺失的命令和测试,不破坏已有的内容。
📊 测试数据:1,839 项,100% 通过
项目目前已为 17 款软件生成了生产级 CLI,测试覆盖率令人印象深刻:
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 合计 | 1,839 ✅ |
测试分四层:单元测试用合成数据,E2E 测试用真实文件,真实后端测试(如 LibreOffice 实际输出 PDF),以及 CLI subprocess 测试(直接调用已安装的命令行)。
100% 通过率不是刷出来的——项目明确规定:缺少后端软件时,测试必须失败(而不是跳过),确保真实性。
🌐 支持多个 AI Agent 平台
CLI-Anything 不绑定某一个 AI 编程工具,已支持:
-
• Claude Code:通过 /plugin插件市场一键安装 -
• OpenClaw:将 SKILL.md复制到~/.openclaw/skills/cli-anything/即可 -
• OpenCode:将命令文件复制到 ~/.config/opencode/commands/ -
• Codex:运行内置的 install.sh脚本 -
• Qodercli:运行 setup-qodercli.sh注册插件
每个平台安装后,使用体验完全一致——相同的命令名,相同的 7 阶段流程,相同的输出格式。
🏆 和其他方案的本质区别
|
|
|
|---|---|
| UI 自动化(截图+点击) |
|
| 手写 API 封装 |
|
| 简化实现 |
|
| CLI-Anything |
|
CLI-Anything 的核心主张是:建立到软件的结构化接口,而不是替代软件本身。 LibreOffice 还是那个 LibreOffice,Blender 还是那个 Blender,CLI-Anything 只是给它们加了一层 AI Agent 可以操作的”方向盘”。
📖 一个隐藏的设计彩蛋:SKILL.md 自动生成
每个生成的 CLI 包里,都会附带一个 SKILL.md 文件,路径是 cli_anything/<software>/skills/SKILL.md。
这个文件用 YAML frontmatter 描述了技能名称和说明,列出所有可用命令,提供典型工作流示例,还有专门给 AI Agent 的调用指引。
当你运行 CLI 的 REPL 时,启动横幅会直接显示这个文件的绝对路径——其他 Agent 看到路径,就能自动读取并学会使用这个工具。 AI 帮 AI 教 AI,技能扩散形成闭环。
🚀 三分钟上手清单
# 1. 在 Claude Code 里安装插件
/plugin marketplace add HKUDS/CLI-Anything
/plugin install cli-anything
# 2. 生成你想用的软件 CLI(任选其一)
/cli-anything:cli-anything ./gimp # 本地安装的 GIMP
/cli-anything:cli-anything ./blender # 本地安装的 Blender
/cli-anything:cli-anything https://github.com/ollama/ollama # GitHub 仓库
# 3. 安装生成的 CLI 到 PATH
cd <software>/agent-harness && pip install -e .
# 4. 开始使用
cli-anything-<software> --help
cli-anything-<software> # 进入 REPL
项目地址:https://github.com/HKUDS/CLI-Anything
CLI Hub(社区 CLI 浏览器):https://hkuds.github.io/CLI-Anything/hub/
写在最后
有一句话在这个项目的 README 里,我觉得说出了整个时代的方向:
Today’s Software Serves Humans. Tomorrow’s Users will be Agents.
今天的软件是为人类服务的。明天的用户将会是 Agent。
这不是遥远的预言,而是正在发生的现实。
GIMP 的用户界面,是为人类的眼睛和鼠标设计的。Blender 的菜单,是为人类的耐心和直觉设计的。这些软件花了几十年时间演化出复杂的 GUI,背后却没有任何一套接口是为”机器读者”设计的。
CLI-Anything 正在填补这个空白——不是重写软件,不是绕过软件,而是在人类工具和 AI Agent 之间建立一座桥梁。
当 Blender、GIMP、LibreOffice、OBS 都可以被 Agent 精确控制,创作自动化、内容流水线、智能工作流……这些概念就不再只是概念了。
夜雨聆风