发布日期: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 只负责把操作翻译成命令和项目文件,渲染仍然交给真实后端。

接入方式

稳定性

能力覆盖

前置条件

GUI Agent(截图+点击)

低,界面变化即失效

覆盖可见操作

视觉模型、屏幕环境

厂商 API

高

仅开放接口部分

API Key、额度

CLI-Anything

高,命令可版本化

调用真实软件后端

源码或 SDK 文档、Python 3.10+

截至 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 只需要四类依赖,其中只有“真实软件”容易被忽略。

依赖

要求

用途

Python

3.10 及以上

运行 CLI-Hub 与生成的 CLI

AI 编程 Agent

Claude Code、Cursor、Codex、OpenCode 等

执行 7 阶段生成流水线

上游软件

GIMP、Blender、LibreOffice 等

提供真实渲染/转换后端

Node.js

可选

用 npx skills 安装技能包

先确认版本:

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 gimp

cli-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 个阶段各自产出什么,可以直接对照下表:

阶段

做什么

产出

1. Analyze

定位后端引擎,把 GUI 操作映射到 API 调用

能力清单与数据模型

2. Design

设计命令组、状态模型、输出格式

CLI 架构方案

3. Implement

用 Click 实现命令、REPL、JSON、undo/redo

可运行的 CLI 包

4. Plan Tests

编写单元测试与端到端测试计划

TEST.md 上半部分

5. Write Tests

实现测试套件,调用真实软件验证

可执行测试

6. Document

回填测试结果与使用说明

TEST.md 下半部分

6.5 SKILL.md

从 Click 装饰器提取命令元数据

Agent 可发现的技能文件

7. Publish

生成 setup.py,安装到 PATH

cli-anything-<软件>

第 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 ./gimp

refine 是增量且非破坏性的,可以反复执行。实践顺序建议是:先 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 实测输出,项目迭代较快,建议每季度复核命令与版本。

参考资料