为什么巨头都在做 CLI(命令行界面)? CLI-Anything+ OpenCLI , 让 AI 操作一切

查看 12|回复 0
作者:TechShrimp   
视频版: https://www.bilibili.com/video/BV1G29EBGE8b/
CLI ,这个计算机世界里面最古老的交互方式,正在迎来一次新的爆发。飞书、钉钉、企微、谷歌、Stripe ,在最近两周内,都不约而同的开源了自己的 CLI 产品。越来越多的软件开始转向 CLI 化。

CLI 全称是 Command Line Interface ,其实就是命令行界面。CLI 跟我们平时熟悉的图形界面(GUI),代表了两种不同的交互逻辑。 如果我想把这个视频的前 5 秒切分出来,使用 GUI 的方式是先导入剪辑软件,找到对应的时间点切分,最后再把视频导出出来。使用 CLI 的方式则是打开命令行窗口,执行这一个命令就搞定了。
ffmpeg -i input.mp4 -t 00:00:5 -c copy part1.mp4
GUI 专门为人类设计,因为人类不擅长记忆命令,而更擅长使用图形工具;而 AI 则正好相反,大模型在诞生的时候就学习过大量代码、命令行等语料数据,因此 CLI 天生就是 AI 的母语。CLI 天然具备文本输入、结构化输出、报错清晰、易于组合、方便自动化等一系列的优势。越来越多的公司、开源社区开始放弃 MCP ,转而拥抱 CLI 。

后半段我们会探讨 MCP 跟 CLI 各自都有哪些优势,他们各自适应的场景是什么。在这股 CLI 热度下面,最近 GitHub 上面出现了两个非常火热的开源项目。第一个是 CLI anything ,只需要一行命令,就能把任意开源软件以 CLI 的形式接入 Agent 框架。

短短两周,GitHub 上面已经有了 2.5 万的 Star 。
还有一个是 OpenCLI ,它能把任何的网站或者 Electron 的桌面应用,转换成能让 AI 调用的命令行工具。

本期视频我们就来深度实测下这两个项目,把各种软件跟网站都转换成 CLI ,并且让 AI Agent 能够自动调用这些 CLI 工具,自动化为我们完成工作。
CLI anything
CLI anything ,它的愿景是让所有的软件都能被 Agent 驱动,一行命令就能把任意的开源软件 CLI 化,并且轻松接入各种 Agent 框架。我们来看一下它的工作原理:当我们执行这个命令的时候,会启动一个 7 个步骤的自动化流程。

首先它分析软件源代码,分析出每个 UI 操作背后的 API 逻辑,然后规划 CLI 命令分组,设计输入输出,接下来进行编码实现,编写测试用例,更新文档并且发布。 我们看到开发者已经对以下 11 款软件进行了测试,都取得了不错的效果。

本期视频我们以开源软件 draw.io 为例进行演示。这是一个画板工具,可以通过拖拽图形的方式来绘制流程图、架构图。

众所周知,Agent 非常不擅长在 UI 上用拖拽的方式来工作。我们可以借助 CLI Anything ,把 draw.io 进行 CLI 化,让 AI 更轻松地进行图形绘制。
使用 CLI Anything 的前提是需要先在电脑上安装 Python ,我们可以来到 Python 的官网,在 download 这里下载安装最新版本的 Python 。

然后我们选择一个自己喜欢的 AI 编程工具,这里我以 Claude Code 为例。

我们先复制这两个命令,执行一下:
/plugin marketplace add HKUDS/CLI-Anything
/plugin install cli-anything
我们重启一下 Claude Code 。接下来我让 Claude Code 把 draw.io 项目源代码克隆到这个目录下面。 接下来我们就可以执行这个最关键的命令了:
/cli-anything:cli-anything ./drawio
后面是我们要 CLI 化的开源项目的源代码路径。 接下来 Claude Code 会为我们执行这个 7 个步骤的复杂流程,我们要做的就是耐心等待。这里时间过去了 46 分钟,AI 完成了所有代码的编写,成功的把这个项目进行了 CLI 化。
我们来看一下 CLI Anything 交付的文件。首先是一个说明文件 README.md ,里面写明了生成的命令行工具是怎么使用的。drawio_SOP.md ,HARNESS.md, TEST.md 三个文件是编写代码时的规范和约束,帮助 AI 更好的来编写代码。

核心功能在 cli_anything 这个文件夹里面,里面存放的是 AI 编写的 Python 代码。
项目原理很简单,当我们运行命令的时候,其实就是运行了这些 Python 代码。Python 代码可以按照 draw.io 的文件标准,来读写 draw.io 的工程文件,这样同一份文件可以被 draw.io 软件和 CLI 两种方式进行读写。

这里我们根据 README 里面列出的使用范例来测试一下。 首先第一步把 AI 编写的 Python 包来安装一下,这里我们在项目目录里面执行一下安装命令。
pip install -e .
安装好以后我们就可以使用下面这些命令行了。

