2026 年 9 月 24 日的 GitHub 趋势日榜上,HKUDS/CLI-Anything 当日 +415★。仓库元数据(取数时间 2026-09-24 21:33–21:40,数据来自 GitHub API):50,166★、4,610 fork、105 个 open issue、201 位 watcher、Apache-2.0 协议、2026-03-08 创建、最后一次提交 2026-09-22、最新 release v0.4.0 发布于 2026-06-25。

这组数字里有两处值得先点出来:

  • 半年时间 5 万星。建仓到 5 万星只用了约六个半月,期间只打了三个版本号,大头靠社区 PR 往上堆——仓库里的 harness 大多是外部贡献者合进来的。
  • 它的野心写在一句话里:Making ALL Software Agent-Native。同一天榜单上还有几个 2 万星级的 AI 项目,但"让所有软件都能被 Agent 用"这个提法,只有它敢这么写。

配套还有一份技术报告《CLI-Anything: Towards Agent-Native Computer Use》(arXiv:2606.03854,HKUDS 的 Yuhao Yang、Tianyu Fan、Chao Huang),说明它不是纯工程仓库。

一句话定位:它不写新软件,它写"软件的翻译层"

理解这个项目只要抓住一个区分:AI Agent 很会推理,但几乎不会用专业软件。现在通行的三条路各自有坑——

  • 截图点击式 GUI Agent:让模型看屏幕、找按钮、移动鼠标。软件一改版、弹窗一变位置,整条链路就碎了。
  • 等官方 API:覆盖度参差,而且 API 往往只暴露软件 10% 的能力。
  • 让模型重写一个简化版:功能直接缩水九成,出来的东西不能进生产。

CLI-Anything 走的是第四条:读源码,把软件的真实能力翻译成一组结构化命令行,由模型去敲命令,软件的渲染/导出/运算还交给软件本体。README 里把这条原则写得很硬——「We build structured interfaces TO software, not replacements」(我们造的是通往软件的接口,不是替代品),并且赌上了可验证性:后端软件没装时,测试是失败(fail)而不是跳过(skip)。

它到底生成什么:7 阶段流水线

在 Claude Code 里一行命令 /cli-anything ./gimp,触发的是一条 7 阶段流水线:

阶段做什么产出
1 Analyze扫源码,把"界面上能点的操作"映射到真实 API 调用能力清单
2 Design设计命令组、状态模型、输出格式命令架构
3 Implement用 Click 搭 CLI,带 REPL、JSON 输出、undo/redocli-anything-<软件>
4 Plan Tests写 TEST.md,定单测 + 端到端测试计划测试计划
5 Write Tests实现测试套件测试代码
6 Document回填测试结果到 TEST.md文档
6.5 SKILL.md从 Click 装饰器、setup.py、README 自动抽出技能定义SKILL.md
7 Publish生成 setup.py 并装进 PATHpip 可装包

生成出来的东西长这样(以 GIMP 为例):

1
2
3
4
5
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"
cli-anything-gimp          # 不带子命令就直接进 REPL

几个设计细节值得记:

  • 双模式:带子命令跑脚本、不带子命令进交互 REPL,所有 CLI 共用一套统一皮肤(repl_skin.py),带命令历史和进度条。
  • --json 是内建的,不是后加的。Agent 拿结构化数据,人看人类可读的表格。
  • 会话有状态:项目状态可持久化,支持 undo/redo——这点比"每条命令都是一次性调用"的封装方式实用得多。
  • 命令规模可以很大:FreeCAD CLI 有 258 条命令、分 17 个组;Mailchimp CLI 有 303 条命令。

三条上手路径,按你的起点选

README 明确给了两条起跑线(能用的现成货 / 自己造新的),实际是三条:

路径一:只用现成的,cli-anything-hub 一个包搞定

1
2
3
4
5
6
pip install cli-anything-hub
cli-hub list              # 浏览注册表
cli-hub search image      # 按关键词搜
cli-hub info gimp         # 看单个 CLI 详情
cli-hub install gimp      # 装
cli-hub launch gimp       # 跑

它同时也是个包管理器:update、uninstall 齐备。注意一个前提——有些 CLI 包的是真的桌面软件,选了 GIMP、Blender、LibreOffice 这类,你得先把上游软件装上,否则命令没有后端可调。

路径二:给 Coding Agent 一次性装 meta-skill,让它自己去发现和安装

1
npx skills add HKUDS/CLI-Anything --skill cli-hub-meta-skill -g -y

