GUI是给人类的,CLI才是给AI的:Claude Code之后,为什么 Skill + CLI 正在“反杀” MCP?

3 阅读16分钟

先说结论

如果你最近在关注 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 的本质就是:

  1. 理解目标;
  2. 规划步骤;
  3. 调用工具;
  4. 根据反馈继续。

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 接管执行层的开始。