比如第一个命令是创建一个 draw.io 的项目,这里项目文件就被创建出来了。

接下来我们可以创建图形,使用这个命令创建一个基础的矩形,里面的文字是 hello 。

使用这个命令可以列出画布里面的元素。

这个命令可以把画布导出成 SVG ,我们在项目目录就可以看到导出后的 SVG 文件。

这样整个流程就跑通了。
这样我们就把一个需要复杂 UI 操作的软件,变成了一个 AI 可以轻易使用的命令行工具。接下来我们就可以让 AI 借助这些工具来绘制出更加复杂的图形。这里我以 Codex 为例进行演示,我让 AI 借助 CLI 命令画一个快速排序算法的流程图。

Codex 先是执行了--help命令,学会了如何使用这些命令行。

这里体现了 CLI 的一大优势,也就是自解释性。关于 CLI 的知识,Agent 并不需要一次性的学会,Agent 可以随时调用--help去学习每个命令的用法。这个做法跟 Skills 里面渐进式披露提示词的做法是一致的,可以大幅减少 Token 消耗,同时保证调用准确率。

学会了如何使用命令行以后,AI 开始调用这些 CLI 为我们绘制图形。Codex 为我们生成了一个 drawio 格式的源文件,还有一个可以预览的 SVG 格式图片。

我们可以直接在 draw.io 里面打开这个源文件进行编辑跟查看,我们看到效果还是不错的,稍微改动一下就可以直接使用了。

把一个需要在 UI 上操作的软件,变成了对 AI 更友好的命令行工具,AI Agent 就可以借助这些命令行帮我们进行全自动的画图,非常的方便。除了可以使用命令把开源软件从 0 开始进行 CLI 化,CLI Anything 这个项目里面也提供了一些作者已经写好了的 CLI 工具,我们只需要找到对应的目录,比如 OBS 这个,这个 OBS.md 介绍了这个 CLI 是怎么使用的,直接把这个文件夹下载下来,AI 就可以使用命令行来操作 OBS 了。

OpenCLI
我们来看下一个开源软件 OpenCLI ,它可以把任意的网站或者 Electron 应用变成命令行工具。我们看到作者已经把它接入了非常多的网站还有应用,我们直接拿过来用就行了。

这里我们把他安装并且试用一下。第一步首先需要先在电脑上安装 nodejs ,没有的话可以来到 nodejs 的官网下载并且安装。

第二步我们需要先安装一个插件,点击这个链接,在项目的 releases 里面我们可以找到这个插件。

然后我们打开 Chrome 浏览器,在右上角的设置里面找到管理扩展程序,

打开开发者模式,

我们把刚才下载的插件直接拖拽进来。

插件安装好以后,我们使用 npm 命令来安装 OpenCLI 。这里打开一个命令行窗口,把 OpenCLI 的安装命令粘贴过来,回车这样就安装完成了。
npm install -g @jackwener/opencli

我们来测试一下,比如我们可以执行 opencli hackernews top --limit 5 查询 hacker news 上面前 5 个热门话题,这里给出了结果就运行成功了。

我们也可以输入这个命令 opencli grok ask,询问它一个问题。我们看到 OpenCLI 会自动操作我的 Chrome 浏览器,打开 Grok 的官网,然后来询问它这个问题,拿到结果以后,它可以把结果展示到控制台里面。

我们再看一个例子,可以使用 OpenCLI 去 boss 上面搜索职位。我们先使用opencli boss search --help看一下它支持哪些参数,这里有城市、经验、学历等等。

比如我搜索一个青岛的软件开发岗位,我们看到它在后台自动调用了 Chrome 浏览器,为我们找到了软件开发的相关岗位。

在后面追加 -f json,让它把数据以 json 的格式返回回来。

OpenCLI 支持下面几十种网站还有工具,这里我就不一一介绍了。

除了可以使用这些作者已经编写好的命令行工具,也可以基于这个项目进行二次开发,把自己需要的工具加入进来。
接下来我们使用 AI 编程工具对这个项目进行一个二次开发。第一步我们先把项目的源代码克隆下来。
https://github.com/jackwener/opencli.git
cd ./opencli
codex
这里来到项目目录,打开我们的 AI 编程工具,这里我使用的还是 Codex 。

我让 AI 创建一个全新的命令,把这个网站上面所有的博客列表输出出来。

Codex 通读了整个项目结构,学会到了如何创建新的命令。Codex 为我们完成了开发,我们按照它的提示把它安装一下。

执行以下三个命令
npm install
npm run build
npm link
这样我们就可以直接使用新创建的命令行了。我输入 opencli node blog 就获取到了 nodejs 这个网站上面所有的博客信息。

