夜雨聆风学习资料网

ARTICLE · 1218650

把任何软件变成 AI Agent 的手,这个项目给全世界的软件造命令行

把任何软件变成 AI Agent 的手,这个项目给全世界的软件造命令行
最近在开源社区刷到一个项目,定位语写得很狂,「Making ALL Software Agent-Native」,让所有软件都为 Agent 而生。

项目叫 CLI-Anything,来自香港大学数据科学实验室,Apache-2.0 协议,自带完整中文文档。我把它的 README 和技术报告翻了一遍,这个思路值得认真聊聊。

它回答的问题很直接,AI Agent 会思考,但不会用软件。

项目官方漫画:软件太多、CLI 太少,CLI-Anything 把任何代码库变成 Agent 可用的命令行。来源:项目 GitHub README

01 它到底解决什么问题

今年 Agent 赛道有个尴尬的现实。模型能写代码、能推理,但让它用 Blender 建个模、用 GIMP 批处理一百张图、用 LibreOffice 转一份 PDF,立马抓瞎。

现在的解法基本是三条烂路。UI 自动化,让模型看截图点像素,慢、脆、弹个窗就死;官方 API,覆盖的功能往往不到软件本身的一成;自己重写一遍,那是玩具,不是工具。

CLI-Anything 的判断是,命令行才是人类和 Agent 的通用接口。文本命令天然匹配 LLM 的输出格式,--help 自带文档,JSON 输出免解析,确定性执行可以复现。

所以它做的事是:给定任何一个软件的代码库,自动生成一套完整、可 pip 安装的 CLI,直连软件的真实后端。Blender 真渲染 3D,LibreOffice 真转 PDF,零妥协,零玩具实现。

今天的软件是给人用的,明天的用户是 Agent。

这句话印在 README 的第一行,也是整个项目的出发点。

02 实现原理,一条七阶段流水线

它的核心是一个挂在 AI 编程工具里的生成器插件,Claude Code、Cursor、Codex、OpenCode 都支持。你给一句 /cli-anything ./gimp,它自动跑完七个阶段。

先分析,扫描源码,把 GUI 动作映射到 API;再设计,规划命令组、状态模型和输出格式;然后实现,用 Click 框架造出带 REPL 和 JSON 输出的 CLI;接着规划测试、写测试、补文档,最后生成 setup.py,直接装到 PATH。

生成出来的 CLI 不是拿脚本糊的,是有统一规格的工程产物。 全部基于 Python 3.10+ 和 Click 8,带交互式 REPL,支持 undo/redo 的持久会话,--json 参数输出结构化结果给 Agent 消费,人类则看可读格式调试。

还有两个设计我认为是关键。一个是流水线的第 6.5 阶段,自动生成 SKILL.md,把这个 CLI 的能力写成 Agent 可发现的技能描述,配合 npx skills 生态,Agent 能自己找到并学会用这套工具。

另一个是 CLI-Hub,一个中心化的注册表。装一个 cli-anything-hub 包,cli-hub install gimp 一条命令,就能把别人造好的 CLI 拿走。造工具和使用工具被拆成了两件事,生态才可能滚起来。

目前社区已经造好了 Blender、GIMP、Inkscape、LibreOffice、Audacity、Zotero、n8n 等十几款软件的 CLI,官方用 2400 多条测试在真实软件上做了验证,不是跑个 demo 就完事。

官方演示:生成的 CLI 在终端里的真实交互过程。来源:项目 GitHub README

03 怎么部署,两条路

只想用现成的生态,装 Hub 就行,需要 Python 3.10 以上。

pip install cli-anything-hub

cli-hub list
cli-hub search image
cli-hub install gimp
cli-hub launch gimp

注意一点,有些 CLI 包的是真实桌面软件。装了 GIMP 的 CLI,机器上还得有 GIMP 本体,CLI 是它的方向盘,不是替代品。

想自己造 CLI,以 Claude Code 为例,两步装插件。

/plugin marketplace add HKUDS/CLI-Anything
/plugin install cli-anything

然后对着任何本地代码库或 GitHub 仓库跑生成命令就行。Windows 用户注意,先装 Git for Windows 或者走 WSL,Claude Code 执行 shell 依赖 bash 环境。

Cursor、Codex、OpenCode、Pi、GitHub Copilot CLI 也都有对应的安装脚本,仓库里各自带着 install.sh 和 install.ps1,主流编程 Agent 基本都覆盖了。

04 真实用起来什么样

我挑两个官方给的例子,都能照着跑通。

第一个,用 GIMP 的 CLI 做图。 装好 cli-anything-gimp 之后,建一张 1920×1080 的画布,再加一个纯色背景图层,两行命令。

cli-anything-gimp project new --width 1920 --height 1080 -o poster.json
cli-anything-gimp --json layer add -n "Background" --type solid --color "#1a1a2e"

第二条加了 --json,返回的就是结构化数据,Agent 拿到可以直接判断成败、接着往下调。不带参数直接敲 cli-anything-gimp,会进一个交互式 REPL,项目状态在会话里保持着,改错了可以 undo。

第二个例子更夸张,让 Agent 自己造工具、再用工具干活。 在 Claude Code 里对 Draw.io 的代码跑一遍生成,Agent 拿着刚造好的 CLI,从零画了一张完整的 HTTPS 建连流程图,TCP 三次握手、TLS 协商、加密传输、四次挥手,全程四分钟左右,纯命令行,没碰一下鼠标。

Agent 全程用 CLI 画出的成品:HTTPS 建连与断连完整流程图。来源:项目 GitHub README 演示

造完不满意还能迭代。跑一句 /cli-anything:refine,它会做差距分析,把没覆盖的功能补齐,非破坏式增量,可以反复跑。

官方演示里还有更硬的。Agent 用 Blender CLI 一步步搭出一架轨道中继无人机,每个阶段推一张真实渲染的预览图;用 FreeCAD CLI 组装了一台好奇号火星车。这些不是看截图点出来的,是命令一条条敲出来的。

Agent 用 Blender CLI 搭建轨道中继无人机,预览、实时预览、轨迹回放全流程。来源:项目 GitHub README 演示

05 我的看法

说实话,Computer Use 火了一年,我一直觉得路线有问题。让模型盯着屏幕找按钮,本质是让一个聪明人蒙着眼干活。

今年行业的共识在收敛,模型能力够用了,卡脖子的是 Agent 与真实软件之间的工具层。CLI-Anything 给的答案很朴素,别教 Agent 模仿人点鼠标,把软件的正经能力暴露成命令行,让它像工程师一样工作。

与其教 Agent 模仿人,不如把软件改造成 Agent 能直接用的样子。

更妙的是飞轮。造好的 CLI 进 Hub,别人的 Agent 装走就能用;Agent 用得越多,CLI 被补得越全。软件不用改一行代码,就被搬进了 Agent 时代。

适合谁?做 Agent 产品的工程师,这是现成的工具层;被 UI 自动化折磨过的 RPA 开发者,可以换条路了;还有想让自己开源项目被 Agent 生态接住的维护者,照着 HARNESS.md 造一个 CLI 挂上 Hub,就是最低成本的入场券。

项目是 Apache-2.0 协议,商用友好。仓库地址 github.com/HKUDS/CLI-Anything,内有中文 README,CLI-Hub 的网页版在 hkuds.github.io/CLI-Anything,方法论细节还有一篇 arXiv 技术报告可以看。

回到开头那句话。今天的软件是给人设计的,但软件的用户正在换成 Agent。

有人已经开始给新用户装修房子了,挺有意思。

相关学习资料