先说结论
如果你最近在关注 AI 编程圈,应该已经感受到一个非常反直觉的趋势:
一边,过去几十年软件世界都在努力把一切做成 GUI——按钮更大、交互更顺、拖拽更丝滑; 另一边,到了 AI Agent 时代,越来越多最猛的产品却在往 Terminal 里扎。
Claude Code 火了,OpenAI 把 Codex CLI 推到了台前,Google 也把 Gemini CLI 做成了开源 AI Agent。表面看,这是“黑框回潮”;本质上,这是 交互对象变了。
GUI 是给人类用的。CLI,才是给 AI 用的。
更进一步说,很多人把未来想象成“所有工具都要先接成 MCP,Agent 才能工作”。但真实世界正在出现另一条更猛、更轻、更实用的路线:
Skill 负责教 AI 怎么做事,CLI 负责让 AI 把事做成。
这套组合,在大量高频任务里,正在成为比 MCP 更直接、更便宜、更稳定的默认解。
这篇文章,就想把这件事彻底讲清楚。
一、为什么要从 Claude Code 讲起?
Claude Code 之所以有意思,不是因为它“能在终端里聊天”,而是因为它把一个很重要的信号摆到了台面上:
AI 不再只是回答问题,它开始直接在你的工作环境里行动。
你站在项目根目录,敲一行需求。它能读代码库、改文件、跑命令、修测试、做 Git 操作、串联工作流。你会突然发现,自己面对的已经不是一个传统意义上的“聊天机器人”,而是一个真正的 终端工作代理。
这就是分水岭。
过去我们谈 AI 工具,更多是在说:
- 你问,它答;
- 你复制,它生成;
- 你手动执行,它提供建议。
而 Claude Code 这类产品,把 AI 往前推了一步:
- 它不只会说;
- 它开始会做;
- 而且它做事的主战场,不是在 GUI 里,而是在 CLI 里。
这不是设计师突然审美倒退,也不是工程师怀旧。
这是因为:Terminal 对 AI 来说,比 GUI 友好太多了。
二、从 Terminal 到 GUI:人类为什么会离开黑框?
要理解 AI 为什么会回到 CLI,先要理解人类为什么曾经拼命离开 CLI。
早期计算机世界,Terminal 几乎就是全部。
你想打开文件,要记命令; 你想复制文件,要记参数; 你想查系统状态,要记路径; 你想连远程机器,要记 host、port、证书、权限。
那时的计算机像一头脾气古怪的野兽:你必须用正确咒语召唤它,它才肯动。
这对工程师很酷,但对普通人极不友好。
于是 GUI 诞生了。
图形界面做成了几件极其伟大的事:
1. 它把“记忆负担”变成了“视觉识别”
你不需要背 cp -r source target,你只要看到“复制”按钮。
你不需要记住复杂路径,你只要点开一个文件夹图标。
对人类来说,看见 比 记住 轻松得多。GUI 本质上是把一大堆抽象命令,变成了可以被眼睛直接理解的物体。
2. 它把“命令式操作”变成了“直接操作”
CLI 的逻辑是:告诉机器你要做什么。 GUI 的逻辑是:直接去碰那个东西。
你拖动文件,就是移动; 你点垃圾桶,就是删除; 你调整滑块,就是调参数。
这种“所见即所得”的体验,对人类非常自然。因为人类本来就是在物理世界里这么干活的。
3. 它降低了软件使用门槛
GUI 让不会写命令的人也能使用复杂系统。
Office、Photoshop、浏览器、电商后台、设计软件、财务软件——几乎每一类大众软件,最后都走向了图形化。因为 GUI 解决的从来不是“功能不够多”,而是“人脑不够用”。
所以,GUI 的胜利不是偶然。
它大幅提升了人类的体验感、学习效率和使用信心。
三、但问题来了:GUI 对 AI 来说,恰恰是灾难
这句话听上去很反直觉,但越早想明白,越能看懂下一波 AI 工具浪潮。
人类喜欢 GUI,是因为人类擅长视觉理解
但 AI 并不是“长了一个数字眼睛的人”。
AI 如果要操作 GUI,通常要经历这样一条链路:
flowchart LR
A[屏幕像素] --> B[视觉识别]
B --> C[推断当前界面状态]
C --> D[定位按钮/输入框/菜单]
D --> E[计算点击坐标]
E --> F[执行鼠标/键盘动作]
F --> G[等待界面刷新]
G --> H[再次截图确认结果]
你看,人类点一个按钮,是“看一眼 -> 手一点”。
AI 点一个按钮,是:
- 先看截图;
- 再做视觉识别;
- 再理解布局;
- 再判断哪个按钮是目标;
- 再算坐标;
- 再执行动作;
- 再等 UI 渲染;
- 再截图确认自己有没有点对。
这中间每一步都可能出错。
1. GUI 的状态藏在像素里,不藏在语义里
Terminal 里会直接告诉你:
- 命令执行成功;
- 返回码是 0 还是非 0;
- 输出是哪些文本;
- 报错在哪一行。
GUI 不会。
GUI 的大量信息都被埋在:
- 按钮颜色变化里;
- 弹窗位置里;
- 加载动画里;
- 灰掉的菜单里;
- 一个不明显的小红点里。
对人类来说,这些很自然;对 AI 来说,这些全是隐含状态。
2. GUI 极其脆弱
按钮位置变一下,自动化就崩; 页面滚动一下,定位就错; 一个弹窗冒出来,流程就断; 暗色模式开了,视觉判断还会漂。
你会发现,GUI 自动化最大的问题不是“能不能做”,而是“能不能稳定地连续做一百次”。
而对 Agent 来说,稳定性不是锦上添花,是生命线。
3. GUI 太重,太慢,太浪费推理资源
AI 做 GUI 操作,本质上是在用高成本认知,解决低价值机械动作。
它本来应该把推理预算花在:
- 方案设计;
- 任务拆解;
- 风险判断;
- 结果评估。
结果现在却在干:
- 找按钮;
- 读图标;
- 猜哪个是“确定”;
- 判断加载转圈是不是结束了。
这就像让一个会做微积分的人,花半小时找订书机。
太亏了。
四、为什么 CLI 会在 AI 时代重新爆红?
因为 CLI 恰好把 GUI 的这些问题,全都反过来了。
1. CLI 天然是“语义化界面”
命令就是动作,参数就是约束,输出就是结果。
git status
pytest tests/auth
npm run build
kubectl get pods -A
这些命令对人类来说可能略显生硬,但对 AI 来说,简直像量身定做。
为什么?因为 CLI 不是在“展示界面”,而是在“暴露意图”。
git status:语义清楚;pytest tests/auth:范围明确;kubectl get pods -A:对象、动作、维度都清楚。
AI 不用猜“你是不是想点那个蓝色按钮”,它只需要理解文本语义。
2. CLI 是可组合的
Terminal 世界有一个非常强大的哲学:
一个命令只做一件事,但它可以和别的命令串起来做大事。
比如:
git diff --name-only | xargs eslint
cat app.log | grep ERROR | tail -50
curl api.example.com | jq '.data[] | .id'
这对人类来说已经很强,对 AI 来说更强。
因为 Agent 的本质就是:
- 理解目标;
- 规划步骤;
- 调用工具;
- 根据反馈继续。
CLI 天生适合这个循环。
3. CLI 是无头的、远程的、可自动化的
服务器没有 GUI,CI/CD 没有 GUI,Docker 容器没有 GUI,大量生产环境都没有 GUI。
而 AI 恰恰最适合去这些地方干活。
它可以:
- SSH 上去排查问题;
- 拉日志分析异常;
- 修改配置;
- 运行测试;
- 回滚版本;
- 生成报告。
如果每件事都要求先打开一个图形界面,再去视觉定位,整个系统根本跑不起来。
所以你会发现,AI 一旦从“聊天”走向“行动”,它迟早会走向 CLI。
4. CLI 的结果可审计、可复现、可回放
GUI 操作经常是“你刚才点了什么来着?”
CLI 不是。
CLI 的每一步都能留痕:
- 执行了什么命令;
- 输入了什么参数;
- 返回了什么输出;
- 哪一步报错;
- 怎样修复。
这对 AI Agent 尤其重要。
因为一旦 AI 真的开始帮你工作,你最需要的不是“它很聪明”,而是“它做过什么我看得见”。
五、Skill + CLI,为什么会比 MCP 更像下一代默认解?
先说明白:我不是说 MCP 没价值。
MCP 很重要。它像 AI 世界里的“通用接口标准”——类似 USB-C。不同工具、不同数据源、不同 SaaS,可以用统一方式接给模型。
问题在于:
不是所有任务,都值得先做一层协议化封装。
很多人一谈 Agent,就默认要先搭 MCP Server、定义 Tool Schema、做认证、做上下文桥接、做生命周期管理。对于复杂企业集成,这当然合理。
但对大量高频任务来说,这套动作太重了。
这时候,Skill + CLI 往往更狠。
Skill 是什么?
如果用最通俗的话说:
Skill 就是 AI 的“工作说明书 + 作战手册 + 最佳实践”。
它告诉 AI:
- 遇到什么任务要怎么拆;
- 优先检查什么;
- 常见坑有哪些;
- 什么时候用哪个工具;
- 输出应该长什么样。
人类员工靠经验,AI 员工靠 Skill。
CLI 又是什么?
CLI 就是执行层。
它不是告诉 AI “应该怎么想”,而是给 AI 一个可靠的手和脚:
- git
- gh
- docker
- kubectl
- terraform
- npm
- uv
- pytest
- rg
- jq
- ffmpeg
- sqlite3
这些 CLI 都是现实世界里已经打磨了很多年的成熟武器。
它们组合起来,会发生什么?
flowchart TD
A[用户目标] --> B[Skill 理解任务与拆解步骤]
B --> C[选择合适的 CLI 工具]
C --> D[执行命令并读取结果]
D --> E[继续迭代/修正]
E --> F[交付结果]
你会发现,这个链路非常短。
没有多余中间层,没有额外“翻译成本”,也不需要把所有现实工具重新包装成一个协议服务。
为什么这条路线更容易火?
1. 因为世界上已经有海量 CLI 了
AI 世界最不缺的,不是协议,而是工具。
几十年软件工业,早就积累了无数好用的命令行工具。它们稳定、成熟、文档多、社区大。
与其把这些能力重新包一遍,不如直接让 AI 学会在 Skill 指导下使用它们。
2. 因为 Skill 解决的是“不会用”
很多人以为,Agent 的核心问题是“没有工具”。
其实不是。很多时候,工具早就在那里,问题是模型不会正确地用。
同样一个 kubectl,新手用起来像踩雷,老手用起来像手术刀。
Skill 的价值就在这里:把专家经验写进去,把 SOP 写进去,把判断顺序写进去。
于是 AI 不只是“能调用命令”,而是“更像一个懂业务的熟手”。
3. 因为 CLI 解决的是“能做成”
Skill 只负责脑子,CLI 负责身体。
一个 AI 再懂原理,如果没有可靠执行层,它还是只能停留在纸上谈兵。
CLI 的好处是:
- 输出明确;
- 副作用清晰;
- 易于重试;
- 易于串联;
- 易于权限控制。
这让 Agent 真正具备工程能力,而不只是聊天能力。
4. 因为这套组合更便宜、更快、更接地气
很多团队根本没有精力给每类内部工具都做一套 MCP Server。
但他们已经有:
- 一堆 shell 脚本;
- 一堆数据处理命令;
- 一套运维手册;
- 一套代码规范;
- 一套项目约定。
把这些沉淀成 Skill,再让 AI 去调用已有 CLI,几乎就是最低成本的 Agent 落地方式。
不是未来某一天能落地,是今天就能落地。
六、那 MCP 会不会被彻底淘汰?
不会。
真正成熟的判断,不是“谁干掉谁”,而是“谁更适合哪一层”。
我更认同下面这个理解:
flowchart LR
A[Skill] -->|定义做事方法| D[AI Agent]
B[CLI] -->|提供本地/远程执行能力| D
C[MCP] -->|提供跨系统标准化连接| D
它们三者并不是完全互斥,而是各自解决不同问题:
| 组件 | 核心作用 | 最擅长解决什么问题 |
|---|---|---|
| Skill | 教 AI 如何做事 | 经验、流程、领域知识 |
| CLI | 让 AI 把事做成 | 执行、自动化、编排、验证 |
| MCP | 让 AI 接更多外部系统 | 标准化连接、工具发现、远程集成 |
但为什么今天大家会感觉“Skill + CLI 在抢风头”?
因为在现实高频任务里,它往往是 最短路径。
比如这些场景:
写代码
- Skill:项目规范、测试策略、提交规则、架构约束
- CLI:git、npm、pytest、eslint、claude、codex、gh
运维排障
- Skill:故障排查SOP、先查什么后查什么、什么现象对应什么风险
- CLI:kubectl、helm、journalctl、grep、curl、jq、ssh
数据处理
- Skill:字段解释、报表口径、异常判断标准
- CLI:python、sqlite3、duckdb、csvkit、rg、awk
内容生产
- Skill:品牌语气、结构模板、SEO要求、审稿标准
- CLI:markdown 工具链、图片处理工具、发布脚本、git
这些任务里,MCP 当然也能上,但很多时候不是“必须先上”。
反而是:先用 Skill 把脑子补齐,再用 CLI 把手脚装上。
够了。
七、最近为什么各大厂商都在押注 CLI?
因为他们看到了同一件事:
AI 的下一个入口,不只是聊天框,而是操作系统本身。
截至 2026 年春天,至少有三条非常清晰的信号:
1. Anthropic:Claude Code 把“终端代理”推成主流叙事
Anthropic 官方把 Claude Code 定义为一种代理式编码工具,可以理解代码库、编辑文件、运行命令,并与开发工具集成。
重点不在“它能聊天”,重点在“它能在终端里干活”。
2. OpenAI:Codex CLI 直接开源
OpenAI 的 openai/codex 仓库对自己的描述非常直白:
Lightweight coding agent that runs in your terminal
而且它是 Apache-2.0 开源许可证。
这件事的象征意义非常强:OpenAI 不只是做模型,它开始把“终端里的编码代理”当成一等公民形态来推进。
3. Google:Gemini CLI 也明确走开源 Agent 路线
Google Developers 文档对 Gemini CLI 的表述同样非常直给:
一个开源的 AI Agent,直接运行在你的 Terminal 中。
更有意思的是,Gemini CLI 甚至明确提到它会走 ReAct 循环,可以和内置工具以及本地/远程 MCP Server 配合完成复杂任务。
这说明什么?
说明大厂们不是在争论“终端值不值得做”,而是在争论:
- 谁的 CLI 更强;
- 谁的 Agent 更聪明;
- 谁的工具接入更顺;
- 谁的工作流更接近开发者真实使用方式。
这不是偶然撞车,这是共识收敛。
八、CLI 为什么会火,不只是因为工程师怀旧
很多人会误判,以为 CLI 热是“极客文化复兴”。
其实不是。
CLI 会火,是因为它刚好踩中了 AI 时代的四个基本需求。
需求一:AI 需要低摩擦行动
AI 不怕文本,怕模糊状态。
CLI 的一切都更像“指令接口”,而不是“视觉谜题”。
需求二:AI 需要可重复工作流
Agent 最怕一次成功、十次失败。
CLI 的可重复性,远高于 GUI。
需求三:AI 需要进入真实生产环境
真实环境里,很多关键系统本来就只暴露命令、接口、日志、配置。
你让 AI 进这些地方,它天然就会往 CLI 靠。
需求四:自然语言正在变成新的 Shell
这是最有意思的一点。
过去 Shell 是:
- 人类写精确命令;
- 机器严格执行。
现在逐渐变成:
- 人类写自然语言目标;
- AI 把目标翻译成命令序列;
- 再去执行、观察、修正。
也就是说,自然语言不再替代 Shell,而是在包裹 Shell、升级 Shell。
这就是为什么很多人第一次用好用的 AI CLI 时,会有一种奇怪的感觉:
像是在用会思考的 Shell。
九、未来最猛的形态,不是一个聊天框,而是一套“技能化代理系统”
真正值得期待的,不是某个单点工具多聪明,而是下面这套组合逐渐成熟:
flowchart TD
A[用户说出目标] --> B[Agent理解上下文]
B --> C[调用Skill进行任务拆解]
C --> D[选择CLI / API / MCP 工具]
D --> E[执行与验证]
E --> F[生成结果或继续迭代]
这里面最关键的变化是:
1. Skill 会越来越重要
模型通用能力再强,也不可能天然懂你的团队规矩、业务黑话、项目坑位。
未来真正值钱的,不只是模型本身,而是围绕模型构建的:
- 组织经验;
- 领域流程;
- 风险边界;
- 交付标准。
这些都会沉淀成 Skill。
2. CLI 会成为 Agent 的默认动作层
至少在开发、运维、数据、内容、自动化这些场景,CLI 的优势几乎是结构性的。
它不一定炫,但它稳定、清晰、强大。
而 AI 真正走向生产力,不靠炫技,靠稳定。
3. MCP 会往“标准化连接层”沉淀
MCP 仍然很有价值,但更像基础设施:
- 需要接 SaaS;
- 需要接内网系统;
- 需要统一权限与工具发现;
- 需要标准化远程连接。
但在大量本地和工程任务上,大家会越来越倾向于:
能直接用 CLI,就先别绕远路。
十、写给开发者、产品经理和创业者的一个判断
如果你今天还把 AI 主要当成一个“会回答问题的网页”,你很可能低估了接下来两年的变化。
真正的变化不是模型再提多少分,而是 AI 的工作界面在改变。
过去几十年,软件工业的关键词是 GUI。 未来几年,AI 工具的关键词很可能是:
- Skill:把经验写进去;
- CLI:把动作做出来;
- Agent:把流程串起来。
这三者一旦组合成熟,会把很多工作从“人手点界面”,变成“人下目标,AI 落执行”。
所以,别把 CLI 理解成 GUI 的倒退。
它更像是:
当操作者从“人类”变成“AI”时,界面第一次回到了最适合机器理解的形态。
GUI 没有错。
GUI 极大提升了人类的幸福感和效率。
但 AI 不需要漂亮按钮,不需要拖拽反馈,不需要 hover 动效,也不需要一个拟物化的垃圾桶图标来获得心理安全感。
AI 要的是:
- 明确动作;
- 明确输入;
- 明确结果;
- 明确失败原因。
而这,正是 CLI 最擅长的东西。
结语:下一波,不是谁做出更花哨的 GUI,而是谁先把“会做事的终端代理”做顺
Claude Code 只是一个引子。
它真正提醒我们的,不是“终端还能玩出花”,而是:
AI 时代的软件交互,可能会沿着一条和移动互联网时代完全不同的路线继续进化。
对人类,GUI 依然重要; 对 AI,CLI 反而可能成为主战场; 而在这个主战场上,Skill + CLI 正在变成最现实、最锋利、最容易落地的组合。
所以,如果你现在正在设计 AI 产品、搭建 Agent 工作流,或者只是想判断未来两年的工具趋势,我的建议很简单:
少问一句:要不要先做个 GUI?
多问一句:AI 到底该怎么稳定地把事情做完?
很多时候,答案不在按钮里,而在终端里。
甚至更准确一点:
答案在 Skill 里,在 CLI 里,在那个看起来不够花哨、但足够强悍的执行闭环里。
可直接拿去分享的一句话总结
GUI 是人类驯服计算机的胜利;CLI 是 AI 接管执行层的开始。