当“命令行”遇上AI,会发生什么?
最近,一个有点“古老”的词——CLI,又火了起来。对于非技术出身的同学,这个词可能有点陌生,因为它并不是AI带来的新概念,而是计算机世界里一个早就存在的“老伙计”。
CLI就是我们在电脑终端里敲的那些命令行,比如Mac的终端、Windows的Shell,或者Linux系统里那个没有图形界面的操作界面。对于很多程序员来说,CLI是他们的“主战场”,但对普通人而言,它可能意味着黑屏、代码和“电脑坏了”。
那么,CLI是怎么和AI结合到一起的?先从CLI本身说起。
CLI就是敲命令?
简单来说,CLI就是“命令行界面”。它就像一个只接受文字指令的“传令官”,你输入一行命令,它就去执行一个任务。

举个例子,在Windows里,你想复制一个文件到另一个文件夹,通常需要:
打开文件夹,找到文件 右键复制 再打开目标文件夹 右键粘贴
但在CLI里,可能只需要一行命令就能搞定
cp file.txt /path/to/destination/当然,你可能觉得还是鼠标点点更快,那是因为操作习惯不同——对于熟悉CLI的人来说,敲命令的速度可能比鼠标还快。
AI CLI的价值在哪里?
那为什么CLI在AI领域火起来了?答案很简单:AI让CLI变得“能听懂人话”了。
想象一下,在没有AI CLI的时候,你需要完成一个复杂的文件处理任务。
比如,你有一个文件夹 ~/screenshots/,里面有100张截图,你想把所有宽度大于2000像素的图片压缩到1080p,然后重命名。
传统的方式是:
你需要先知道如何用命令行工具(如 identify、convert)来获取图片尺寸和进行转换;然后,你需要手动编写一个包含 for循环、条件判断和命令拼接的脚本;最后,你还要小心翼翼地执行它,生怕一个语法错误导致误操作。
整个过程繁琐、易错,且对非专业开发者极不友好,想想就头疼。
但有了AI CLI,这一切变得截然不同。
你只需要在终端里,用最自然的语言说一句:
“把 `~/screenshots/` 里宽度超过2000像素的图片压缩到1080p,重命名加上 `resized_` 前缀”。AI会自动理解你的意图,在后台生成并执行那一系列复杂的命令行代码。
你完全不需要知道命令的具体语法,也不需要写for循环。
这就像你对电脑说了一句话,电脑就自己把事情办妥了,科幻感拉满。
AI CLI是怎么“干活”的?
听起来很神奇,但AI CLI到底是怎么工作的?
我们以飞书提供的CLI为例,拆解一下它的执行原理。
整个过程可以概括为5步:
你发出自然语言指令; AI识别你的意图,并匹配对应的“技能”; AI规划命令序列; AI调用飞书CLI的命令,一步步执行,并自动处理可能出现的错误; 最终,AI把结果反馈给你。
简单说,就是先理解,再规划,最后执行。
下面,我们来一步步拆解这个“智能代理”是如何运作的。
1. 你发出指令:从“自然语言”开始
比如,你在终端里对AI说:“帮我查一下大家下周的忙闲状态,找个合适时间开个项目会”。
你不需要知道飞书API的任何细节,也不需要构思任何命令行语法,你只需要像跟同事沟通一样,说出你的目标。
2. AI识别意图:匹配“技能说明书”
收到你的指令后,AI(例如Claude Code)首先要理解你想干什么,先对你的要求进行分析
这时,飞书CLI内置的 “AI Agent Skills” 就派上了用场。和我们常规理解的skill一样,这个skill就是写给AI看的“操作手册”或“技能说明书”,里面说明了针对不同业务(如日历、文档、通讯录)应该如何使用CLI命令。
AI会阅读这本手册,识别出你的需求是“安排会议”,那就会匹配到“日历”和“通讯录”相关的Skill。
3. AI规划步骤:拆解任务,编排命令
理解了“要做什么”之后,AI开始规划“具体怎么做”。它会将你的目标,拆解成一系列可执行的小步骤。对于“安排会议”这个任务,AI的规划可能是:
查询参会人ID:需要先知道“大家”具体是谁,这要调用通讯录相关的命令。 查询忙闲状态:拿到ID后,去日历里查询这些人下周的空闲时间段。 创建会议:找到一个共同空闲的时间,创建会议日程。
这个规划过程,就是AI在脑海中将自然语言“翻译”成一套CLI命令调用序列。
4. 执行与纠错:调用“工具箱”,处理意外
规划完毕,AI开始执行。它开始按照规划的路径,依次调用工具箱里的命令。例如,它先执行 lark-cli contact search “张三” 来获取用户ID,再执行 lark-cli calendar freebusy查询 来检查忙闲状态。
CLI命令示例:
# 查询参会人ID(搜索“张三”)IDS=$(lark-cli contact search "张三" | jq -r '.[].open_id' | tr '\n' ',')# 查询忙闲状态(下周一到周五,找14:00空闲)FREE=$(lark-cli calendar freebusy query --users $IDS --start "下周一 09:00" --end "下周五 18:00")# 若14:00空闲则创建会议echo "$FREE" | grep -q "14:00" && lark-cli calendar event create --title "周会" --start "下周一 14:00" --end "下周一 15:00" --attendees $IDS
执行命令时,如果CLI返回“权限不足”的错误,AI不会卡住,而是会主动向你反馈:“需要授权访问,请确认”。等你授权后,它再继续执行。这种针对意外的处理能力,让整个流程真正实现了“全自动化”。
5. 结果反馈:完成任务闭环
AI通过CLI命令调用飞书的HTTP API,在飞书平台上实际创建好会议。之后,CLI会将飞书返回的数据(如会议链接、ID)交给AI。
最终,AI会以一个清晰、友好的方式告诉你,比如:“会议已创建,链接:[查看详情]”。
看到这里,你可能会有疑问:这不就是MCP吗?飞书提供能力给AI调用,只不过换了个名字叫CLI?
AI CLI和MCP,是兄弟还是对手?
确实这两个概念很容易混淆,其实它们在设计哲学和使用场景上有着核心差异。
还是以飞书为例,我们来看下CLI和MCP的区别,CLI更像是一把覆盖广泛的“万能钥匙”,而MCP则是一个专为AI设计的“标准插座”。
| AI CLI (如飞书CLI) | 一把“万能钥匙” | |
| MCP (模型上下文协议) | 一个“标准插座” |
具体来看,飞书CLI的优势在于其灵活性和全覆盖。它内置了19个“AI Agent Skills”,就像给AI一本详细的操作手册,这套“工具箱”包括:像快捷键一样的快捷命令、对应官方API的标准命令、以及能调用全部2500+个API的通用命令。这可以让AI在面对复杂、个性化的需求时,能够自由组装命令,灵活应对。
而飞书MCP则遵循标准化的MCP协议,它的目标是易用性和标准化。AI(如Claude Desktop)可以像发现插件一样,轻松发现并使用它提供的工具,比如搜索文档或查询用户信息,无需关心底层实现。
简单来说,CLI 提供了“如何做”的所有命令,而 MCP 则为 AI 封装好了“做什么”的标准化工具。

