科技公司和开源社区集中建设 CLI Agent,核心原因不是命令行重新适合所有人,而是软件多了一类需要稳定执行能力的机器用户。CLI 用参数表达动作,用文本或 JSON 返回结果,容易被 Agent 调用、组合和复现。GUI 仍适合人类探索与审查,MCP 仍适合标准化发现、类型约束和远端治理。三者的关系不是替代,而是执行入口、机器协议与人类控制面的重新分工。
传统 CLI 的用户主要是开发者和运维人员。Agent 出现后,命令行的显式性突然变成优势:模型不怕长参数,反而需要准确知道动作、范围、格式和返回状态。
以截取视频前五秒为例,GUI 需要导入素材、定位时间轴、切割和导出;CLI 可以把全部意图压缩成一次调用。对于重复和批量任务,差距会进一步放大。
Agent 操作 GUI 通常需要反复截图、识别控件、执行点击并验证页面变化。窗口缩放、弹窗、焦点、主题和网络延迟都可能改变状态。
CLI 则把同一任务压缩为输入、执行和结果,减少了视觉翻译层。
--help 支持按需学习。这些能力并非所有 CLI 天然拥有。交互式提问、混乱日志和不稳定输出都会削弱 Agent 体验。
CLI-Anything 类项目试图分析开源软件源码,找到 UI 操作背后的业务逻辑,再规划命令组、实现参数与输出、编写测试并生成文档。其目标不是让 Agent 模拟按钮,而是直接读写软件认可的数据或调用内部能力。
视频演示以图形工具为例:生成的命令能够创建项目、添加元素、列出画布对象并导出 SVG。同一工程文件既可由命令处理,也可回到原软件中继续人工编辑。
许多成熟桌面软件拥有稳定文件格式和内部逻辑,却只提供复杂 GUI。若能生成可靠命令层,Agent 就可以批量创建、修改和导出内容,再由人类在原软件中审查和微调。
这种模式尤其适合流程图、媒体处理、三维工具和固定格式文档等重复操作。
视频中的自动生成耗费了较长时间,这也说明“执行一条生成命令”不等于瞬间得到生产级接口。
OpenCLI 类项目把网站或 Electron 应用中的操作包装成命令。预制命令可以查询热门内容、搜索职位或提取页面数据,并支持 JSON 返回。
它将浏览器登录态和页面能力映射到终端,让 Agent 用明确参数完成操作。开发者还可以扩展新的站点命令,把页面读取逻辑固化为可复用工具。
如果命令底层仍然驱动浏览器,它并没有消除页面变化风险,只是把复杂步骤封装起来。工程上仍需处理:
优先使用官方 API;只有缺少机器接口时,再考虑受控浏览器包装。
第三方适配需要猜测内部状态,官方 CLI 则可以直接建立在稳定 API 和权限模型上。它能提供长期版本管理、认证流程、规范错误和审计支持。
例如代码托管平台的官方 CLI 可以登录、查询议题、创建仓库和管理合并请求。Agent 使用的正是开发者已长期验证的接口。
Agent 不必在会话开始时学习所有子命令。它可以按层读取:
tool --help
tool repo --help
tool repo create --help
这种渐进披露在工具很多、实际只调用少数能力时,可以减少无关描述占用上下文。
但若帮助层级过深或说明不完整,Agent 会反复探测,动态成本也会增加。Skill 可以先提供能力地图和常用工作流,降低搜索次数。
MCP 为工具发现和调用建立标准协议。工具名称、描述、参数类型和枚举可以通过 schema 暴露,宿主无需解析不同 CLI 的帮助格式。
这些是 CLI 不天然具备的能力。
如果 MCP 宿主把大量工具 schema 一次性注入上下文,工具描述会占用模型工作空间。CLI 加 Skill 可以只加载简短索引,需要时再查询帮助。
这不是 MCP 协议不可修复的缺陷。现代宿主可以搜索工具、延迟加载 schema 或使用缓存。比较时应测量完整任务的 token 和轮次,而不是只看启动成本。
Agent 报告某条 CLI 命令失败时,开发者可以复制命令到终端复现。输入、环境、输出和退出码都比较直观。
MCP 调用可能藏在宿主内部,还涉及 JSON-RPC、传输和 server 日志。良好的 MCP 调试器可以缓解问题,但基础设施要求更高。
CLI 可以把前一个命令的输出传给过滤、排序和导出工具:
issues list --format json
| jq '[.[] | select(.labels[]? == "bug")]'
| report render --format csv
一次进程调用即可执行确定性数据处理,不必让模型逐条搬运结果。
MCP 工具也能在 server 内提供批量能力,或由代码执行工具组合,并非本质上无法组合。差别在于 CLI 已有成熟 Shell 生态。
任何允许启动进程的 Agent 都可以调用 CLI,不要求集成特定协议客户端。本地开发、容器和 CI 中尤其方便。
反面是浏览器、移动端和受限云环境通常不能运行任意 Shell,这些场景更适合远端 API 或 MCP。
平台需要隔离用户、限制工具、统一审计和管理生命周期。标准协议与网关更容易建立治理边界。
MCP 宿主可以在每类工具调用前显示精确权限。裸 Shell 的执行范围通常更宽,需要额外沙箱和命令白名单。
Remote MCP 可以通过 OAuth 管理用户授权,不必把长期 API key 暴露给 Agent 进程。
JSON Schema 能限制必填字段、枚举和数据类型,在语法正确率上往往比自由生成命令更稳。
把 CLI 热潮概括为全面放弃 MCP 过于绝对。许多产品同时提供官方 CLI、API 和 MCP,分别服务本地开发、自动化和远端集成。
更准确的趋势是双方互相吸收优点:MCP 宿主采用按需工具发现,CLI 增加结构化 schema 与 Skill,桥接工具还能把 MCP 映射为命令。
| 维度 | 优先 CLI | 优先 MCP |
|---|---|---|
| 运行环境 | 本地、容器、CI | 支持 MCP 的宿主或云端 |
| 工具生态 | 已有成熟命令 | 需要统一工具发现 |
| 组合方式 | Shell、脚本、管道 | 类型化工具链 |
| 认证 | 本地凭据可接受 | 需要 OAuth 与网关托管 |
| 调试 | 开发者手动复跑 | 集中追踪与协议日志 |
| 多租户 | 通常不优先 | 更适合集中治理 |
自动生成只是起点,真实工件和失败路径才是验收依据。
Agent 可以通过 CLI 创建或修改内容,人类再用 GUI 检查视觉结果、局部调整和批准发布。两者应操作同一文件和同一权威状态。
Agent → CLI/API:执行与验证
↓
共享工件
↓
人类 → GUI:预览、审查与审批
这种组合比让 Agent 完全模拟 GUI 更可靠,也比要求人类只读终端日志更友好。
CLI 的通用性来自 Shell,也意味着更宽的攻击面。用户输入若直接拼入命令,可能触发重定向、变量展开或额外命令。
科技公司建设 CLI Agent,是因为命令行与现有开发生态相连,能够以明确参数、结构化输出、渐进式帮助、管道组合和可复现错误支持 Agent 执行。CLI-Anything 展示了从开源软件内部能力生成命令层的路径,OpenCLI 展示了把网站操作封装为命令的思路,官方 CLI 则提供最稳定的长期接口。但 CLI 不会全面取代 GUI 或 MCP:GUI 负责视觉审查和人类控制,MCP 负责类型化发现、远端认证与多租户治理。真正的发展方向是融合,让每种接口在最合适的运行环境中承担自己的职责。
ChatGPT 和 HueHive 如何通过对话生成 Mermaid 图表?
为什么 Agent 时代大家都在做 CLI?相比 GUI 有哪些优势?
Ubuntu怎么解决vi编辑器按上下左右变成ABCD的问题?
从 GUI 回到 CLI:为什么命令行正在成为 AI Agent 的首选界面?
如何为 Web 和手机 AI 对话搭建跨平台 Markdown 上下文知识库?
同一个远程 OAuth MCP 知识库在 Claude 和 ChatGPT 中的使用体验有何不同?