如果你最近关注 AI 和开发者工具,可能注意到了两个正在快速崛起的项目:CLI-Anything和OpenCLI。它们在做同一件看似"反人类"的事情——把图形界面变成命令行。
但这件事的背后,藏着一个深刻的趋势:GUI 是人类的语言,CLI 是机器的语言。当 Agent 时代来临,软件世界正在被重新"插上插头"。
🎯 两条路线,一个目标
CLI-Anything 和 OpenCLI 选择了不同的技术路径,但最终指向同一个方向。
CLI-Anything:从源码出发
它的思路像是一位逆向工程师——扫描软件的源代码,把 GUI 操作映射到底层 API,然后用 Python Click 框架自动生成 CLI。GIMP、Blender、Audacity、LibreOffice 这些开源桌面软件,它都能包一层。
OpenCLI:从浏览器出发
它更像是一位老练的用户——不拆机器,但知道每个按钮按下去会发生什么。通过 Chrome 扩展 + 本地 Daemon 的架构,直接操作网站和 Electron 应用。
🔧 OpenCLI 的架构巧思
OpenCLI 的工作链路设计得相当克制且巧妙:
CLI 命令 → 本地 Daemon → WebSocket → Chrome 扩展 → 网页操作你在终端敲opencli bilibili hot,Daemon 就把指令通过 WebSocket 发给 Chrome 扩展,扩展在浏览器里执行操作,把结果格式化输出到终端。
最关键的设计:它复用你 Chrome 里已经登录的 session。你在 B 站登录了,OpenCLI 就能用你的账号获取数据,不需要单独配置 Cookie 或 API Key。
Daemon 空闲 5 分钟自动退出,默认监听 localhost:19825,不会常驻后台吃资源。
🧠 为 AI Agent 设计的三个命令
OpenCLI 最值得关注的,是它为 AI Agent 专门设计的三个命令:
explore:给一个 URL,自动发现网站有哪些 API 可以调用。它会真的打开浏览器,点击、滚动、观察网络请求。
synthesize:拿到 explore 的结果后,自动生成对应的 CLI 适配器,不用写一行代码。
cascade:自动探测认证策略,从公开 API 开始试,逐级升级到 Cookie 认证、签名提取……一共五个级别。
# 一条命令搞定:探索 + 生成适配器 + 注册 opencli generate https://example.com --goal "hot"这意味着:AI Agent 拿到一个从未见过的网站,也能自己摸索出怎么用命令行操控它。
📦 已支持的生态
目前 OpenCLI 已内置80+ 命令,覆盖30+ 站点和应用:
网站类
B 站:热门、搜索、字幕提取
知乎:热榜、搜索
小红书:笔记下载
Twitter/X:时间线、书签
Reddit:热帖
YouTube:视频信息
雪球:股票数据
BOSS 直聘:职位搜索
Electron 应用类
Cursor IDE
Notion
Discord
飞书
微信
网易云音乐
# 示例用法 opencli bilibili hot -f json | jq '.[]' opencli zhihu hot -f yaml opencli twitter bookmarks -f md⚡ Electron 的突破
OpenCLI 最近支持了所有 Electron 应用的 CLI 化,这件事的意义不容小觑。
飞书、VS Code、Slack、Discord、Notion、Figma 桌面版……几乎你能叫得出名字的现代桌面应用,有一大半跑的都是 Chromium 内核。
OpenCLI 利用 Chrome DevTools Protocol (CDP) 直接和这些应用的内核通信,每个应用分配一个固定端口(Cursor 用 9222,ChatGPT 用 9224,Notion 用 9230),然后通过 DOM 操作来读取和注入内容。
.value(那样框架内部状态不会更新),而是用document.execCommand('insertText')来模拟真实的文本输入,绕过了框架的状态管理。结果就是:Agent 可以直接在 Cursor 里写代码、在 Notion 里写文档、在 Discord 里发消息,全程命令行操作。
🌐 万物皆可 CLI
Karpathy 说过,让用户去网页上点按钮、填表单,"感觉挺粗鲁的"。Levie 也说,如果你的功能没有 API,那它等于不存在。
CLI-Anything 说:我来给桌面软件加上 CLI。
OpenCLI 说:我来给网站和 Electron 应用也加上。
这件事正在加速。CLI-Anything 在 GitHub 上已经 15000+ 颗星,OpenCLI 也在短短几天内涨到了 2300+ 颗星。
⚠️ 权限的双刃剑
这既是优点(零配置,即开即用),也是风险(如果 Agent 判断出错,它用你的账号操作的一切后果都由你承担)。
CLI-Anything 解决的是 Agent"能不能干"的问题,OpenCLI 则把这个能力的范围扩大了十倍。
🎯 为什么 CLI 是 Agent 的母语?
因为 CLI 的特性,天然就是为 Agent 设计的:
✅ 文本输入
✅ 结构化输出
✅ 可组合
✅ 可发现(
--help)✅ 确定性强,没有歧义
💭 写在最后
GUI 是人类的语言,CLI 是机器的语言。
过去 40 年,我们一直在做翻译——把机器语言翻译成人类能理解的图形界面。现在 Agent 来了,它不需要翻译,它直接说机器的语言就好。
整个软件世界,正在被重新"插上插头"。而 Agent,终于可以自己动手了。
🔗 相关链接
OpenCLI GitHub:https://github.com/jackwener/opencli
CLI-Anything GitHub:https://github.com/HKUDS/CLI-Anything
OpenCLI 中文介绍:https://www.80aj.com/2026/03/18/opencli-ai-control/
夜雨聆风