MCP 和CLI实际上是可以替代的关系,只不过,在设计哲学上,cli更适合被skill调用,因为他负责的是具体的每一件事情的执行,而skill正好是用来说明应该执行哪些事情的
MCP的设计目标是标准化、可发现、类型安全,适合企业级集成和权限管控。CLI则更灵活、轻量、无需预定义。
所以MCP其实有自己的价值,只不过他太少了,每一项工作都得去封装,但是CLI是天生的执行者,可以把一个mcp干的事情,拆成多个cli,这样由skill自由组装,就可以把工作的执行变的非常的灵活
如果一个公司说他接入了AI CLI,那么他实际上提供了什么
比如飞书宣布“接入了AI CLI”时,它实际上提供的是一种让AI能够在你的工作环境中执行任务的“数字手” 。它将公司产品背后的复杂能力,封装成了AI可以理解和调用的标准化“技能包”。
以飞书为例,它提供的是名为lark-cli的官方开源工具。你可以理解为,飞书为AI提供了一整套“技能树”,具体包括:
🧰 核心能力模块:覆盖高频办公场景
lark-cli的核心是覆盖了飞书11个核心业务领域的能力,通过超过200条结构化命令开放给AI。
| 即时通讯 | |
| 云文档 & 多维表格 | |
| 日历 & 日程 | |
| 邮箱 | |
| 任务 & 知识库 |
AI可以自由组合这些原子化的命令,将“查消息-写文档-约会议-发邮件”这类多步骤流程串联起来,在飞书内部直接跑通。
📚 技能说明书:AI Agent Skills
为了让AI能“读懂”和使用上述200多条命令,飞书提供了19个(npm官方最新数据为22个) 内置的AI Agent Skills。这些Skills就像写给AI的“操作手册”,告诉AI如何调用不同的命令来完成一个目标。
🏗️ 三层命令架构:满足不同复杂度需求
为了平衡易用性和灵活性,飞书CLI设计了独特的三层架构:
快捷命令:以“ +”为前缀,最上层,对人机和AI最友好,适合高频简单操作。例如,lark-cli calendar +agenda可以快速查看今日日程。API命令:中间层,与飞书开放平台API一一对应,提供了更精细的控制,包含100多条精选命令。 通用调用:最底层,通过 lark-cli api <METHOD> <path>命令,可调用飞书全部2500多个开放API,确保能力没有死角。

关注我,从术语到本质,一起翻译AI黑话


夜雨聆风