AI Agent 如何控制现实世界的软件?CLI Anything vs OpenCLI 深度对比
AI Agent 的终极梦想,就是能够控制现实世界中所有软件。
试想一下:让 AI 自动帮你用 Blender 渲染场景、用 GIMP 修图、从小红书抓取热点数据、控制浏览器自动发帖……这不再是科幻,两个开源项目已经把它变成了现实。
今天我们就来深度对比一下 CLI Anything(香港大学数据科学实验室出品)和 OpenCLI(个人开发者 jackwener 开发)这两个项目,看看它们各自解决了什么问题,又该如何选择。
为什么需要这两个工具?
现在的 AI Agent 能力很强,但有一个致命问题:它们大多被困在”盒子”里,只能处理文本和代码,碰不到你电脑上已有的软件。
-
• 💻 你电脑上有 Blender,但 AI 无法自动调用它渲染3D场景 -
• 🌐 AI 需要从小红书获取数据,但每次都要人工截图复制 -
• 🎨 GIMP、Inkscape、OBS 这些好工具,AI 只能”看”不能”用”
CLI Anything 和 OpenCLI 就是来解决这个问题的——它们都在做同一件事:把各种各样的软件,转换成 AI Agent 能够理解和调用的 CLI 命令行接口。
但两者主攻方向完全不同,我们分开来看。
CLI Anything:一键把任何GUI软件变成AI可调用的CLI
项目概况
-
• 创建者:香港大学数据科学实验室(HKUDS) -
• GitHub:https://github.com/HKUDS/CLI-Anything -
• 核心标语:”Making ALL Software Agent-Native” -
• Star 趋势:GitHub Trending 快速增长中
核心愿景
Today’s Software Serves Humans👨💻. Tomorrow’s Users will be Agents🤖.CLI-Anything: Bridging the Gap Between AI Agents and the World’s Software
简单说,CLI Anything 的目标就是:让所有软件都能被 AI Agent 原生使用。
它最牛的地方在于,你只要把有源代码的软件路径丢给它,它会通过一个 7阶段全自动流水线,帮你生成完整的 Python CLI 包装层:
-
1. 🔍 分析 – 扫描源代码,把GUI操作映射到API -
2. 📐 设计 – 设计命令组、状态模型、输出格式 -
3. 🔨 实现 – 使用Click构建CLI,自带REPL、JSON输出、撤销/重做 -
4. 📋 规划测试 – 创建单元测试和E2E测试计划 -
5. 🧪 编写测试 – 实现完整测试套件 -
6. 📝 文档 – 更新测试文档 -
7. 📦 发布 – 创建setup.py,安装到PATH
整个过程全自动,不需要你写一行代码。
已支持的软件:20+ 领域,1900+ 测试全通过
CLI Anything 已经为 20 多款常用软件生成了生产可用的 CLI 接口,每个都跑通了全部测试:
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
总计 20+ 个软件,1,917 个测试,100% 全部通过——这个质量保证在开源项目里真的少见。
使用方式: Claude Code 一键生成
对于 Claude Code 用户来说,使用真的非常简单:
# 1. 添加市场/plugin marketplace add HKUDS/CLI-Anything# 2. 安装插件/plugin install cli-anything# 3. 一键生成CLI/cli-anything:cli-anything /path/to/software/source
生成之后就可以直接用了:
# 安装到PATHcd gimp/agent-harness && pip install -e .# 命令行使用,支持JSON输出方便AI解析cli-anything-gimp --json project new --width 1920 --height 1080# 进入REPL交互式使用cli-anything-gimp
设计哲学:真正的软件集成,不做玩具
CLI Anything 的几个设计原则让我印象深刻:
-
1. 真正调用真实软件 —— 不做模拟替换,就是调用你电脑上已安装的软件真实渲染,输出的结果就是你要的 -
2. Agent原生设计 —— 每个命令都支持 --json输出,天生就是给 AI 吃的 -
3. 测试不妥协 —— 要求100%测试通过率,不把有问题的代码给用户 -
4. 统一体验 —— 所有生成的CLI共享同一个REPL界面,学习成本低
适合什么场景?
|
|
|
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
典型案例:
-
• AI Agent 自动用 Blender 批量渲染 3D 场景 -
• AI Agent 自动用 LibreOffice 生成 PDF 报告 -
• AI Agent 批量处理 GIMP 图像尺寸和水印 -
• AI Agent 通过 OBS 自动录制和剪辑视频
OpenCLI:把网站和Electron应用都变成CLI
项目概况
-
• 创建者:jackwener -
• GitHub:https://github.com/jackwener/opencli -
• 核心标语:”Make Any Website & Tool Your CLI” -
• NPM包: @jackwener/opencli
核心愿景
OpenCLI 解决的是另一个场景:让 AI Agent 能够通过 CLI 访问网站数据、控制 Electron 桌面应用。
你是不是经常需要让 AI 帮你:
-
• 看看 B 站今天热门有什么? -
• 从小红书搜索一下某个关键词的笔记? -
• 控制 Cursor IDE 自动重构代码?
这些事情以前 AI 做不到,现在 OpenCLI 让它变成可能。
核心特性
OpenCLI 的核心能力可以总结为三点:
1️⃣ 网站转 CLI
已经内置了 65+ 个网站适配器:
-
• 中文平台:小红书、Bilibili、知乎、掘金、豆瓣、微信公众号 -
• 国际平台:Twitter/X、Reddit、HackerNews、YouTube、Pixiv
2️⃣ Electron 应用转 CLI
支持控制常见的桌面应用:
-
• Cursor IDE、OpenAI Codex、ChatGPT、Notion、Discord、Doubao
3️⃣ 统一 CLI Hub
自动发现你电脑上已有的 CLI 工具,让 AI 一键找到并调用,还能自动安装缺失的工具。
几个让人印象深刻的设计:
-
• 零 LLM 运行时消耗 —— 预生成适配器,运行的时候不需要调用 LLM,速度快又省钱 -
• 确定性输出 —— 相同命令输出相同结果,适合自动化脚本和 CI -
• 复用 Chrome 登录状态 —— 你已经在浏览器登录了小红书,OpenCLI 直接复用,不需要重新登录 -
• 反检测内置 —— 帮你做好了指纹规避,运行稳定
使用示例
安装也很简单:
# 1. 从Releases下载Browser Bridge扩展加载到Chrome# 下载地址: https://github.com/jackwener/opencli/releases# 2. 安装OpenCLInpm install -g @jackwener/opencli# 3. 检查连接opencli doctor
然后就可以用了:
# 列出所有可用命令opencli list# Bilibili热门opencli bilibili hot --limit 5# 小红书搜索opencli xiaohongshu search --keyword "AI agent" --limit 10# 下载小红书笔记中的图片和视频opencli xiaohongshu download abc123 --output ./xhs# GitHub Trendingopencli github-trending trending --language go# 输出JSON格式供AI处理opencli bilibili hot -f json | jq
架构设计:双引擎架构
OpenCLI 用了非常灵活的双引擎设计:
-
• YAML 声明式:简单的数据提取管道,用 YAML 声明一下就好了,零代码 -
• TypeScript 注入:复杂交互场景,直接写 TypeScript,灵活强大
这样既保证了简单场景的开发效率,又不失去复杂场景的灵活性。
适合什么场景?
|
|
|
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
典型案例:
-
• AI Agent 每日汇总 Bilibili 热门话题写评测 -
• AI Agent 从小红书抓取特定关键词的竞品分析 -
• AI Agent 自动控制 Cursor IDE 批量重构代码 -
• AI Agent 统一发现和调用你所有的本地 CLI 工具
全方位对比:哪个更适合你?
看完两个项目的介绍,我们来做一个全方位对比:
|
|
|
|
|---|---|---|
| 核心目标 |
|
|
| 主要作者 |
|
|
| 方法学 |
|
|
| 目标软件类型 |
|
|
| 运行时LLM需求 |
|
|
| 测试质量保证 |
|
|
| 输出格式 |
--json |
json/yaml/csv/md/table 多种 |
| 支持Agent平台 |
|
|
| 依赖真实软件 |
|
|
| 许可证 |
|
|
| 活跃度 |
|
|
从能力对比上能看得更清楚:
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
一句话总结:
CLI Anything 负责”本地有源码的GUI应用”,OpenCLI 负责”网站和Electron应用”。它们不是竞争关系,而是完美互补。
架构对比:两种不同的思路
CLI Anything 的架构比较直接:
AI Agent → 生成的CLI (Click/Python) → 真实软件后端 → 输出结果
AI 调用生成的 CLI,CLI 再调用真实软件,真实软件输出结果。整条链干干净净。
OpenCLI 因为要处理网站和 Electron,所以架构稍复杂一点:
AI Agent → opencli → [浏览器CDP ↔ 网站] 或 [CDP ↔ Electron app] 或 [子进程 ↔ 本地CLI] → 输出JSON
OpenCLI 相当于一个统一的代理层,把不同类型的目标都转换成统一的 CLI 接口输出。
环境要求对比
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
总结:如何选择?
👉 选 CLI Anything 如果你:
-
• 需要让 AI Agent 控制本地 GUI 应用(Blender、GIMP、LibreOffice、OBS等) -
• 目标软件有公开源代码 -
• 重视测试质量,要求每个功能都经过验证 -
• 在使用 Claude Code 或 OpenClaw
👉 选 OpenCLI 如果你:
-
• 需要让 AI Agent 访问网站数据(Bilibili、小红书、知乎等) -
• 需要控制 Electron 桌面应用(Cursor、ChatGPT、Notion等) -
• 需要一个统一的 CLI 中心,让 AI 自动发现所有工具 -
• 需要定时抓取内容或下载媒体资源
👀 其实可以一起用:
两个项目真的不冲突,反而可以配合得很好:
-
• CLI Anything 搞定你的本地创意软件自动化 -
• OpenCLI 搞定网站数据采集和桌面应用控制 -
• 两者都输出 AI 友好的 JSON 格式,同一个 AI Agent 可以同时调用它们
写在最后
这两个项目让我看到了 AI Agent 发展的一个重要方向:AI 不应该只在自己的小世界里玩,它应该走出来,控制我们每天都在用的那些软件。
以前我们说”AI 辅助人类工作”,未来可能会变成”AI 帮你操作软件,你只需要做决策”。从这个角度看,CLI Anything 和 OpenCLI 都是在铺这条路的基石。
如果你也在做 AI Agent 相关的开发,或者对 AI 自动化感兴趣,非常建议去这两个仓库看看,说不定能打开一扇新大门。
🔗 项目链接
• CLI Anything: https://github.com/HKUDS/CLI-Anything • OpenCLI: https://github.com/jackwener/opencli
夜雨聆风