CLI-Anything 实战教程:7 个阶段把任意软件变成 Agent 可调用的 CLI
发布日期:2026-10-23 | 话题:AI Agent · CLI · 开发工具 | 适用读者:开发者
CLI-Anything 是香港大学数据智能实验室(HKUDS)于 2026 年 3 月开源的 Agent 原生 CLI 生成框架,目标是把 GIMP、Blender、LibreOffice 这类只有图形界面的软件,转成 Agent 可以直接调用的命令行工具。它提供两条路径:用 CLI-Hub 安装现成的 CLI,或用 Claude Code 插件跑完 7 阶段流水线,从源码现场生成一套带 JSON 输出、REPL、测试和 SKILL.md 的 CLI。截至 2026 年 10 月 23 日,项目在 GitHub 已有 56,231 个 Star,CLI-Hub 注册表列出 103 个可安装 CLI,仓库测试累计 2,464 项。本文按环境准备、安装、生成、验证、精修的顺序走一遍,并给出 5 个容易踩的坑和适用边界。
CLI-Anything 是什么?它补的是 Agent 与专业软件之间的缺口
CLI-Anything 的核心价值是让 Agent 继续使用真实软件的能力,而不是退回到玩具级实现。项目 README 把现状总结为三种妥协:GUI 自动化靠截图和坐标,界面一变就失效;厂商 API 只开放部分能力;重新实现一遍则会丢掉约 90% 的功能。
它的做法是生成一个 Python 命令行层,直接调用软件原有的可执行文件。例如 LibreOffice 负责导出 PDF,Blender 负责渲染 3D 场景,GIMP 走 batch 模式处理图像。CLI 只负责把操作翻译成命令和项目文件,渲染仍然交给真实后端。
截至 2026 年 10 月 23 日,HKUDS/CLI-Anything 在 GitHub 获得 56,231 个 Star、5,066 个 Fork,采用 Apache-2.0 许可证(来源:GitHub API,2026)。仓库把设计原则写成“Authentic Software Integration”:构建通往软件的结构化接口,而不是替代软件。
环境准备:Python 3.10+、一个 Agent 和一个真实软件
跑通 CLI-Anything 只需要四类依赖,其中只有“真实软件”容易被忽略。
先确认版本:
python3 --version # 需要 3.10+
claude --version # 使用插件路线时需要如果你用国内模型驱动 Claude Code,七牛云的 AI 编程工具配置大全整理了常见 CLI 与 IDE 的接入参数,可以作为环境配置的补充参考。
路线一:用 CLI-Hub 安装现成 CLI,3 分钟跑起来
CLI-Hub 是 CLI-Anything 的包管理器,适合“注册表里已经有目标软件”的场景。它的 PyPI 包管理器于 2026 年 4 月上线,当前版本为 0.4.1,要求 Python 3.10+。
pip install cli-anything-hub
# 先看有没有现成的
cli-hub search image
# 查看详情:版本、依赖、入口命令
cli-hub info gimp
# 安装并启动
cli-hub install gimp
cli-hub launch gimpcli-hub info gimp 会直接告诉你上游依赖和入口命令,典型输出如下:
GIMP
Raster image processing via gimp -i -b (batch mode)
Version: 1.0.0
Requires: gimp (apt install gimp)
Entry point: cli-anything-gimp
Status: not installed这里有一个关键前提:CLI-Hub 装的是“命令层”,不是软件本身。如果 Requires 里的 GIMP 没装,命令仍然会失败。按 2026 年 10 月 23 日的 CLI-Hub 0.4.1 实测,cli-hub list 共列出 103 个可安装 CLI,覆盖图像、音视频、3D、办公、自动化等分类。
路线二:用 7 阶段流水线,为没有 CLI 的软件现场生成
当目标软件不在注册表里,或者你需要一套贴合内部工具的命令组,就走生成路线。以 Claude Code 为例,先装插件:
/plugin marketplace add HKUDS/CLI-Anything
/plugin install cli-anything
/reload-plugins
/help cli-anything确认插件加载后,一条命令启动完整流水线:
# 从本地源码生成
/cli-anything ./gimp
# 也可以直接喂 GitHub 仓库
/cli-anything https://github.com/blender/blender这 7 个阶段各自产出什么,可以直接对照下表:
第 3 阶段决定成败:它不会用 Python 重画一个 GIMP,而是写 utils/<software>_backend.py,用 shutil.which() 找到真实可执行文件,再用 subprocess.run() 调用。README 对此的表述是“Zero compromises, Zero toy implementations”。
验证:4 条命令确认生成的 CLI 真能干活
生成结束后,先安装再验证,不要只看 Agent 的完成提示。
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"
# 不带子命令直接进入 REPL
cli-anything-gimp--json 是给 Agent 用的关键开关。默认输出是人类可读的表格,加上 --json 后返回结构化对象,Agent 不需要解析彩色文本。
办公场景可以用 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 writer add-table --rows 4 --cols 3
cli-anything-libreoffice --project report.json export render output.pdf -p pdf --overwrite
cli-anything-libreoffice --json document info --project report.json最后一条命令返回页数、元素数量等元数据,能直接判断导出是否成功。按项目 README 在 2026 年公布的测试结果,GIMP 通过 107 项、Blender 208 项、LibreOffice 158 项,全部 harness 合计 2,464 项测试、100% 通过率。
精修与测试:把“能跑”推到“能用”
初次生成的 CLI 通常只覆盖主流程,精修命令负责补齐长尾能力。
# 全局差距分析:对比软件完整能力与当前命令覆盖
/cli-anything:refine ./gimp
# 聚焦某个方向,例如批量处理与滤镜
/cli-anything:refine ./gimp "batch processing and filters"
# 跑测试并回填 TEST.md
/cli-anything:test ./gimp
# 按 HARNESS.md 标准做一致性校验
/cli-anything:validate ./gimprefine 是增量且非破坏性的,可以反复执行。实践顺序建议是:先 validate 确认结构合规,再 test 拿到真实通过率,最后按缺口 refine。每次上游软件升级后,至少重跑一次 validate 和关键 E2E,避免命令与新版后端漂移。
5 个常见坑与适用边界
第一,Python 版本不够。CLI-Hub 与生成的包都要求 3.10+,3.9 会在安装阶段直接失败。
第二,Windows 缺少 cygpath。Claude Code 通过 bash 执行命令,Windows 需要安装 Git for Windows 或使用 WSL,否则会报 cygpath: command not found。
第三,提示 Unknown skill: cli-anything。先 /reload-plugins,再用 /help cli-anything 确认插件是否加载;仍然失败就重新执行 marketplace 添加与安装。
第四,上游软件没装。CLI-Anything 的测试在缺少后端时会失败而不是跳过,这是刻意设计,避免“假通过”。
第五,把生成的 CLI 当成官方 API。它是社区或内部生成物,命令签名可能随版本变化,生产使用要锁定版本并保留回归测试。
不适合用的场景同样明确:目标 SaaS 已有成熟 API 时,直接接 API 或 MCP 更省事;需要读取画布内部临时状态、像素级交互的任务,CLI 层拿不到;团队完全没有 Python 运行环境时,维护成本会高于收益。
常见问题
Q:CLI-Anything 和 MCP 是什么关系? MCP 是模型调用外部工具的协议,CLI-Anything 生成的是可执行 CLI 和 SKILL.md。两者不冲突:CLI 负责稳定执行,MCP 可以把多个 CLI 或服务编排成统一工具面。项目中的 ArcGIS Pro 演示就走 MCP Bridge。
Q:不会写代码也能用吗? 安装现成 CLI 只需要会跑命令。生成路线由 Agent 完成分析与实现,但环境准备、依赖安装和报错排查仍需要基本的命令行能力。
Q:支持 Windows 吗? 支持,但依赖 bash 环境。安装 Git for Windows(自带 bash 与 cygpath)或使用 WSL 即可,原生 PowerShell 直接跑会缺命令。
Q:生成的 CLI 能直接上生产吗? 可以先做内部工具,生产前至少完成三步:validate 校验、真实软件 E2E、固定版本并纳入 CI。官方 2,464 项测试是质量参考,不等于你的目标软件已被完整覆盖。
Q:项目收费吗? 不收费。仓库采用 Apache-2.0 许可证,允许商用与修改,但需保留许可证与版权声明。
结语
CLI-Anything 的意义不是再造一个 Agent 框架,而是把存量桌面软件变成 Agent 的工具层。HKUDS 在 README 中把原则写得很清楚:生成结构化接口,而不是重写软件;调用真实后端,而不是做演示级替代。
按 2026 年 10 月 23 日的数据,这条路已有 103 个可安装 CLI、2,464 项测试和 56,231 个 Star 支撑。本文内容基于当日抓取的 GitHub 仓库、PyPI 包信息与本机 CLI-Hub 实测输出,项目迭代较快,建议每季度复核命令与版本。
参考资料
HKUDS/CLI-Anything 仓库:https://github.com/HKUDS/CLI-Anything
CLI-Hub 在线目录:https://clianything.cc/
生成规范 HARNESS.md:https://github.com/HKUDS/CLI-Anything/blob/main/cli-anything-plugin/HARNESS.md
PyPI 包 cli-anything-hub:https://pypi.org/project/cli-anything-hub/
七牛云Token Plan(主流Coding模型低至1.2折):https://www.qiniu.com/ai/plan