Thomas Ptacek在8月20日写了一篇挑衅的文章,标题就叫《Stop Making TUIs》——别再做终端UI了。Simon Willison几乎立刻在自己的链接博客里点头附和,还搬出三月做的两个macOS菜单栏小工具当证据:一个测网络带宽,一个测GPU占用,他说自己至今每天都在用。这话听起来像是给"vibe coding"热潮又添了一把火:编程智能体已经把做原生GUI的成本压到接近零,你还在写TUI,是不是有点跟不上。

但把Ptacek的原文和后续讨论摆开看,这个判断没那么干脆。

Ptacek到底在主张什么

他先划了条线:CLI留着,可脚本化、可组合。TUI是他要打倒的对象——继承了终端的一堆老毛病,滚动、选择文本、拖放、浮动窗口、图片处理、无障碍支持,样样都别扭。

他自己的做法是,用Claude、Codex配合平台专属skill、computer-use能力,还有一套可复用的SwiftUI模板,几乎不用手写UI代码就能"召唤"出一个能用的macOS应用。他举了七八个例子——markdown查看器、给SageMath做的前端、内嵌agent的音乐播放器、自生成wiki、营养追踪器、菜单栏温度监控、Apple TV遥控器,清一色是给自己用的个人工具,不是拿去分发的产品。

他给出的新架构是"本地原生GUI+远程CLI/API",拿Emacs的TRAMP模式作参照:图形壳留在本地,真正干活的还是远端的命令行。

Willison漏掉的一句提醒

Willison这次转述,把自己三月文章里最扎眼的一句话弄没了。他当时说,自己不懂Swift、不懂macOS底层,没法验证智能体生成的监控数据是否准确——带宽和GPU占用这些数字,谁也没法保证不是模型编出来的。

这话搁进"AI已经能造出好用原生UI"的乐观叙事里,是个不大不小的刹车片。界面好看、能跑,不代表界面背后的数值靠得住。

生成成本和拥有成本,是两笔账

两笔账:造出来 vs 养得起 生成成本 ≈ 0 智能体一次性产出 SwiftUI模板复用 computer-use自动搭UI 拥有成本 未消失 多平台维护 无障碍/安全审查 长期正确性验证 bug反复修复

Ptacek这篇文章在Hacker News上引出了一堆反驳,他自己也接了招。有人说TUI流行根本不是因为GUI太难,是Ratatui、Textual、Bubble Tea这些框架把TUI的门槛也降下来了,而且TUI在SSH远程、管道组合、CI环境、无显示服务器场景下,GUI替代不了。

更扎人的一条是:AI降低的是"写出来"的成本,不是"养着"的成本。多平台支持、无障碍、打包签名、后台服务、长期维护——这些是智能体擅长的头80%之外的"最后20%",恰恰是最贵的部分。行为分歧要修、安全审查躲不开、版本发布要协调,这些活儿没有因为生成快了就变少。Ptacek自己在讨论里也松了口,承认哪怕有智能体,代码越少通常还是越好,同一个东西在多个平台各写一套,维护和一致性的代价照样在。

  • 提醒.生成一个原生应用几乎不花钱,但长期维护、数据准确性和安全审查的账,从来没有被智能体代付过。
三层分工,没有谁取代谁 GUI 面向普通用户,可发现、易操作 TUI 远程操作、CI环境、无显示服务器 CLI 可脚本化、可组合、最底层

这场TUI和GUI的争论,吵到最后其实不是界面之争。CLI留给能脚本化的活,TUI留给能远程操作和自动化的场景,GUI留给要给普通人用的东西——这三样东西的分工,智能体没有取消,它只是让每一样都变得更容易造出来。

界面之争的背后,其实是信任之争。

真正该焦虑的,不是"我该不该给我的CLI工具做个原生界面",是"这个界面背后跑的代码,我到底信到什么程度"。Willison自己都不敢打包票说他的GPU监控数字是准的——这才是vibe coding热潮里最容易被忽略的一句提醒。