← 返回文章

CLI-Anything:自动为专业软件生成 CLI

更新于

自动为专业软件生成 CLI,让 AI 直接调用底层功能。

CLI-Anything 的官方界面或演示截图
封面:来源 · Apache-2.0

HKUDS 的 CLI-Anything 想解决一个很具体的断层:agent 会写代码,却很难操作 Blender、GIMP、LibreOffice 这类专业软件。项目给出的办法不是模拟鼠标,也不是重写一套简化版,而是让 agent 读软件源码或接口文档,生成一个真正调用原软件的 CLI。仓库的副标题是“Making ALL Software Agent-Native”。

命令行对 agent 友好,是因为它结构化、可组合,还自带 --help 这类可发现的说明。生成器把软件的状态模型和命令组写成可读代码,出错时能回到具体命令,而不是重放一串点击。这一点决定了它更适合批处理和 CI,而不是“让模型看着屏幕点按钮”。CLI-Hub 的 Web 页面也能直接浏览目录和安装说明,不必先装包管理器,页面与 cli-hub 读的是同一份 registry。

CLI-Anything 的界面或功能演示截图
CLI-Anything 项目图标(仓库素材)

两条入口,不是一件事

第一条是直接用现成的 CLI。CLI-Hub 是社区 registry 的包管理器:

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

cli-hub 还提供 info、update、uninstall,把浏览、安装、升级和启动收在一条命令里。已安装的 CLI 不必手动重装,cli-hub update <name> 就能升级。registry 同时收录 CLI-Anything 生成的 harness 和第三方公共 CLI,安装源可以是 pip、npm、brew 或系统自带工具,cli-hub info 会说明目标软件的前置条件。部分 CLI 只是外壳,目标软件仍要自己装好,例如 GIMP、Blender、LibreOffice。

第二条是给还没有现成 CLI 的软件生成一个。Claude Code 里先加市场再装插件:

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

/cli-anything 会跑完七个阶段:分析源码并把 GUI 动作映射到 API、设计命令组与状态模型、实现带 REPL 和 JSON 输出的 Click CLI、制定测试计划、补测试、写文档、打包安装到 PATH。生成器还会为 CLI 产出 SKILL.md,让 agent 能发现它的用法。另有 :refine、:test、:validate 三个辅助命令,用于扩覆盖、跑测试和按 HARNESS.md 校验。

生成的 CLI 长什么样

官方给的 LibreOffice 示例很能说明形态:

cli-anything-libreoffice document new -o report.json --type writer
cli-anything-libreoffice --project report.json writer add-heading -t "Q1 Report" --level 1
cli-anything-libreoffice --project report.json export render output.pdf -p pdf --overwrite

命令维护一个项目文件,最后调用 libreoffice-headless 真正导出 PDF;加 --json 后返回结构化结果,agent 不必解析人类可读的输出。生成的 CLI 还带 REPL 和撤销/重做,交互式调试与脚本化调用可以共用一套命令。

一个批量交付的场景

假设每周要把一批数据写成格式统一的报告:用生成的 LibreOffice CLI 建文档、加标题和表格、导出 PDF,再把 JSON 结果交给下一步脚本。整个过程不打开 GUI,也不依赖窗口焦点,适合放进 CI 或定时任务。Blender 场景批量渲染、GIMP 批量改图、Shotcut 渲染视频是同一类用法。官方 demo 覆盖 FreeCAD 组装漫游车、Blender 搭建中继无人机、QGIS 制图、Godot 游戏与字幕流水线,展示的是真实软件产物,不是玩具渲染。

与 MCP、GUI 自动化的分工

MCP 把软件能力包装成工具,适合交互式 agent 会话,但每个软件都要一个 server;GUI 自动化靠截图和点击,界面一变就失效。CLI-Anything 生成的是可组合的命令行,天然适合 shell 管道和 CI,也能再被 MCP 或 skill 包一层。三者不是互斥关系:需要实时对话就用 MCP,需要批量流水线就用 CLI。

局限

生成器需要可分析的源码,或者足够完整的 API 文档;闭源商业软件只能走官方 SDK,CLI-Anything 自己也用 ArcGIS Pro 的 ArcPy 做过这类桥接。生成出来的命令不保证一次覆盖所有功能,README 要求配套测试,实际项目还要自己审查命令语义和回退路径。上游软件必须安装,CLI 不是替代品。Claude Code 的插件入口在 Windows 上要求 Git for Windows 或 WSL,否则可能报 cygpath: command not found;其他 agent 走 npx skills 或仓库里的安装脚本。本文按官方 README 与仓库元数据整理,未在本机完整实测。

适合谁

适合需要把专业软件接进自动化流水线的团队,例如批量出报告、批量渲染、批量转码;也适合愿意为内部工具生成 CLI 的开发者。只想在聊天里偶尔让 agent 点几下软件的用户,直接用 GUI 或 MCP 更省事。

官方入口