装完之后你可以只说一句「在 CLI-Hub 里找合适的 CLI 完成这个任务:……」,Agent 自己去目录里挑、装、读它的 SKILL.md 再干活。官方列出兼容的平台有一长串:Claude Code、Cursor、Codex、OpenCode、Pi、OpenClaw、Reasonix、Qodercli、GitHub Copilot CLI,以及 Hermes。

路径三:仓库里没有的软件,自己生成一个

Claude Code 侧的安装是多两步的插件流程:

1
2
3
/plugin marketplace add HKUDS/CLI-Anything
/plugin install cli-anything
/cli-anything ./gimp

后续可以用 /cli-anything:refine ./gimp "我想加强图像批处理和滤镜这块" 做增量补全——refine 是对照软件全量能力清单做差距分析,只加不删。

Hermes 也支持,但标了 Experimental + Community。仓库里有一个 hermes-skill/ 目录,装法是从仓库克隆后跑 bash CLI-Anything/hermes-skill/scripts/install.sh,它会落到 $HERMES_HOME/skills/cli-anything-hermes(没设 HERMES_HOME 就是 ~/.hermes/skills/cli-anything-hermes),装完要重启 Hermes 才会被发现。它把 Hermes 的 terminal、execute_code、delegate_task、read_file/write_file/patch 这几个工具绑到同一条 7 阶段流程上,生成的 Python harness 格式与其它平台完全一致——也就是说,用 Hermes 的人这次不用羡慕 Claude Code 用户。(同类思路的延伸阅读可以看我们之前拆的把剪辑交给编码 Agent 的 video-use 和 Cloudflare 的安全审计 Skill。)

现成货有多少:79 个自研 harness + 24 个第三方 CLI

这是判断"现在能不能上手"的关键。仓库里两个注册表(取数时间同上):

  • registry.json:79 条 CLI-Anything 自研/社区贡献 harness。列表中既有 Audacity、Blender、ComfyUI、Draw.io、FreeCAD、GIMP、Inkscape、Kdenlive、LibreOffice、Mermaid、OBS Studio、Ollama、Shotcut、Zotero、QGIS、RenderDoc、Zoom 这类专业软件,也有 WireMock、n8n、PM2、ChromaDB、Joplin、Calibre 这类工程与效率工具。
  • public_registry.json:24 条第三方官方 CLI 的收录(飞书、企业微信、1Password CLI、Sentry、Shopify、Contentful、ElevenLabs、MiniMax 等),用来把"官方 CLI 生态"和"自动生成的封装"放进同一个安装入口。

需要注意的是,README 的能力清单里明说了:自己造一个新 harness,前提是有源码(Python 3.10+)。README 还专门列了一份"哪些软件适合被 agent 化"的分类表,从 GitHub 项目、AI/ML 平台、数据分析、开发工具、创意媒体、游戏引擎、科研计算到办公协作,每类都点名了典型软件——这份表本身可以当选题清单用。

测试成绩单:2,464 项通过,但数字有三处口径

README 的测试汇总表是目前这个项目最硬的资产,列出每个 harness 的通过数(节选):

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)
kdenlive      155 passed
shotcut       154 passed
obs-studio    153 passed
nslogger      139 passed
drawio        138 passed
joplin        134 passed
gimp          107 passed
openscreen    101 passed
ollama         98 passed
cloudcompare   88 passed
comfyui        73 passed
...
TOTAL       2,464 passed    100% pass rate

测试分四层:单元测试(合成数据)、原生 E2E(生成的项目文件结构是否合法,比如 ODF ZIP 结构、MLT XML、SVG 合法性)、真后端 E2E(真的调 LibreOffice 转出 PDF 后查 %PDF- 魔数字节,真的让 Blender 渲出 PNG)、以及子进程测试(装好的命令能不能返回合法 JSON)。

但这里有个我必须指出的细节:同一份 README 里出现了三个测试数字——顶部徽章写 2,461 Passing,测试汇总表合计 2,464 passed,文末页脚还写着 2,280 passing tests(另有徽章写 18 Apps)。这三个口径我没能对齐出官方解释,只能确认明细表本身相加是 2,464。另外注册表里有 79 个 harness,测试表里只有 30 个有明细数字——覆盖面很广,验证深度不均,看星标冲着"全都能用"来的人应该知道这一点。

六个官方 demo:Agent 到底能用它产出什么

