CLI-Anything:让 AI Agent 学会使用各种软件
让 AI Agent 像调用 API 一样使用传统软件
1. 引言
博主最近看到一个很有意思的开源项目 CLI-Anything,它的目标很直接:让所有软件都可以被 AI Agent 使用。
现在很多 AI Agent 已经可以写代码、查资料、调用工具,但它们在使用传统软件时还是会遇到一个问题:
“ 大多数软件是为人设计的,不是为 Agent 设计的,比如 GIMP、Blender、LibreOffice、OBS、Kdenlive 这些软件,功能都很强,但主要依赖图形界面,人可以点按钮、拖拽、打开菜单,但 Agent 更适合执行命令、读取文本、解析 JSON,CLI-Anything 想解决的就是这个问题。”
它不是重新开发一套软件,而是给现有软件外面包一层命令行接口,让 Agent 可以像调用工具一样使用这些软件。

2. CLI-Anything为何物?
CLI-Anything 是一个把软件变成命令行工具的项目,更准确地说,它会为已有软件生成一个 CLI Harness,可以简单理解为:
给一个软件套上一层 Agent 能理解的命令行外壳。
比如原来你要用 Blender 建模,可能需要打开界面、点击菜单、调整参数,有了 CLI Harness 之后,Agent 就可以通过类似这样的命令操作它:
cli-anything-blender scene new
cli-anything-blender object add cube
cli-anything-blender render
这样一来,Agent 不需要真正去“看界面”,而是通过命令完成操作。同样的,它可以:
- 用 LibreOffice 自动生成文档;
- 用 Blender 自动创建 3D 场景;
- 用 GIMP 自动处理图片;
- 用 OBS 自动控制录制和直播;
- 用 Kdenlive 自动剪辑视频;
- 用 Draw.io 自动生成流程图。
这些任务如果让 Agent 直接操作 GUI,会比较麻烦,但如果变成 CLI,就清晰很多。
3. CLI-Anything 适用场景
CLI-Anything 主要适合三类人:
- 『Agent 开发者』:如果你正在做 AI Agent,肯定会遇到一个问题“Agent 不可能只会聊天,它需要调用工具、操作软件、生成结果”,CLI-Anything 可以帮助 Agent 拥有更多“外部能力”。
- 『软件开发者』:如果你开发了一个软件,希望未来能被 Agent 使用,那就可以考虑给它加一层命令行接口,这不一定要把整个软件重写,只需要把核心能力包装出来。
- 『企业内部工具团队』:很多公司都有内部系统、办公软件、数据工具,它们可能没有完善 API,但又希望未来能接入 Agent 工作流。
当你遇到下面这些情况时,CLI-Anything 就很有用:
“
软件功能很强,但主要依赖 GUI;
想让 Agent 自动完成软件里的操作;
想让任务可以脚本化、自动化;
想让 Agent 得到稳定的结构化结果;
想让工具能被测试、验证和复用。
”
比如你希望 Agent 完成这样一个任务:
帮我生成一份 PPT 风格的图文文档,并导出成 PDF。
如果完全靠图形界面,过程很难稳定,但如果通过 CLI 控制 LibreOffice 或其他软件,任务就更容易标准化。
CLI-Anything 可以运行在本地开发环境中,它主要依赖 Python 生态,同时需要目标软件本身已经安装好(比如:你想让它控制 Blender,那本地就需要安装 Blender,你想让它控制 LibreOffice,那本地也需要安装 LibreOffice。)。
另外,它也可以和一些 Agent 平台结合使用,比如 Claude Code、OpenCode、Codex、GitHub Copilot CLI 等。
4. CLI-Anything 是如何实现的?
从实现角度看,CLI-Anything 并没有使用特别神秘的技术。它的核心思想是:
用命令行把软件能力标准化。它把 Agent 使用软件时最关键的几个环节串了起来:先用命令行封装软件能力,再用 JSON 提供稳定输出,通过 REPL 和状态管理支持连续操作,最后调用真实软件后端并用测试验证结果,从而让传统软件变成 Agent 能调用、能理解、能验证的可靠工具。

5. 文末
CLI-Anything 关注的是一个很重要的问题:
未来 AI Agent 怎么使用现有软件?
它给出的思路是:
- 把传统软件的能力封装成命令行工具;
- 让 Agent 通过命令调用软件;
- 用 JSON 输出提供结构化反馈;
- 用测试保证结果真实可靠;
- 用 SKILL.md 让 Agent 理解工具怎么用。
从更大的角度看,CLI-Anything 代表了一种趋势:软件不仅要给人用,也要给 Agent 用。
过去我们设计软件时,主要考虑人怎么点、怎么看、怎么操作,但在 Agent 时代,软件还需要考虑:
- Agent 怎么发现它;
- Agent 怎么调用它;
- Agent 怎么理解结果;
- Agent 怎么判断任务是否完成。
CLI-Anything 的意义就在这里,它不是要替代现有软件,而是让现有软件更容易进入 AI Agent 的工作流。未来,越来越多软件可能都会拥有两套入口:
- 一套给人使用的 GUI;
- 一套给 Agent 使用的 CLI。
而 CLI-Anything,就是在探索这条路~
更多推荐



所有评论(0)