[{"data":1,"prerenderedAt":260},["ShallowReactive",2],{"\u002Fblog\u002Ftui-cognitive-bandwidth\u002F:zh":3,"\u002Fblog\u002Ftui-cognitive-bandwidth\u002F-surround:zh":154,"blog-all-posts:zh":155},{"id":4,"title":5,"author":6,"body":10,"date":136,"description":137,"extension":138,"image":139,"locale":140,"meta":141,"minRead":142,"navigation":143,"original":144,"path":145,"pinned":144,"seo":146,"source":147,"sourceUrl":23,"stem":148,"tags":149,"updated":139,"__hash__":153},"blog\u002Fblog\u002Ftui-cognitive-bandwidth.md","TUI 正在杀死你的认知带宽：AI Coding 的「极客滤镜」该碎了",{"name":7,"avatar":8},"陈大黄",{"src":9,"alt":7},"\u002Favatar.jpg",{"type":11,"value":12,"toc":127},"minimark",[13,28,31,34,37,42,45,52,58,64,67,70,73,80,83,86,92,95,98,102,105,108,111,115,118,121,124],[14,15,16],"blockquote",{},[17,18,19,20,27],"p",{},"核心观点首发于 ",[21,22,26],"a",{"href":23,"rel":24},"https:\u002F\u002Fx.com\u002Frealchendahuang\u002Fstatus\u002F2087949416808518106",[25],"nofollow","X","，这篇文章是完整版论述。",[17,29,30],{},"现在一堆 AI Coding Agent 动不动就上 TUI，这股风气，Claude Code 得负很大责任。它把「在终端里跟 AI 对话写代码」这件事做得很极致，但也把一条审美和路径依赖带了起来：好像真正高级的 Coding Agent，就得默认是终端界面；Web 端反而是附属，甚至被嘲成「不够程序员」。",[17,32,33],{},"结果呢？先搞一个复杂的 TUI，各种颜色、状态栏、快捷键、模式切换，然后美其名曰「沉浸式」「高效」「尊重程序员」。",[17,35,36],{},"真的吗？",[38,39,41],"h2",{"id":40},"你以为在对话其实在搏斗","你以为在对话，其实在搏斗",[17,43,44],{},"对一小部分每天泡在终端的人来说，TUI 确实爽。但对更多人来说，它是在人为制造门槛。用 TUI 跟 Agent 协作时，你其实在不断做三件事：",[17,46,47,51],{},[48,49,50],"strong",{},"回忆快捷键和模式。"," 每个工具都有一套自己的键位习惯，新用户一脸懵，老用户换工具也得重新适应。",[17,53,54,57],{},[48,55,56],{},"在滚动的字符流里定位信息。"," 状态不是摊开给你看的，而是埋在时间轴里的，你得靠滚动和搜索去「考古」。",[17,59,60,63],{},[48,61,62],{},"祈祷自己没有误触进入某个奇怪状态。"," 模式切换是隐形的，你经常不知道自己当前处于哪个模式，直到出了问题。",[17,65,66],{},"这已经不是交互了，这是在跟界面搏斗。",[38,68,69],{"id":69},"信息密度不等于信息效率",[17,71,72],{},"TUI 的辩护者最爱说的一个词是「信息密度」。但信息密度堆到极致，代价是可读性和可恢复性被踩到最低。",[17,74,75,76,79],{},"真正高效的界面，应该是",[48,77,78],{},"把状态摊开给你看","，让你用眼睛和空间感去理解——哪个任务在跑、哪条会话在等输入、哪个文件被改了，一眼扫过去就知道。而不是逼你把所有东西都塞进短期记忆里，用脑子维护一张「当前系统状态」的隐形地图。",[17,81,82],{},"人的工作记忆只有四到七个槽位。TUI 的交互模型，本质上是把最宝贵的认知资源花在「记住界面状态」上，而不是「思考问题」上。",[38,84,85],{"id":85},"它还在培养一种坏习惯",[17,87,88,89],{},"更糟的是，TUI 生态在培养一种很坏的价值判断：",[48,90,91],{},"把会不会用某个工具的键位当成能力本身。",[17,93,94],{},"结果就是，人花大量精力在适应界面，而不是在思考问题。衡量一个程序员的标准，变成了「能不能背诵这套快捷键」，而不是「能不能把问题拆解清楚」。",[17,96,97],{},"一个好的工具应该降低思考成本，而不是把思考成本转移到「如何操作这个界面」上。",[38,99,101],{"id":100},"web-ui-完全可以又快又干净","Web UI 完全可以又快又干净",[17,103,104],{},"有人说 Web 端慢、不够「原生」。2026 年了，这个论点早就站不住了。",[17,106,107],{},"Web UI 完全可以做得又快又干净：装成 PWA 之后跟桌面客户端几乎没有区别，更新还更方便——不用用户手动升级，刷新一下就是最新版。长会话、多任务并行、任务状态可视化，这些恰恰是浏览器 DOM 的强项，而不是字符流的强项。",[17,109,110],{},"我自己的主力配置就是 OpenChamber 这种 Web 界面 + OpenCode 内核，长期高强度使用，稳得很。真要认真挑刺的话，Web 端偶尔的小毛病远不影响长期使用，倒是某些 TUI 的模式切换坑过我很多次。",[38,112,114],{"id":113},"工具是给人用的不是用来证明谁更极客的","工具是给人用的，不是用来证明谁更「极客」的",[17,116,117],{},"Claude Code 本身很强，这点没问题。但它把「TUI 才是正统」这个审美和路径依赖带起来了，后面一堆跟风的就更离谱——连交互设计都懒得做，直接把「长在终端里」当成高级的证明。",[17,119,120],{},"把反人类的交互包装成高级，真是很滑稽的一件事情。",[17,122,123],{},"工具是给人用的。判断标准应该永远是：**它有没有降低你完成任务的总成本？**如果一套界面让你把精力花在「跟界面搏斗」上，那它再「极客」也是负资产。",[17,125,126],{},"下次选 Coding Agent 的时候，把这个滤镜摘了再选。",{"title":128,"searchDepth":129,"depth":129,"links":130},"",2,[131,132,133,134,135],{"id":40,"depth":129,"text":41},{"id":69,"depth":129,"text":69},{"id":85,"depth":129,"text":85},{"id":100,"depth":129,"text":101},{"id":113,"depth":129,"text":114},"2026-09-09","一堆 AI Coding Agent 争相上 TUI，把交互塞回 80 年代的终端范式，还美其名曰「沉浸式」「尊重程序员」。这篇文章拆解 TUI 系统性降低认知带宽的三个机制，以及 Web UI 为什么才是正解。","md",null,"zh",{},7,true,false,"\u002Fblog\u002Ftui-cognitive-bandwidth",{"title":5,"description":137},"x","blog\u002Ftui-cognitive-bandwidth",[150,151,152],"AI 编程","交互设计","随笔","LQpUajXLDVs4awtRoqzDS3p0TyPQKe6T9iAKtW3AerA",[139,139],[156,165,174,183,189,197,204,211,219,225,232,241,243,251],{"path":157,"title":158,"description":159,"date":160,"minRead":161,"tags":162},"\u002Fblog\u002Fagent-harness-selection","折腾了 Pi Agent、OMP、Codex、ZCode，我为什么最终选了 OpenCode + OpenChamber","折腾 Agent Harness 的选型复盘：GUI 体验、供应商锁定、二次开发自由度三个标准，排除了 Pi Agent、OMP、Codex、ZCode，最后选了 OpenCode 内核 + OpenChamber 界面。","2026-08-06",6,[163,164],"AI Agent","工具选型",{"path":166,"title":167,"description":168,"date":169,"minRead":161,"tags":170},"\u002Fblog\u002Fcloudflare-broke-stack","2026 独立开发最佳实践：Cloudflare 穷鬼全家桶","独立开发者的零成本技术栈：Codex 写代码、GitHub 管版本、Stripe 收钱，前端 TanStack Start、后端 Hono + Workers、数据库 D1、存储 R2、缓存 KV，全部跑在 Cloudflare 上。","2026-06-15",[171,172,173],"Cloudflare","独立开发","技术栈",{"path":175,"title":176,"description":177,"date":178,"minRead":161,"tags":179},"\u002Fblog\u002Fdeepseek-api-web-search","DeepSeek API 内置联网搜索，Responses API 白嫖官方搜索能力","DeepSeek 官方在 API 里内置了联网搜索：用 Responses 接口调用 deepseek-v4-flash，声明 web_search 工具即可，不用对接第三方搜索引擎，不用申请搜索密钥。","2026-08-05",[180,181,182],"DeepSeek","API","AI 工具",{"path":184,"title":185,"description":186,"date":178,"minRead":142,"tags":187},"\u002Fblog\u002Fdeepseek-v4-flash-review","DeepSeek V4 Flash 正式版深度体验：便宜、快、1M 上下文、内置搜索","深度体验几天 DeepSeek V4 Flash 正式版：极致的便宜、快如闪电、1M 上下文、官方内置联网搜索、完全开源。唯一的短板是多模态，但可以组合其他模型补上。",[180,188,182],"模型评测",{"path":190,"title":191,"description":192,"date":169,"minRead":193,"tags":194},"\u002Fblog\u002Ffree-cloudflare","免费用户如何榨干 Cloudflare，免费版到底能白嫖到什么程度？","Cloudflare 免费版能撑起一整套个人互联网基础设施：DNS、CDN、Pages、Workers、KV、D1、R2、邮箱、Tunnel、AI Gateway 等。",8,[171,195,196],"免费额度","部署",{"path":198,"title":199,"description":200,"date":136,"minRead":193,"tags":201},"\u002Fblog\u002Fmodel-harness-decoupling","原厂 Harness 未必是版本答案：开放模型时代，模型和 Harness 要分开选","用 Claude 就上 Claude Code？开放模型时代这个直觉该升级了。原厂的优势是真的，但训练好模型和做好 Harness 是两门工程——这篇文章讲清楚为什么模型与 Harness 已经可以分开选，以及五家 Harness 的定位地图。",[163,202,203],"Harness","选型",{"path":205,"title":206,"description":207,"date":136,"minRead":193,"tags":208},"\u002Fblog\u002Fopencode-productive-stack","稳定、快速、高产、便宜：我的 AI Coding 全家桶实录","OpenCode + OpenChamber + 两份 DeepSeek V4 Flash 订阅，15 个项目同时跑代码，额度只掉一点点。这篇文章摊开我的完整配置：上下文剪枝、分层记忆、桌面自动化，以及「原汤化原食」的选型教训。",[209,150,210],"OpenCode","配置",{"path":212,"title":213,"description":214,"date":215,"minRead":216,"tags":217},"\u002Fblog\u002Fproduct-faxin-principle","发心原理：独立开发者为什么要学会舍弃","你为什么出发？你为谁出发？你到底想解决哪一个问题？产品锋利感来自舍得和放弃。","2026-06-20",10,[218,172],"产品思维",{"path":220,"title":221,"description":222,"date":215,"minRead":193,"tags":223},"\u002Fblog\u002Fproduct-pain-vs-itch","用户说「牛逼」别上头：痛点与痒点","口头喜欢一文不值。判断需求只有一个硬标准：看用户愿意付出什么。",[218,224],"需求判断",{"path":226,"title":227,"description":228,"date":160,"minRead":229,"tags":230},"\u002Fblog\u002Fqwen-vision-for-deepseek","给 DeepSeek 补上多模态：Qwen-3.7-Flash 识图方案","DeepSeek V4 Flash 没有多模态，识图怎么办？调研后目前性价比最高的方案是 Qwen-3.7-Flash：识别一张图片成本极低，和 V4 Flash 组合使用补齐短板。",5,[180,231,188],"多模态",{"path":233,"title":234,"description":235,"date":236,"minRead":237,"tags":238},"\u002Fblog\u002Fsub-store-cloudflare","我把机场订阅聚合搬到了 Cloudflare 上","多个机场加自建节点揉成一条订阅，分流规则在服务端配好，客户端只管订阅。","2026-06-28",4,[171,239,240],"科学上网","开源项目",{"path":145,"title":5,"description":137,"date":136,"minRead":142,"tags":242},[150,151,152],{"path":244,"title":245,"description":246,"date":247,"minRead":161,"tags":248},"\u002Fblog\u002Fvalue-not-external","讨论有没有价值，这件事本身就没有价值","我们的价值不由任何人定义。人在 AI 时代，到底应该如何理解自己。","2026-06-18",[249,250],"AI 思考","人文随笔",{"path":252,"title":253,"description":254,"date":255,"minRead":256,"tags":257},"\u002Fblog\u002Fx-growth-1000-followers","一天多涨粉 1000+，我做了什么","6 月认真运营 X，一天多涨粉 1000+。这篇记录我当时做过的事和得到的反馈。","2026-06-16",12,[258,259],"X 运营","内容增长",1788977132745]