CLI-Anything:未来软件可能不是给人用的,而是给 Agent 用的

2026年4月10日 · 3332 字 · 7 分钟 · CLI-Anything AI Agent OpenClaw Claude Code Codex 自动化工具

CLI-Anything 封面

很多 AI Agent 现在最尴尬的问题,不是不聪明。

而是手太短。

它能写计划,能拆需求,能生成代码,聊起来也像那么回事。

但你真让它去操控一个复杂软件,比如 GIMP、Blender、LibreOffice、OBS、Kdenlive,它立刻就会遇到一个很尴尬的问题:

它懂你想干什么,但它未必碰得到软件真正的能力。

GUI 自动化太脆。

API 覆盖又太窄。

重新实现一套“简化版工具”更尴尬,最后往往只剩 10% 的功能。

这就是 CLI-Anything 想解决的事。

它的判断挺直接:以后很多软件,不能只给人点按钮用,也得给 Agent 留一个能稳定调用的入口。

一、CLI-Anything 到底是什么?

CLI-Anything 是 HKUDS 开源的一个项目。

它想做的事情,可以压缩成一句话:

把任意软件自动转成 Agent 能调用的 CLI。

这里的 CLI,就是命令行工具。

比如你有一个图像编辑软件、视频剪辑软件、办公套件、数据分析平台,过去 Agent 想用它,通常有三条路:

  • 模拟人类点击界面
  • 调用软件已有 API
  • 自己写一个缩水版替代工具

但这三条路都有问题。

模拟点击很容易因为界面变化崩掉。

API 往往只覆盖一小部分能力。

自己重写工具又容易变成玩具,离真实生产环境差很远。

CLI-Anything 的思路是:

别逼 Agent 去“看屏幕”,给真实软件补一个结构化命令入口。

这样 Agent 就能通过 --help 发现能力,通过命令组合任务,通过 JSON 输出读取结果。

这比截图、坐标、按钮点击稳得多,也更像工程系统,而不是碰运气。

二、为什么偏偏是 CLI?

很多人看到这里可能会问:

为什么不是 MCP?

为什么不是 API?

为什么不是 GUI Agent?

原因也很简单:CLI 是人和 Agent 都能理解的最小公共接口。

它有几个很朴素的优势。

第一,CLI 是文本。

LLM 本来就擅长读写文本命令。相比让模型猜一个按钮在哪里,命令行天然更清楚。

第二,CLI 可组合。

一个命令创建项目,一个命令添加素材,一个命令导出文件,这些命令可以串成完整工作流。

第三,CLI 自描述。

一个 --help 就能暴露命令、参数、示例和约束。Agent 不需要猜,也不需要靠视觉识别。

第四,CLI 输出稳定。

如果每个命令都支持 JSON 输出,Agent 就可以直接消费结构化结果,而不是从一大段自然语言里抠信息。

这也是 CLI-Anything 的基本判断:

对 Agent 来说,CLI 不是什么老古董,反而可能是最现实的通用接口。

三、它是怎么把软件变成 CLI 的?

CLI-Anything 不是让你手写一堆命令,然后自己慢慢维护。

它提供的是一套自动生成流程。

以 Claude Code 为例,你可以先添加插件市场,再安装 cli-anything 插件,然后对一个软件源码目录执行命令。

项目文档里给出的流程大概是 7 步:

  1. 分析源码,把 GUI 操作映射到内部 API
  2. 设计命令分组、状态模型和输出格式
  3. 实现 Click CLI,包含 REPL、JSON 输出、撤销和重做
  4. 规划测试,生成测试文档
  5. 编写测试套件
  6. 更新文档,记录测试结果
  7. 生成安装包,把命令安装到 PATH

换句话说,它不是只帮你包一层壳,也不是给 GUI 外面贴一张命令行皮肤。

它想把一个软件整理成 Agent 能长期使用的命令系统。

生成之后,你会得到类似这样的工具:

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"

Agent 可以读帮助文档,可以执行命令,可以解析 JSON,可以在 REPL 里维持项目状态。

这就不再是“临时点几下界面”,而是有状态、可组合、可测试的工具调用。

四、它支持哪些 Agent 工具?

CLI-Anything 现在的接入方式,明显是冲着 AI 编程工具和 Agent 客户端去的。

README 里提到了这些平台:

  • Claude Code
  • OpenCode
  • Qodercli
  • OpenClaw
  • Codex
  • GitHub Copilot CLI
  • 未来计划支持 Cursor、Windsurf 等更多平台

不同平台的接入方式不完全一样。

Claude Code 走插件市场。

OpenClaw 走 Skill。

Codex 也提供了对应 Skill。

OpenCode、Qodercli、GitHub Copilot CLI 则有各自的命令或插件注册方式。

这背后的意思是:

CLI-Anything 不想绑定某一个 Agent。

它更像是想做一层中间接口:

上面接各种 Agent,下面接各种真实软件。

如果这层接口成立,Agent 工具链就会从“每个软件单独适配一次”,变成“软件先 CLI 化,然后多个 Agent 都能用”。

这也是它真正值得看的地方。

五、它不只是概念,已经做了不少实测

我最关心的不是它口号喊得多大,而是有没有真的碰过复杂软件。