这样我们在 AI 的帮助下面,开发了一个全新的 OpenCLI 命令。如果我们想要全新的命令来自动化操作网站,就可以使用这个方法让 AI 帮我们开发。
官方 CLI 工具
除了使用 CLI Anything 和 OpenCLI 把一些开源软件 CLI 化,很多大型软件都提供了自己的官方 CLI 服务。我们就以 GitHub 的官方 CLI 为例。我们先来到它的官网,点击 DOWNLOAD 按钮,把 GitHub 官方 CLI 安装一下。

安装完成以后,打开命令行窗口,输入gh也就是 GitHub 的缩写,然后--help,查看一下有哪些命令可以使用。 一般我们使用 CLI 工具,第一步就是先登录,这里我们输入命令gh auth login。

这里会提供给我们一个校验码,我们来到这个网址,填上校验码就登录完成了。

然后我们可以使用这个命令,查看一下 Openclaw 上面的 issue 列表。

或者使用这个命令给我自己创建一个新的仓库。我们看到这里仓库就创建出来了。

更多命令的使用方法可以参考 GitHub 官方 CLI 的文档。后续我们的视频里面还会介绍更多好用的官方 CLI 工具。
MCP 与 CLI 的对比
MCP 全称是模型上下文协议,简单来说 MCP 就是 AI 大模型的标准化工具箱,大模型可以利用这些工具与外界互动,获取信息并且完成具体任务。不过由于 MCP 协议设计之初存在的一些问题,越来越多的公司、开源社区开始放弃 MCP ,转而拥抱 CLI 。比如 AI 搜索巨头 Perplexity ,在 2026 年 3 月宣布放弃 MCP ,全面转向 CLI 化。还有现象级的开源产品 OpenClaw ,从一开始就拒绝支持 MCP 。在 26 年 3 月,开发者社区掀起了一个讨论热潮,主题就是“MCP 已死,CLI 永生”。

我认为 MCP 对比 CLI 主要有以下几个劣势。
首先 MCP 上下文占用较高。MCP 需要将所有的工具名字、参数格式还有调用示例全部注入上下文,每新增一个 MCP 工具都要占用大量的 Token 开销。而 CLI 则可以让 AI 自己学习用法,使用渐进式披露的方式来减少 Token 消耗。ScaleKit 做过一组测试,使用 GitHub 的官方 MCP 与官方 CLI 进行对比,在所有任务上面,CLI 的 Token 消耗都成倍的小于 MCP 。

第二点,MCP 更像是一个 Agent 的专用协议,而 CLI 是一个同时对 Agent 跟人类友好的工具。

我们还是来看刚才那个 GitHub 的例子,比如我让 Agent 用 GitHub CLI 创建一个分支,如果报错了。在这个场景下面,我只需要把命令复制一下,开一个命令行窗口运行一下,就能立即复现出错误原因,而且我还可以协助 AI 进行修复。

而 MCP 对人类来说更像是一个黑盒,整个运行过程都是在 Agent 内部的,如果运行出错,很难在本地复现问题,调试的难度大大增加。
第三点是 CLI 天生支持管道符操作,可以将多个命令组装成流水线,轻松实现复杂任务,这种组合能力是 MCP 不具备的。

我们来看一个例子,我们先使用 GitHub CLI 获取 OpenClaw 的 issue 列表,这个竖线是管道符,意思是把上个命令的输出结果作为下个命令的输入,可以像拼接管道一样把命令组合起来,形成一条流水线。通过管道符,我们可以先把数据转换成一个 Powershell 对象,在每条数据里面筛选出包含 bug 这个字符串的,再根据时间进行排序,最后导出成一个 CSV 文件。这样我们就通过管道符串联了流水线,一条命令就能轻松实现复杂需求。


如果我们使用 MCP 处理这种任务,就需要非常多步骤的反复调用工具,大大增加了 Token 消耗跟时间开销。
当然 MCP 也有自己的独特优势,比如在多租户还有严格权限控制的场景下面,MCP 就好于 CLI 。比如国内有的 AI Agent 云平台,允许用户上传自定义的 Python 或者 node 格式的 MCP 包,在云端使用。MCP 有标准化的安装包,有统一的鉴权规范,是实现这个功能的前提。而 CLI 没有标准化的安装包,也没有统一的鉴权标准,所以想实现类似的功能就非常的困难。

我觉得目前说 CLI 可以完全取代 MCP 还为时尚早,而且两者之间也在互相学习进化。比如 Claude Code 和 Codex 最近都上线了 tool search 功能,不再给 AI 全量注入 MCP 的 schema ,而是按需加载 MCP ,把 Skills 跟 CLI 渐进式披露提示词的思路引入了 MCP 。

第二个例子是龙虾之父开发的开源软件 MCPorter ,它可以把任意的 MCP 转换成 CLI 的格式,提供给 agent 调用。

相信以后技术发展的趋势是,每个技术框架可以互相学习优点,它们之间的功能都会互相的融合。这就是本期视频的全部内容,感谢大家点赞支持,我们下期再见。
您需要登录后才可以回帖 登录 | 立即注册

返回顶部