GUI、CLI、TUI 这三个词经常被混着用,其实三者的区别很简单:GUI 用鼠标点,CLI 敲命令,TUI 是在终端里用文本「画」出来的界面。
一、三者的区别
- GUI(图形用户界面):只要有鼠标、触控板或触摸屏能操作的,都算 GUI。桌面环境、浏览器、文件管理器、IDE 都是这一类。它把功能摊开成菜单和按钮,代价是层级多、点得深。
- CLI(命令行界面):在终端里敲命令执行特定功能。命令的参数比图形界面暴露得更细,所以涉及系统底层和配置时 CLI 往往更直接——防火墙、网络、包管理都是典型场景。缺点是得记命令。
- TUI(终端用户界面 / 文本用户界面):文章里说它是「一半 GUI 一半 CLI」。在终端里用文本画出面板、边框、列表,能用键盘(有些还支持鼠标)操作,比如终端里的音乐播放器 CMUS、终端浏览器、装系统时的选择界面。

二、AI 编程工具归属
| 类型 | 工具 | 特点 | 最佳使用场景 |
|---|---|---|---|
| TUI | Grok Build | 多面板 TUI + Plan Mode + Todo 管理 + 并行子代理,终端原生 | 复杂工程任务、重构、大型代码库 |
| TUI | OpenCode | 主题化 TUI、分割面板、LSP 支持,接近 IDE 体验 | 可视化交互和多模型切换 |
| TUI | Crush | 美观直观 TUI,响应快,支持 LSP 代码理解 | 日常编码建议、快速迭代 |
| TUI | Crustly / Ralph-tui / Sidecar | Rust 实现或专用仪表盘 TUI | 本地优先、代理编排、监控 |
| CLI | Aider | Git 原生、diff 编辑、简单可靠 | Git 工作流、重构、开源项目 |
| CLI + TUI | Claude Code | 强推理、大上下文、终端代理 | 深度复杂代码库、知识工作 |
| CLI + TUI | Codex CLI / Gemini CLI | 轻量、快速、集成各自模型 | 简单生成、脚本任务、多模态 |
| GUI | Cursor | 完整 IDE + AI 深度集成 | 大规模开发、视觉化编程 |
| GUI | VS Code + Copilot/Continue.dev、JetBrains AI | 插件式图形界面 | 熟悉 IDE 的开发者 |
三、怎么选
盯着一列看不如盯着自己的操作习惯看:
- 想要看得到、点得动:GUI。初次上手、需要可视化看 diff、或者本来就在 IDE 里写代码,没必要为了「显得专业」去用终端。
- 想要能脚本化、可回滚:CLI。像 Aider 这种 Git 原生的,每一步改动都落在 commit 上,出问题直接回退,也更容易塞进 CI。
- 想要终端里的「界面感」:TUI。既有面板和状态显示,又留在终端里,适合长时间跑的任务和并行子代理的场景。
三者不是替代关系。实际用下来常见的组合是:在 GUI 里看和审,在 TUI 里跑,把 CLI 留给自己写脚本和自动化。