CLI-Anything 使用教程:7 步流水线把 GUI 软件变成命令行工具
CLI-Anything 使用教程:7 步流水线把 GUI 软件变成命令行工具
【免费下载链接】CLI-Anything"CLI-Anything: Making ALL Software Agent-Native" -- CLI-Hub: https://clianything.cc/项目地址: https://gitcode.com/GitHub_Trending/cl/CLI-Anything
CI 任务里要批量导出文档,或者想让 AI 代理自动操作 GIMP、LibreOffice 这类纯 GUI 软件,都会撞上同一个障碍:它们没有可被脚本驱动的入口。UI 自动化的录屏点击方案脆弱难维护,只调部分 API 又丢掉了大部分功能,而手动给每个软件写一套命令行接口,成本又高得吓人。
CLI-Anything 是一个 GUI 转 CLI 的命令行构建工具:它分析目标应用的架构,自动生成一套完整的、带测试的命令行接口,让 AI 代理和 CI 流水线能直接驱动原本只有图形界面的软件。目前它已经为 GIMP、Blender 等 11 个主流应用构建了 CLI,累计 1,245 个测试用例全部通过。
三步把 GIMP 装进命令行
最短路径只需要三步。以 Claude Code 为例:
cp -r cli-anything-plugin ~/.claude/plugins/cli-anything # 然后执行 /reload-plugins接着对目标软件执行构建命令,支持本地源码路径或仓库 URL:
/cli-anything gimp产物在gimp/agent-harness/下,用可编辑安装放到 PATH 里:
cd gimp/agent-harness && pip install -e . which cli-anything-gimp # 能打印路径即成功之后cli-anything-gimp --help、带--json的机器可读输出、无参数直接进的交互式 REPL,都已就绪。
从安装到产出:7 阶段构建流程
构建命令跑通后,后台实际执行的是 HARNESS.md 定义的 7 阶段流水线。三个平台共用这一份方法论文档,这也是跨平台产物格式完全一致的原因。
- 代码库分析:找出后端引擎与数据模型,把每个 GUI 操作映射到对应的 API 调用,产出一份软件专属的 SOP 文档(如
GIMP.md)。 - CLI 架构设计:按应用功能域划分命令组,定义状态模型与输出格式。
- 实现:用 Click(Python 命令行框架)搭建 CLI,支持子命令与 REPL 双模式,所有命令都带
--json标志供代理消费。 - 测试规划:先写
TEST.md测试计划,列明要覆盖的模块、用例数量与端到端场景。 - 测试实现:
test_core.py用合成数据做单元测试;test_full_e2e.py用真实文件跑完整流水线,并验证输出像素、文件结构等硬指标。 - 测试文档:用
pytest -v --tb=no执行全量测试,把完整结果与覆盖率差距追加回TEST.md。 - 发布安装:生成
setup.py,包名cli-anything-<软件名>,按 PEP 420 命名空间规范组织,最后验证命令在 PATH 中可执行。
每个生成的 CLI 还会附带一份SKILL.md,让 AI 代理无需阅读源码就能发现并正确调用它。
Claude Code、OpenCode、OpenClaw 三种接入方式
三平台的差异只在入口形式,方法论与产物格式完全相同。
- Claude Code(官方插件):上面一节演示过,另有
/cli-anything:refine增量补全功能、/cli-anything:test跑测试、/cli-anything:validate校验质量。Windows 上需先装 Git for Windows 或启用 WSL,否则会报cygpath找不到。 - OpenCode(实验性):把 opencode-commands/ 目录下的命令文件和
HARNESS.md一起拷进~/.config/opencode/commands/,即可获得cli-anything、cli-anything-refine、cli-anything-test、cli-anything-validate、cli-anything-list五个命令。HARNESS.md必须与命令文件同目录,否则命令会找不到方法论文档。 - OpenClaw:走 SKILL 机制,技能文件声明支持 build、refine、test、validate 四种模式,接受本地源码路径或仓库 URL,会自动推导软件名称。
生成产物的标准目录结构
无论哪个平台构建,落地结构都一样,方便你按约定找文件:
<软件名>/ └── agent-harness/ ├── <SOFTWARE>.md # 软件专属 SOP ├── setup.py # PyPI 包配置 └── cli_anything/ # 命名空间包(无 __init__.py) └── <软件名>/ # 子包(有 __init__.py) ├── README.md ├── <软件名>_cli.py # 主入口 ├── core/ # 核心模块 ├── utils/ # 工具与后端封装 └── tests/ # 测试套件两个容易踩坑的点:cli_anything/一层不要放__init__.py(PEP 420 命名空间包的硬性要求);setup.py里用find_namespace_packages(include=["cli_anything.*"]),否则会漏包子包。
已构建软件与测试结果
首批 11 个应用的测试数据如下(完整清单见各agent-harness下的TEST.md):
| 软件 | 测试用例 | 后端方式 |
|---|---|---|
| GIMP | 103 | 光栅图像,基于 Pillow |
| Blender | 200 | 3D 创作,bpy 脚本生成 |
| Inkscape | 197 | 矢量图形,SVG 操作 |
| Audacity | 154 | 音频编辑,WAV 处理 |
| LibreOffice | 143 | 办公套件,ODF ZIP/XML |
| OBS Studio | 153 | 流媒体录制,JSON 场景集合 |
| Kdenlive | 151 | 视频编辑,MLT XML |
| Shotcut | 144 | 视频编辑,MLT XML + ffmpeg |
| 其余 3 个应用 | 合计 153 | 视频会议、绘图等 |
| 总计 | 1,245 | 全部通过 |
排错:失败时先看哪里
- 测试失败:先跑
/cli-anything:validate <软件名>,再查TEST.md里的具体断言;依赖用pip list | grep -E 'click|pytest'确认,Python 版本要求 3.10 及以上。 - 命令找不到:确认第 7 阶段真的执行完了、目录布局与上一节一致;必要时重跑构建命令。
- 导入错误:对照标准结构检查各层
__init__.py是否存在、PYTHONPATH是否正确。 - E2E 测试跳过或异常:很多 CLI 依赖上游真实软件(GIMP、ffmpeg、sox 等),上游没装时测试会直接失败而非降级,把上游软件装上是预期行为。
延伸阅读
- 完整方法论:cli-anything-plugin/HARNESS.md,五个命令文件的定义就在同目录的
commands/下。 - 测试证据样例:gimp/agent-harness/cli_anything/gimp/tests/TEST.md。
- 5 分钟快速上手:cli-anything-plugin/QUICKSTART.md。
下一步可以挑一个自己日常在用的 GUI 软件,把它的源码丢给/cli-anything试跑一次,再用/cli-anything:refine针对自己最常做的操作逐步补齐覆盖。
【免费下载链接】CLI-Anything"CLI-Anything: Making ALL Software Agent-Native" -- CLI-Hub: https://clianything.cc/项目地址: https://gitcode.com/GitHub_Trending/cl/CLI-Anything
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