README 里放的演示都不是玩具,这一点比测试数字更能说明问题:

  • FreeCAD:Agent 一步步拼出一辆好奇号风格的火星车,过程中不断推送预览包、刷新实时预览,并把每条命令与对应画面绑成可回放的 trajectory.json。
  • Blender:同样在 preview + live preview + trajectory 三件套下长出一台硬表面"轨道中继无人机"。
  • Draw.io:约 4 分钟从零画出完整的 HTTPS 连接生命周期图(三次握手、TLS 协商、加密传输、四次挥手),产出 .drawio 加 .png。
  • Slay the Spire II:Agent 通过 harness 读游戏状态、选卡、选路径,实时打完一局。
  • VideoCaptioner:自动生成并烧录双语样式字幕。
  • ArcGIS Pro:这是个反面参照——商业闭源桌面软件,没法读源码,所以它走 MCP 桥接官方 ArcPy/SDK,驱动一个真实打开的 Pro 会话缩放地图、跑地理处理、导出布局图。

也就是说,有源码就生成,没源码就桥接(ArcGIS Pro 走 MCP,官方把它作为"商业软件的对应方案"列出来)。

和截图点击式 GUI Agent 的对比:换的是失败模式

维度截图点击式 GUI Agent直接接官方 APICLI-Anything
输入给模型的东西屏幕像素 + 坐标原始接口文档/散装接口结构化命令 + --json 输出
能力保留界面能点的才可用看 API 覆盖度接近软件全量能力
稳定性界面改版/弹窗即失效较稳,但接口变更要改代码稳,失效点是软件 CLI 版本
token 成本截图最贵便宜便宜(文本进出)
失败模式静默点错、假成功接口未覆盖→做不到后端缺失直接报错,不静默降级
人在环里能看它点,难审计靠日志命令可审计、可重放、可 undo

README 里有一句很关键的自我设限:真软件是硬依赖,没有 fallback、没有"优雅降级"。这就是为什么它们的测试在后端缺失时选择 fail 而不是 skip——宁可测试红,也不留一个"看起来能用其实调的是玩具实现"的中间态。

官方承认的三条限制,以及我补的两条

README 的 Limitations 一节写了三条,值得原样重视:

  • 需要前沿模型。官方点名 Claude Opus 4.6 / Sonnet 4.6 / GPT-5.4 这一档才能稳定生成 harness,弱模型或小模型产出的 CLI 会不完整甚至错误,需要大量人工修。
  • 依赖源码。纯二进制、需要反编译的软件,harness 质量和覆盖度会明显下降。
  • 一次跑不够。单次 /cli-anything 常常不能覆盖全部能力,要跑一到多次 /refine 才能到生产质量。

我额外补两条,都是上手成本层面的:

  • 你得先装"真软件"。想用 Blender CLI,机器上就得有 Blender;想用 LibreOffice CLI,就得有 LibreOffice。这不是一个"pip 装完就能玩"的项目,它把你原有的软件安装负担一个都没省掉——省掉的只是"点鼠标"这一步。
  • Hermes 侧的入口是社区实验性质。hermes-skill/ 在 README 里标了 Experimental,且由社区贡献,版本跟进节奏不保证跟 Claude Code 插件同步。

我的判断:谁该上,谁再等等,谁别碰

该上的三类人:

  1. 已经在用编码 Agent(Claude Code / Codex / Hermes)且每天要碰专业软件的人。你已经付了模型钱,这个项目把你手上软件的能力直接接进 Agent,边际成本只有"装上游软件"这一项。首选路径是先 pip install cli-anything-hub 看 79 个现成货里有没有你要的。
  2. 做内部工具的团队。把内部系统或散装的一堆接口喂给 /cli-anything,换一个有状态、命令成组的 CLI,比让 Agent 每次直连几十个原始接口省 token 也好审计——README 自己就把这条列为三大用法之一。
  3. 想积累开源履历的人。它明确接受"为某个软件造 harness 并提交"的 PR,CLI-Hub 对社区贡献是即时收录的,这条路径的门槛比从零写一个开源项目低得多。

**再等等的:**手上只有中等或小模型额度的人(官方限制第一条直接点名);目标软件是闭源、又没有像 ArcGIS Pro 那样的官方 SDK/MCP 可用的人——这时候 harness 质量会掉到"能做但不能用"。

**别碰的:**期待"一句话自动出片、还不装任何软件"的人。这个项目的价值上限很高,但它的下限就是你的软件安装能力;把它当成"免安装剪辑神器"会立刻失望。

一句话收口:它是一个把专业软件的"手"接给 Agent 的中间层,不是新的生产力 App。 你的 Agent 越强、你手上的专业软件越多,它的收益越大;反过来,它一样都替不了。


顺带一提:软件能被 Agent 敲命令的前提,是你先选对了趁手的编码工具——这篇AI 编程助手整理可以对着配。

本文由拾光札记编辑部整理,勘误请联系我们。