引言
在 AI Agent 蓬勃发展的今天,一个核心矛盾日益凸显:AI 的推理能力越来越强,但操控真实专业软件的能力却很弱。 Photoshop、Blender、LibreOffice——这些人类每天依赖的生产力工具,对 AI Agent 来说几乎是不可触及的黑箱。
现有的解决方案要么靠脆弱的 GUI 自动化(截图+点击,三天两头崩),要么是覆盖面有限的API 封装,要么干脆阉割掉 90% 的功能重新造轮子。有没有一种方式,既能保留软件的全部专业能力,又能让 AI Agent 轻松驾驭?
香港大学数据智能实验室(HKUDS)给出了一个简单而优雅的答案:CLI-Anything。
一句话理解 CLI-Anything
今天的软件为人而生,明天的用户是 Agent。
CLI-Anything 的核心思路极其直接——既然大语言模型天生就擅长处理结构化文本,那就把所有软件都变成命令行工具。一行命令,就能为任意开源软件的代码库自动生成一套完整的 CLI 接口,让 GIMP、Blender、LibreOffice 等专业软件瞬间变成 AI Agent 可以直接调用的原生工具。
项目自 2026 年 3 月上线以来迅速走红,GitHub Star 数突破 19,000,登上 GitHub Trending 榜单,成为 Agent 工具链领域最受关注的开源项目之一。
为什么是 CLI?
CLI-Anything 的核心判断是:在 Agent 和软件之间,应该补一层命令行接口,而不是让 Agent 直接去搏斗 GUI。理由很充分:
结构化、可组合:文本命令天然匹配 LLM 的输入格式,可自由串联成复杂工作流
自描述:一个 --help 就能让 Agent 自动发现所有功能
Agent 友好:内置 JSON 输出,Agent 无需任何额外解析
确定且可靠:输出稳定一致,Agent 行为可预测
久经验证:Claude Code 每天就是通过 CLI 执行数以千计的真实任务
怎么工作的?全自动 7 阶段流水线
CLI-Anything 设计了一套完整的自动化流水线,从源码分析到发布上线全程无需人工介入:
分析 — 扫描源码,将 GUI 操作映射到后端 API
设计 — 规划命令分组、状态模型、输出格式
实现 — 构建基于 Click 框架的 CLI,包含 REPL 交互、JSON 输出、撤销/重做
规划测试 — 生成测试计划,涵盖单元测试和端到端测试
编写测试 — 实现完整测试套件
文档 — 自动生成使用文档和测试报告
发布 — 生成 setup.py,一键安装到系统 PATH
一个关键的设计原则是:生成的 CLI 不会重新实现软件功能。它生成合法的项目文件(ODF、MLT XML、SVG 等),然后调用真实软件的后端去渲染。GIMP 就用 GIMP 的引擎,Blender 就用 Blender 的渲染器——功能一个不少,零妥协。
实测验证:11 款软件,1,508 项测试,100% 通过
HKUDS 团队在 11 款复杂的专业软件上进行了完整验证,涵盖创意、办公、通信、图表和 AI 内容生成多个领域:
软件 | 领域 | 测试数 |
GIMP | 图像编辑 | 107 |
Blender | 3D 建模与渲染 | 208 |
Inkscape | 矢量图形 | 202 |
Audacity | 音频制作 | 161 |
LibreOffice | 办公套件 | 158 |
OBS Studio | 直播与录制 | 153 |
Kdenlive | 视频剪辑 | 155 |
Shotcut | 视频剪辑 | 154 |
Zoom | 视频会议 | 22 |
Draw.io | 图表绘制 | 138 |
AnyGen | AI 内容生成 | 50 |
合计 | 1,508(100% 通过) |
测试覆盖四个层级:核心函数的单元测试、项目文件完整性的端到端测试、调用真实软件后端的集成测试,以及通过子进程调用已安装命令的 CLI 验证测试。
使用体验:简单到不可思议
以 Claude Code 为例,只需三步:
# 1. 添加插件市场/plugin marketplace add HKUDS/CLI-Anything# 2. 安装插件/plugin install cli-anything# 3. 为任意软件生成 CLI/cli-anything:cli-anything ./gimp
生成完成后,Agent 就可以像这样操控软件:
# 创建一个 LibreOffice 文档$ cli-anything-libreoffice document new -o report.json --type writer# 添加标题$ cli-anything-libreoffice --project report.json writer add-heading -t "Q1 Report"# 导出为真实 PDF(调用 LibreOffice 无头模式渲染)$ cli-anything-libreoffice --project report.json export render output.pdf -p pdf
除了 Claude Code,CLI-Anything 还支持 OpenCode、OpenClaw、Codex、Qodercli 等多个 AI 编程平台,并计划支持 Cursor、Windsurf 等更多工具。
适用场景广泛
CLI-Anything 的野心不止于几款创意软件。它理论上适用于任何有代码库的软件:
创意与媒体:Blender、GIMP、Krita、Inkscape、Audacity、OBS Studio
开发工具:Jenkins、Gitea、Portainer、SonarQube
数据与分析:JupyterLab、Apache Superset、Metabase
企业与办公:LibreOffice、NextCloud、Grafana
科学计算:FreeCAD、QGIS、ImageJ、KiCad
AI/ML 平台:Stable Diffusion WebUI、ComfyUI、Open WebUI
常见误解:CLI-Anything ≠ MCP 工具封装
很多人第一次听到 CLI-Anything 时会误以为它是自动封装出一堆 MCP(Model Context Protocol)工具。实际上两者是完全不同的技术路线:
MCP 路线:Agent 通过 JSON-RPC 协议调用 MCP Server 暴露的函数/方法,需要运行一个常驻的 Server 进程,工具以结构化的函数签名描述给模型。
CLI-Anything 路线:Agent 通过 Bash/Shell 直接执行命令行程序,不需要额外的协议层和常驻进程,工具就是一个安装在系统 PATH 里的可执行命令。
两者的调用链路对比:
MCP 路线: Agent → MCP 协议 → MCP Server 进程 → 软件
CLI-Anything: Agent → Bash/Shell → CLI 命令 → 软件
对比维度 | MCP 工具 | CLI-Anything |
接口形式 | JSON-RPC 函数调用 | Shell 命令行 |
运行依赖 | 需要 MCP Server 常驻进程 | 无需额外进程,命令即用即走 |
能力发现 | 通过协议的工具描述 schema | 通过 `--help` 和 `which` 命令 |
输出格式 | 协议约定的 JSON 响应 | `--json` 参数返回结构化 JSON |
适用场景 | 需要协议级集成的平台 | 任何能执行 Shell 命令的 Agent |
CLI-Anything 赌的是一个朴素的事实:AI Agent 本来就擅长执行 Shell 命令。Claude Code、Cursor、Codex 每天都在通过终端操控各种工具,所以不需要额外的协议层,直接生成 CLI 就是最轻量、最通用的方案。一个 --help 就能让 Agent 自动发现所有功能,不需要额外的工具描述文件或注册流程。
社区评价:方向对了,细节在路上
CLI-Anything 在社区引发了广泛关注和讨论。知乎上的深度拆解文章给出了中肯的评价:
CLI-Anything 真正有价值的地方,不是它今天已经把"任意软件"都接成了 Agent 工具,而是它把一套可复制的 GUI → CLI → Agent 适配方法写成了标准件。
当然也有人指出它的局限性:只能处理开源软件(需要源码分析),生成过程依赖强模型(Claude Sonnet 4 级别),对 Blender 这种巨型项目可能无法一次覆盖所有功能。但项目提供了 /refine 命令支持增量优化,可以逐步扩大功能覆盖。
结语
CLI-Anything 代表了 Agent 时代一个极其重要的方向:工具接口层。当我们讨论 AI Agent 的落地时,往往关注模型能力、推理框架、任务规划,却忽略了一个最基础的问题——Agent 怎么操作真实世界的软件?
CLI-Anything 给出的答案简洁而有力:用 CLI 做桥梁,让每一款软件都说 Agent 听得懂的语言。这可能不是最终的答案,但它踩中了一个迟早必须补上的关键环节。对于关注 AI Agent 生态的开发者来说,这是一个值得持续关注的项目。
版权声明:本文转载于今日头条,版权归作者所有,如果侵权,请联系本站编辑删除