从 README_CN 里看,CLI-Anything 已经给多类软件生成过 CLI,并提供了测试结果。

里面包括:

  • GIMP:图像编辑
  • Blender:3D 建模与渲染
  • Inkscape:矢量图形
  • Audacity:音频制作
  • LibreOffice:办公套件
  • Zotero:文献管理
  • OBS Studio:直播与录制
  • Kdenlive、Shotcut:视频剪辑
  • Zoom:视频会议
  • Draw.io:图表绘制
  • AnyGen:AI 内容生成
  • Sketch:UI 设计

README 里给出的测试总数是 1,527 项全部通过

这里最有价值的点,不是数字本身。

而是它反复强调了一个原则:

CLI 必须调用真实软件后端,而不是写一个看起来差不多的替代品。

比如 LibreOffice 要真的导出 PDF。

Blender 要真的渲染图片。

视频剪辑工具要生成合法的项目文件,再交给真实渲染器。

这件事绕不过去。

因为 Agent 工具最怕的就是“演示很顺,生产一碰就碎”。

如果只是做一个 demo,很多问题都可以绕过去。

但如果要让 Agent 真的进入办公、设计、剪辑、科研、数据分析这些工作流,就绕不开真实软件的文件格式、渲染逻辑、依赖环境和边界情况。

CLI-Anything 至少选了一条更难、也更接近生产环境的路。

六、它适合解决什么问题?

我觉得 CLI-Anything 最适合三类场景。

1. 让 Agent 接管专业软件工作流

比如你希望 Agent 帮你批量处理图片、生成文档、导出视频、制作图表。

如果软件本身有源码或可调用后端,就有机会通过 CLI-Anything 生成一套命令接口。

这比让 Agent 看屏幕点按钮更稳定,也更容易测试。批处理、固定流程、重复导出这类活,尤其适合。

2. 把零散 API 整理成一个工具

很多 Web 服务都有 API,但接口零散、状态分散、文档复杂。

对人来说还能慢慢查。

对 Agent 来说,十几个裸 API 调来调去,token 消耗大,出错点也多。

如果能把这些能力整理成一个状态清晰的 CLI,Agent 调用时会轻松很多。

它调用的就不是“接口碎片”,而是一套任务工具。

3. 给 GUI Agent 做评测和替代方案

GUI Agent 很热,但真实评测很难。

因为界面变化、截图识别、点击位置、系统环境都会影响结果。

CLI-Anything 的另一个价值是:

它可以把软件操作变成代码和终端命令,从而更容易生成任务、评测器和 Benchmark。

这会让 Agent 的能力评估更可复现。

七、但它也不是银弹

这类项目很有想象力,但不能神化。

它至少有几个现实门槛。

第一,它更适合有代码库、可脚本化、可调用真实后端的软件。

如果一个软件高度封闭,没有稳定文件格式,也没有可编程入口,生成 CLI 的难度会明显上升。

第二,复杂软件的能力覆盖不是一次性完成的。

README 里也提供了 refine 命令,用来对已有 CLI 做差距分析和增量扩展。

这说明一开始生成的 CLI 不是终点,更像是一个可以继续打磨的 harness。

第三,测试成本不会消失。

只要你真的接真实软件,环境依赖、渲染结果、文件合法性、版本差异都要验证。

CLI-Anything 的方向是把这些成本工程化,而不是让它们凭空消失。

所以更准确地说:

它不是帮你省掉工程复杂度,而是把复杂度搬到 Agent 更能处理的位置。

八、为什么我觉得这个方向值得看?

过去一年,大家聊 Agent,经常卡在一个问题上:

模型越来越强,但真实工作流还是不好接。

人类的软件世界是 GUI、文件、插件、菜单、快捷键、导出选项、历史兼容。

Agent 的世界是文本、结构化输入、工具调用、状态管理、可验证输出。

这两个世界之间,缺一层桥。

MCP 是一层桥。

API 是一层桥。

CLI 也可能是一层桥,而且朴素、耐用。

CLI-Anything 的价值就在这里。

它不是发明一个全新的软件形态。

它是承认现有软件世界本来就复杂,然后给 Agent 开一扇更稳定的门。

如果这个方向继续发展,未来的软件可能会多出一种默认交付物:

  • 给人用的 GUI
  • 给开发者用的 API
  • 给 Agent 用的 CLI / Skill / MCP 接口

到那时,一个软件好不好用,不只看人类点起来顺不顺。

还要看 Agent 能不能发现它、理解它、调用它、验证它。

我觉得这才是 CLI-Anything 背后更值得琢磨的变化:

软件的用户,正在从人类扩展到 Agent。

一灯短评

如果你是开发者、独立产品作者,或者正在做 AI Agent 工作流,我建议你关注 CLI-Anything 这类项目。

不是因为它已经解决了一切。

而是因为它提出了一个很硬的问题:

当 Agent 真的要干活时,我们到底该把软件接口设计成什么样?

以前这个问题属于开发者体验。

以后它可能会变成软件能不能被 Agent 时代接住的问题。

公众号二维码

我会持续整理 AI Agent、OpenClaw、Claude Code、Codex 和自动化工具相关的实用内容。 如果你也在关注“Agent 怎么真正接管工作流”,可以关注我的公众号,后面我会继续拆这类工具。