CLI 是什么?为什么大厂突然集体卷命令行?
大家好我是程序员鱼皮。最近不知道大家有没有注意到互联网大厂的风向又变了。Google 率先开源了 Workspace CLI紧接着短短一周之内飞书、钉钉、企业微信不约而同地在 GitHub 上开源了自己的 CLI 工具。一时间CLI 这个计算机世界里最古老的交互方式突然又火了。奇了怪了CLI 不就是黑不拉几的命令行窗口吗都什么年代了各大厂不去卷更漂亮的界面反而集体开起了倒车这篇文章我会依次分享什么是 CLI怎么用 CLI为什么大厂都在卷 CLI有哪些 CLI 开源项目怎么自己做个 CLI一次性把 CLI 给你讲明白建议收藏~什么是 CLICLI 全称 Command Line Interface翻译过来就是命令行界面。说白了就是你在一个小黑框里敲文字命令来操作电脑。和它对应的是我们每天都在用的 GUIGraphical User Interface也就是图形界面。你平时在手机上看到的那些图标、在电脑上看到的那些窗口和按钮这些都是 GUI。举个例子假设你想把电脑桌面上的一张图片移动到另一个文件夹。用 GUI 的话你会打开文件管理器找到图片用鼠标拖过去放进目标文件夹。使用 CLI 的话你打开终端敲一行命令就搞定了mv~/yupidog.png ~/Downloads再比如切视频、批量改文件名、查服务器日志这些用 GUI 要点好多步的操作CLI 往往一行命令就搞定了。显然CLI 的特点就是简洁直接一条命令干一件事干净利落。但是如果想用好 CLI要求你记住大量命令和参数这对普通用户来说门槛太高了。想象一下我那只会用电脑玩斗地主和捕鱼的爸妈让他们打开终端敲命令玩呢其实 CLI 是计算机最原始的交互方式。在很久以前电脑压根儿就没有图形界面所有操作全靠命令行完成。后来 GUI 出现了普通用户才终于告别了小黑框。从那以后GUI 一路高歌猛进成了绝对的主流。厂商们想方设法把界面做得更好看、更好用按钮越做越大交互越做越顺滑一切都是为了让人类用起来更舒服。但 CLI 从来没有消失很多程序员朋友们都在用命令行管理服务器、部署项目。而且有些学编程的朋友写的第一行代码 Hello World可能就是在命令行里跑起来的。长期以来CLI 一直是程序员的专属技能甚至熟不熟悉命令行是区分老手和新手的标志之一。不过现在 AI 时代来了技术越来越大众化CLI 正在重新站到聚光灯下。上手试试 CLI使用 CLI 最简单的方式就是打开你电脑自带的终端。Mac 用户在应用程序里找到 “终端”Windows 用户搜索 “PowerShell” 或者 “命令提示符”打开之后你会看到一个等待输入的光标。试着敲一行date电脑会直接返回当前的日期和时间。这就是最简单的 CLI 交互了你输入一条命令电脑返回一个结果没有花里胡哨的界面。但这只是最基础的用法现代 CLI 能做的事情远远不止这些。比如最近飞书刚开源的 Lark CLI这个工具可以让你在终端里直接操作飞书的消息、日历、文档等功能。首先输入一行命令安装npminstall-glarksuite/cli装好之后先配置一下应用信息lark-cli config init--new打开链接配置飞书 CLI 应用创建应用成功后需要登录授权按需选择你允许通过 CLI 操作的业务lark-cli auth login跟着 CLI 的引导一步步操作就好授权过程中记得要在飞书管理后台审核应用审核应用通过后可以再重新执行登录命令直到你看到「授权成功」之后你就可以用命令行来操作飞书了。比如查看今天的日程安排lark-cli calendar agenda查看我的待办任务lark-cli task get-my-tasks甚至直接创建一篇文档lark-cli docs create--title周报--markdown# 本周进展以前这些操作你要打开飞书 App点好几下才能完成现在一行命令就搞定了。CLI 有这么多命令和参数使用过程中如果忘了某个命令怎么用怎么办呢只需要记住一个万能口诀不会就加--help。比如lark-cli--helplark-cli calendar--help相当于随时翻说明书CLI 会把所有可用的命令和参数列出来给你看。对了如果你觉得传统的终端使用起来不方便可以试试 Warp 这种现代终端工具内置了 AI 辅助和命令自动补全对新手友好很多。为什么大厂都在卷 CLI前面我们体验了用 CLI 操作飞书对程序员来说用习惯了确实还挺方便的。但你有没有想过一个问题大厂们费这么大劲把产品做成 CLI难道只是为了让我们少点几下鼠标吗为什么大厂都在卷 CLI答案就 2 个字AI。大厂们不是在给人类做 CLI而是在给 AI 做 CLI。AI 大模型从诞生那天起就在学习海量的代码、命令行操作、终端输出。可以说CLI 就是 AI 的母语让它读一行命令、执行一个操作跟喝水一样自然。反过来你让 AI 去操作一个图形界面那可就难了。还是拿飞书举例。假设你想让 AI 帮你搜一下最近同事提到过的 “周报” 相关消息。假设使用飞书的网页版AI 需要先打开浏览器等页面加载完找到搜索框输入 “周报”等结果出来再一条条翻看消息内容。中间要处理一堆网页元素导致上下文信息又长又杂有很多和内容无关的干扰信息。而且万一网页改版了AI 之前学到的操作方式可能就全废了。但是飞书提供了 CLI 后AI 只需要执行一行命令就能完成任务lark-cli im messages-search--query周报有人做过测试让 AI 通过浏览器完成真实任务成功率只有 35.8%换成 CLI 来完成同样的任务成功率接近 100%所以你会看到一个很有意思的现象。以前大厂做产品想方设法把 UI 做得好看好用给人类使用。现在是返璞归真面向 AI 做产品给 AI 使用越简单直接越好。谁先把自己的产品 CLI 化谁就能先被 AI Agent 接入谁就能在 AI 时代继续保持竞争力。国外科技博主 Shawn Yeager 甚至写了一篇文章叫《CLI is the new API》引起了很大反响。意思是以前产品之间的互通靠 API现在 AI 时代产品和 AI 之间的互通靠 CLI。说到 API你可能会有个疑问API 接口不也是给程序调用的吗为什么还需要 CLI 呢答案很简单API 虽然也是程序接口但调用它需要编写代码。而 CLI 就是一行命令的事AI 大模型在训练过程中学习了大量命令行语料理解和生成命令对它来说驾轻就熟再加上 AI 编程工具可以很方便地执行终端命令所以 CLI 对 AI 来说几乎是零门槛。而且 CLI 自带--help说明书AI 用到哪个命令就查一下用法不需要你提前把整本 API 文档都塞给它能节省 Token 消耗。你可能又问了之前很火的 MCP 不也是连接 AI 和工具的协议吗为什么还需要 CLIMCP 协议要求把所有工具的名称和参数格式全部注入到 AI 的上下文里工具一多 Token 消耗就很夸张。ScaleKit 做过一组基准测试同样的任务MCP 的 Token 消耗可能是 CLI 的几十倍而且 MCP 的运行过程对人类来说就像个黑盒出了问题很难排查CLI 就不一样了如果出错了就直接把命令复制到终端里跑一遍报错信息一目了然。知名 AI 搜索引擎 Perplexity 的 CTO 公开宣布放弃 MCP 转向 CLI可见这个趋势已经很明显了。当然这不是说 MCP 就过时了在需要统一权限管控的企业场景下MCP 的标准化鉴权规范依然很有价值。而且 Cursor 最近就上线了按需加载 MCP 的功能不再一股脑把所有工具定义塞进上下文而是等 AI 需要用到某个工具时再加载。CLI 开源项目既然 CLI 这么火GItHub 上必然少不了和 CLI 相关的开源项目。目前飞书、钉钉、企业微信、Google 等大厂的 CLI 基本都覆盖了消息、日历、文档、通讯录等核心业务而且都内置了 AI Agent Skills可以直接被 Claude Code、Cursor 等 AI 工具调用。除了大厂官方出品社区里也涌现了很多有意思的项目。比如 OpenCLI 能把任意网站、Electron 应用、甚至本地工具统统变成命令行接口。开源指路https://github.com/jackwener/opencli如果你想让 AI 帮你查 B 站热门、知乎热榜装上 OpenCLI 后输入一行命令就搞定了。它内置了几十个适配器覆盖了 B 站、知乎、Twitter、Reddit 等一大堆平台就像给 AI 装了一个万能遥控器。还有 CLI-Anything它能自动分析一个开源软件的源码找出每个功能背后的 API 逻辑然后自动生成对应的 CLI 命令。开源指路https://github.com/HKUDS/CLI-Anything怎么自己做一个 CLI如果你有自己的产品或工具其实可以做个 CLI让用户通过 AI 更方便地使用。开发 CLI 的技术方案有很多。之前我在 编程导航 带大家做代码生成器项目的时候就用过 Java 的 Picocli 框架来开发命令行交互。我还做过极客范浏览器主页的 Web 端 CLI直接在网页里自主实现了命令行界面。对这些方案感兴趣的同学可以去看我之前的教程。但下面我要重点介绍一个最近发现的宝藏技术叫Ink。这还得感谢前段时间 Claude Code 的源码意外泄露我扒了一下发现它是通过一个叫 Ink 的库来开发的。简单来说我们平时用 React 写网页React 会把组件渲染成浏览器里的页面。而 React Ink 做的事情是把同样的 React 组件渲染成终端界面。这个库在 GitHub 上已经有几万 StarGatsby CLI、Prisma CLI 等知名项目都在用非常成熟。开源指路https://github.com/vadimdemedes/ink举个例子比如编写下面这段代码就能渲染出一个简易的终端会显示一个每秒自动加 1 的计数器。了解了 React Ink 之后我们用它来做一个 CLI 试试。以我的 编程导航 为例这是一个程序员学习交流社区。做成 CLI 工具之后用户就可以直接在终端里搜索编程教程、查看热门内容也方便 AI Agent 调用。我先为这个 CLI 开发 2 个核心功能搜索编程导航的内容和查看热榜。整个开发过程其实就跟写网页差不多简单的 CLI 工具直接让 AI 一把梭就行。这里我就用 AI 来开发这个 CLI先编写给 AI 的提示词帮我用 React Ink 开发一个名为 codefather-cli 的命令行工具实现以下功能 1codefather search 关键词 获取编程导航搜索结果 https://www.codefather.cn/search/all?searchText关键词 在终端中展示搜索结果列表包括标题、作者、点赞数 2codefather hot 获取编程导航热榜 https://www.codefather.cn/hot/all_hot 在终端中展示热榜 TOP20包括排名、标题、作者、热度 要求支持 --help 查看帮助信息把这段提示词丢给 Claude Code 或者 Cursor 等 AI 编程工具AI 就能帮你生成完整的项目代码。最终运行效果大概长这样还不错吧~可以试试让 AI 使用这个工具AI 通过--help就能快速了解这个工具怎么用准确地给出了回答嘎嘎快这就是 CLI 的魅力对人类来说是一个好用的效率工具对 AI 来说更是一个天然的操作接口。最后哔哔CLI 的回归不是技术的倒退恰恰说明产品设计的思路在进化。以前做个产品只需要考虑人类用户怎么用现在还得想想 AI 怎么用。未来的产品可能会有两套前端一套给人类看的 GUI一套给 AI 用的 CLI殊途同归。建议正在使用 AI 工具的朋友们多关注一下 CLI 的生态。不管是用 CLI 工具提升自己的效率还是给自己的产品做一个 CLI 让 AI 能调用都很有价值。我是鱼皮持续分享 AI 编程干货这篇文章也会收录到我免费开源的 《AI 编程零基础入门教程》GitHub Star 数已经破万从零开始带你学会用 AI 开发上线自己的产品。开源仓库https://github.com/liyupi/ai-guide学会的话欢迎点赞收藏关注哦也欢迎评论区聊聊你用过哪些 CLI对 CLI 有什么看法