CLI 怎么就成了 AI Agent 时代的新宠?从 OpenCLI 到飞书 CLI,一场静悄悄的革命

大家好,我是飞飞。
上个月我刷 GitHub Trending 的时候,发现一件奇怪的事——排行榜前十里,有三个项目都跟 CLI 有关。不是什么花哨的 GUI 应用,不是什么炫酷的前端框架,就是最朴素的命令行工具。
OpenCLI、CLI-Anything、飞书 CLI,三个项目加起来 star 数几万,而且还在疯涨。
我当时的第一反应是:2026 年了,命令行工具怎么突然又火了?
后来我想明白了。不是 CLI 复活了,是 AI Agent 需要它。
GUI 是给人用的,CLI 是给 Agent 用的
我们先想一个问题:你让 AI 帮你在飞书上发一条消息,它该怎么操作?
如果走 GUI 路线,AI 需要打开浏览器,找到飞书页面,定位输入框,模拟键盘输入,点击发送按钮。中间任何一个步骤出错——按钮位置变了、页面加载慢了、弹了个验证码——整个流程就崩了。
如果走 CLI 路线呢?一行命令:
1 | lark-cli im +messages-send --chat-id "oc_xxx" --text "Hello" |
结束。没有页面加载,没有按钮定位,没有验证码。输入是确定的,输出是结构化的,每次执行结果一模一样。
这就是 CLI 在 AI Agent 时代重新火起来的根本原因:GUI 是为人类的眼睛和手指设计的,CLI 是为程序的输入和输出设计的。 AI Agent 本质上就是程序,它天然更适合 CLI。
The New Stack 在去年底写了一篇文章,标题就叫《Welcome to the Agentic CLI Era》。文章里有句话说得很精准——CLI 是结构化的、可组合的、轻量的、自描述的、确定性的。这五个特点,恰好是 AI Agent 最需要的。
三个项目,三种思路
最近这波 CLI 热潮里,有三个项目特别有意思,它们从完全不同的角度切入,解决的是同一个问题:让 AI Agent 能操作一切。
OpenCLI:把任何网站变成命令行
OpenCLI 是一个叫 jackwener 的开发者做的,思路很野——它能把任何网站变成 CLI 命令。
B 站、知乎、小红书、Twitter、Reddit、YouTube,55 个平台,全部可以用命令行操作。而且它复用你 Chrome 浏览器的登录状态,不需要任何 API Key。
1 | opencli bilibili hot --limit 5 # 看B站热门 |
我装上之后第一件事是跑了 opencli bilibili hot,终端里刷刷刷打出一排热门视频标题。那个感觉很奇妙——我平时要打开浏览器、等页面加载、划过一堆广告才能看到的东西,一行命令就出来了。而且跑一万次,不消耗一个 token。因为它不是用 AI 去”看”网页,而是直接通过浏览器的 CDP 协议和网络拦截来提取数据。
更离谱的是它能控制桌面应用。我试了一下 opencli cursor status,直接在终端里看到了 Cursor 编辑器的状态信息。Notion、Discord、甚至 ChatGPT 桌面版,全能操作。你想想这个场景——你在 Claude Code 里写代码,Claude 通过 OpenCLI 操作 ChatGPT 帮你跑测试。AI 操作 AI,套娃了。
CLI-Anything:一行命令,把任何软件变成 Agent 工具
CLI-Anything 来自香港大学数据智能实验室(HKUDS),Chao Huang 教授的团队做的。这个项目 3 月 8 号上线,6 天拿了 13000 个 star,现在已经超过 21000 了。
它的思路跟 OpenCLI 不同。OpenCLI 是把网站变成 CLI,CLI-Anything 是把任何软件的源代码变成 CLI。
你把 GIMP 的源码扔给它,它通过一个 7 阶段的自动化流水线——分析源码、设计命令结构、实现 CLI、规划测试、编写测试、生成文档、发布安装——直接帮你生成一个完整的命令行工具。
1 | # 用 CLI-Anything 让 AI 操作 GIMP |
GIMP、Blender、LibreOffice、OBS Studio、Audacity,甚至 FreeCAD,全都可以这样被 AI 控制。
它的口号写得很到位:**”Today’s software serves humans. Tomorrow’s users will be agents.”**
今天的软件是给人用的,明天的用户是 Agent。你仔细想想这句话,会觉得有点后背发凉。
飞书 CLI:官方下场,把办公套件交给 Agent
3 月 28 号,飞书官方开源了 lark-cli。这个项目跟前两个不一样——它不是社区开发者做的,而是字节跳动飞书团队亲自做的。
200 多个命令,覆盖 11 个业务域:消息、文档、多维表格、电子表格、日历、邮箱、任务、会议、知识库、通讯录、云空间。19 个开箱即用的 AI Agent Skills。
1 | lark-cli calendar +agenda # 查今天的日程 |
飞书团队做了一个很聪明的设计:三层命令架构。最上面是快捷命令(Shortcuts),人和 AI 都好用;中间是 API 命令,跟平台接口一一对应;最下面是原始 API 调用,覆盖飞书 2500 多个接口。不管你是人类用户还是 AI Agent,都能找到合适的调用粒度。
我试了一下 lark-cli calendar +agenda,直接在终端里看到了今天的日程。然后跟 Claude Code 说”帮我看看今天下午有没有空”,Claude 自己调了这个命令,读了输出,告诉我”下午 3 点到 5 点有空”。整个过程我没碰飞书 App,没开浏览器,就在终端里完成了。
这就是飞书的野心:它不想只做人和人之间的协作工具,它要做人和 Agent 之间的协作基础设施。 从 OpenClaw 插件到智能体平台 aily,再到 Lark CLI,飞书的三层布局已经很清楚了——开发者用 CLI,普通员工用 aily,每一类用户都有入口,但底层调用的是同一套能力。
为什么是 CLI,不是 API?
你可能会问:AI Agent 要调用服务,直接调 API 不就行了?为什么还要包一层 CLI?
这个问题我一开始也想不明白。后来用了一段时间才理解。
API 是给程序员写代码调用的。你要写 HTTP 请求,处理认证,解析返回值,处理错误码。这些事对人来说很自然,但对 AI Agent 来说,每多一个步骤就多一个出错的可能。
CLI 不一样。AI Agent 跑一个 shell 命令,就像你在终端里敲一行字一样简单。--help 自动生成文档,AI 可以自己发现有什么命令可用。输出是结构化的 JSON,直接解析。出错了,错误信息就在 stderr 里。
说白了,CLI 就是一个”给 AI 用的万能遥控器”。按钮少,功能明确,按下去就有确定的反应。API 像是把遥控器拆开露出电路板——能做的事更多,但对 AI 来说操作门槛也更高。
你看现在最火的 AI 开发工具:Claude Code、OpenAI Codex、Google Antigravity、Grok CLI——名字里全带着 CLI。这不是巧合,而是这帮做 AI 的人最清楚:让 AI 干活,命令行就是最短路径。
一场悄悄开始的”军备竞赛”
飞书出了 CLI,钉钉马上跟进,企业微信也在做。你会发现,国内三大办公平台几乎同时意识到了一件事:如果你的产品不能被 AI Agent 操作,你就会被跳过。
这跟十年前的场景很像。2014 年前后,所有公司都在抢着做 App。没有 App 的公司,用户找不到你。现在的情况是,没有 CLI 的产品,Agent 调不了你。用户跟 AI 说”帮我查一下今天的日程”,AI 发现飞书有 CLI 可以直接调,钉钉没有——那它就只用飞书。用户甚至不知道自己做了选择,AI 替他选了。
这件事更深层的影响是:软件设计的目标用户变了。以前我们做产品,想的是人——界面要好看、交互要直觉、点击次数要少。现在多了一个用户:Agent。它不看界面,不点按钮,只认命令和结构化输出。这意味着以后做产品,你不光要考虑”人怎么用”,还要考虑”Agent 怎么调”。
CLI 从来不是普通人需要碰的东西。但现在,它变成了 AI 的操作界面,退到了后台,重要性反而更高了。你跟 AI 说一句话,AI 在后台敲十行命令帮你搞定。你感受到的是”AI 好聪明”,但背后撑着的,是一个个 CLI 工具。
写在最后
说个有意思的事。我这篇文章就是在 Claude Code 里写的。写的过程中,Claude 帮我用 brave-search 搜资料,用 fetch 抓网页内容,用工具生成封面图片,最后用 Write 命令把文件写到 Hexo 的 _posts 目录。
这些操作,全是 CLI。
我一行图形界面都没碰。整个写作流程,从搜索到发布,都在一个黑底白字的终端窗口里完成了。半年前我还觉得这不可能,现在已经变成了日常。
图形界面不会消失,它依然是人类最直觉的交互方式。但在 AI Agent 越来越深入工作流的今天,CLI 正在成为那个”看不见但不可或缺”的基础层。人用 GUI,Agent 用 CLI,各干各的,互不打扰。
你有没有在工作中用 AI Agent 通过 CLI 操作过什么工具?体验怎么样?评论区聊聊。