CLI-Anything:把任意 GUI 软件自动转成 AI Agent 能用的 CLI 工具
标签: AI Agent / CLI工具 / 自动化 / HKUDS / Claude Code
原文: 微信公众号「极客之家」https://mp.weixin.qq.com/s/LfT4HFtNIjdOsx5RnJ8mJQ
GitHub: https://github.com/HKUDS/CLI-Anything
CLI-Hub: https://clianything.cc/
核心亮点
香港大学数据科学实验室(HKUDS)开源 CLI-Anything,给任意一款软件自动生成一套结构化的 CLI 接口,让 Agent 直接用命令行调软件,输入命令,拿回 JSON 结果。
没有截图,没有点击,没有 fragile 的 GUI 操控,就是纯粹的命令行交互。
问题:AI Agent 搞不定 GUI 软件
现在的 AI Agent——不管是 Claude Code 还是 Codex,本质上是文本进文本出的东西。它能写代码、调 API、查文档,但遇到 Blender、GIMP、LibreOffice 这种带 GUI 的专业软件,就只能绕道走。
现有解法的硬伤
| 解法 | 问题 |
|---|---|
| 手写 wrapper | 写得越深工作量越大 |
| 截图点击 RPA | 脆得很,换个系统主题就崩 |
CLI-Anything 的思路:CLI 本来就是人和程序之间的接口,格式清晰,可组合,天然适合 LLM 读写。
一条命令搞定
核心就是一条命令:
/cli-anything ./gimp
把软件路径(或 GitHub 仓库地址)丢进去,它会跑一条 7 阶段全自动流水线:
| 阶段 | 功能 |
|---|---|
| 🔍 Analyze | 扫描源码,把 GUI 操作映射到底层 API |
| 📐 Design | 设计命令分组、状态模型、输出格式 |
| 🔨 Implement | 用 Click 框架实现 CLI,带 REPL 模式、JSON 输出、undo/redo |
| 📋 Plan Tests | 生成 TEST.md,规划单元测试和端到端测试 |
| 🧪 Write Tests | 跑测试,覆盖真实软件调用 |
| 📝 Document | 更新测试结果文档 |
| 📦 Publish | 生成 setup.py,装进 PATH |
跑完之后你就有了一个可以直接 pip install 的 CLI 包,名字统一叫 cli-anything-<软件名>,比如 cli-anything-gimp、cli-anything-blender。
SKILL.md:给 Agent 读的技能文件
每个生成的 CLI 都会附带一个 SKILL.md 文件,放在 skills/cli-anything-<软件名>/SKILL.md。
这个文件的格式是专门给 Agent 读的:
- YAML 头部写名称和描述
- 正文列所有命令组和子命令
- 加上用法示例和 JSON 输出说明
Agent 读完这个文件就知道这个工具能干什么、怎么调、输出是什么格式。
让 Agent 自主完成任务
结合 CLI-Hub 的元技能,Agent 甚至可以自己去注册表里找合适的 CLI、装好、读 SKILL.md、然后开始干活——全程不需要人介入:
"Find appropriate CLI software in CLI-Hub and complete the task: <your task here>"
CLI-Hub:社区驱动的 CLI 注册表
单靠一个项目自己维护所有软件的 CLI 肯定撑不住,所以他们做了一个 CLI-Hub,相当于一个社区驱动的 CLI 注册表。
pip install cli-anything-hub
cli-hub install <name>
已覆盖的软件
| 类别 | 软件 |
|---|---|
| 创意类 | Blender、GIMP、Krita、Inkscape、Shotcut、Kdenlive、Audacity、OBS Studio |
| 科学计算 | FreeCAD、QGIS、RenderDoc、UniMol Tools |
| 开发工具 | Obsidian、Zotero、n8n、WireMock、Exa |
| 游戏 | Godot Engine、Slay the Spire II |
| 办公协作 | LibreOffice、Zoom、Jitsi Meet |
| AI/ML | Stable Diffusion WebUI、ComfyUI、Ollama |
注册表是实时更新的,社区提交 PR 合并后立刻生效。几乎每天都有新的 CLI 并入,Rekordbox、Calibre、MiniMax 这些都是最近刚合并的。
真实 Demo
Blender:3D 轨道中继无人机
Agent 用 cli-anything-blender 一步一步搭了一个轨道中继无人机的 3D 模型,每一步都能看到实时预览,命令和对应的视觉状态全部记录进了 trajectory.json,可以回放。
FreeCAD:好奇号月球车
用 cli-anything-freecad 搭了一个好奇号风格的月球车模型,同样带实时预览和轨迹记录。FreeCAD 是个比较硬核的 CAD 工具,能跑通这个流程说明 CLI 覆盖的功能深度不低。
Draw.io:HTTPS 握手流程图
Agent 从零开始画了一张完整的 HTTPS 连接生命周期图——TCP 三次握手、TLS 协商、加密数据交换、四次挥手——全部通过 CLI 命令完成,最终产出 .drawio 和 .png 两个文件。
平台支持
| 平台 | 接入方式 | 状态 |
|---|---|---|
| Claude Code | /plugin marketplace add HKUDS/CLI-Anything | 官方支持 |
| Pi Coding Agent | bash 脚本安装扩展 | 官方支持 |
| OpenCode | 复制命令文件到配置目录 | 官方支持 |
| OpenClaw | 复制 SKILL.md 到技能目录 | 社区支持 |
| Codex | bash 安装脚本 | 社区支持(实验性) |
| GitHub Copilot CLI | copilot plugin install | 社区支持 |
| Qodercli | 注册脚本 | 社区支持 |
Claude Code 接入三步搞定
# 第一步:添加插件市场
/plugin marketplace add HKUDS/CLI-Anything
# 第二步:安装插件
/plugin install cli-anything
# 第三步:生成 CLI
/cli-anything ./目标软件路径
写在最后
值得认可的地方
能让 Claude Code、Codex 这类工具直接驱动 Blender、FreeCAD、GIMP 这种专业软件,思路上确实打在了痛点上。Demo 也不是玩具级别的——月球车、3D 无人机、完整流程图,东西是真的产出来了。
项目每天都在合并 PR,这个更新频率在开源项目里不多见。社区也在持续贡献,最近合并的 Rekordbox、Calibre、MiniMax 这些,都是真实使用场景里会用到的工具。
值得观察的地方
| 问题 | 说明 |
|---|---|
| CLI 质量依赖源码分析 | 如果软件的 Python API 封装得乱七八糟,生成的 CLI 覆盖率可能不理想 |
| 社区贡献质量参差不齐 | Hub 现在靠 CI 做基础验证,但能不能挡住差的东西,得看维护力度 |
快速开始
# 安装 Hub
pip install cli-anything-hub
# 安装指定 CLI
cli-hub install blender
# 或者自己生成
/cli-anything ./your-software
对正在用 Claude Code 或者 Codex 做自动化的同学,这个项目值得试一下。特别是你的工作流里有某款有界面但没开放 API 的工具——扔进去跑一圈,没准直接就通了。
本文整理自微信公众号「极客之家」,原文链接:https://mp.weixin.qq.com/s/LfT4HFtNIjdOsx5RnJ8mJQ
GitHub: https://github.com/HKUDS/CLI-Anything
CLI-Hub: https://clianything.cc/