每周见闻(80):TUI 和对话框可能是未来的主流界面
约 2280 字大约 8 分钟
2026-08-16
每周见闻:2026-08-10 - 2026-08-16
TUI 和 对话框可能是未来的主流界面

自从 MCP 的出现,我们可以让大模型做非常多的事情,以往需要专门设计的 UI 可以被对话框代替。
用户也可以分为普通用户和开发者。普通用户不关心细节和过程,通过对话框下达指令验收结果;开发者会关注过程也会自己动手进行修正,因此会选择 TUI 这类更方便的形式。
因此,我推测未来主流的 UI 会逐渐收敛到这两种形式上。现在也已经有这种趋势,Codex、Workbuddy、Cursor 的 Agent 模式都类似于对话框的形式;Opencode、ClaudeCode 都是类似于 TUI 的形式,并且两者的受众也很明显。
豆包输入法非常适合开发人员
由于 Trae 的到期,加上对命令行操作越来越多,我又转回了 NeoVim(熟悉的朋友可能知道我之前折腾了NeoVim)。 原因非常简单,命令行的各种快捷键可以免去切换窗口的麻烦。目前我是 Kaku + NeoVim 的组合。
而像命令行、NeoVim 也好,最开始只针对英语使用者。因此我们在使用时会需要有切换输入法的步骤,尤其在 NeoVim 中对中文创作非常不友好。市面上早就有各种解决方案,但由于我懒得折腾便一直忍着不适。 直到遇到了豆包输入法。
豆包输入法有一个 Shift 切换中英文输入法的快捷键。这在终端里操作就非常方便,只需一个按键就能切换中英文,非常适合 Vim 系的开发者。也正因为如此,我认为非常适合我们开发人员。
工具
1、Tinycast — a tiny, native macOS launcher[^1]
标签:macOS,效率工具
Tinycast 是个只有 3MB 的原生 macOS 启动器,纯 SwiftUI + AppKit,零依赖,没有 Electron 也没有遥测且开源免费。算是 Raycast 的平替,代替日益变重的 Raycast。
目前支持启动器、剪贴板历史、内联计算器、emoji 面板、全局快捷键等功能。支持直接导入 Raycast 的配置,迁移上非常方便。不过我最常使用的窗口大小调整和位置并没有实现。

2、Docker Sandboxes | Sandboxes for Coding Agents | Docker[^7]
标签:Docker,AI Agent,沙箱
Docker 官方推出的沙箱工具。可以给 AI Agent 使用,解决:agent 在YOLO 模式(全程自动发挥)下危险操作(比如 rm -rf /)。
采用的是 microVM 隔离:每个 agent 一个独立沙箱,只挂载当前项目工作区,agent 可以在里面装包、改配置、跑 Docker 容器,宿主机碰不到。支持 Claude Code、Codex、OpenCode 等工具,配合 Docker AI Governance 可做团队级统一策略。

AI
1、Stop Reviewing Diffs. Start Reviewing Systems. - YouTube - Kent C. Dodds[^2]
标签:代码审查,AI Agent,系统设计
Agent 写代码越来越快,PR 动不动几千行,逐行 review 已经不现实。Kent 的观点是:别再 review diff,review 系统。做法是把变更按风险分三类——composes(组合已有原语,低风险)、extends(改行为或契约,中风险)、adds(新增原语,高风险),然后让生成这个 PR 的 agent 直接在 PR 描述里写一段系统回顾:改了哪些 primitives、系统地图长什么样、有哪些不变量。GitHub 原生渲染 mermaid,不需要额外服务。先看系统形状,再决定哪些代码值得细读。
对于大部分业务来说,我们只需要把控好整个方向即可,没必要逐行去 Review 代码。作者编写了 SKILL 会直观地画出修改后的流程图和系统架构,这才是 AI 辅助下的 Review。

2、Your Agentic Workflow's Cache Keepalive Costs 8x Too Much (v2: the interval frontier)[^5]
标签:LLM,缓存,成本优化
对大模型来说,命中缓存与不命中缓存价格上有着非常大的差距。以 DeepSeek(谷时)为例每百万 Token 输入命中缓存仅为 0.05 元;而未命中缓存则要 1.5 元,相差整整 30 倍。因此 Agent 的工作流中会有缓存保活机制。
文中作者测试了 Anthropic、OpenAI、Gemini、DeepSeek 四家的缓存保留曲线:
- Anthropic (Claude):缓存非常“准时”,大约在 5-6 分钟后就会过期。它的缓存写入费用比读取更高(125% vs 100%)。
- OpenAI:缓存过期较慢,实测中 20 分钟时仍有一半有效,完全过期大约需要 30 分钟。
- DeepSeek 和 Gemini:情况比较特殊。DeepSeek 的缓存约在 10 分钟后过期,但由于其重新计算本身就很便宜,用Ping来维持缓存可能并不划算。而 Gemini 的缓存行为像“路由抽奖”,命中率极不稳定,难以预测。
因此缓存维护并非越勤快越好,而是一个需要精打细算的成本优化问题。业内通用的“每30秒发一次心跳”来维持缓存的做法,成本过高,可能比让缓存过期重新计算还贵8倍

Coding
1、TermDOM | Build Terminal UIs with HTML, CSS and DOM[^3]
标签:终端,DOM,CSS
在各种 AI CLI 下,TUI 逐渐抬头。TermDOM 把真正的 DOM 渲染进终端——HTML 和 CSS 直接变成终端输出,MutationObserver 监听变化自动重绘。布局也使用 CSS box model 和 flexbox,连 Web Components 和 Shadow DOM 都支持。文字排版处理了 CJK、emoji、组合字符的宽度,还有真正的输入框和 IME 输入。也就是说,前端那套东西可以原封不动用来写终端应用。
这下就很有意思了。最近越来越习惯在 Terminal 中干活,可以利用这个库做点自己的 TUI 工具玩一下。

2、5 Useful npx Helpers · Jens Oliver Meiert[^4]
标签:npx,开发工具,效率,Tools
npx 的好处是即用即走,不用装到全局。DeepSeek Harness 官方也是推荐使用 npx 进行安装。
文章介绍了五个 npx 工具:
- cspell 查拼写,扫文档错字;
- markdown-link-check 检查 Markdown 里的死链;
- image-guard 在仓库里做近无损图片压缩,一行命令;
- npm-check-updates 扫依赖更新;
- knip 更进一步,查没被引用的文件和导出,不过误报不少。
3、Why you might want to build your WebApp in Canvas instead of HTML[^6]
标签:Canvas,前端,Web性能,JavaScript
Canvas 在我印象中一直是复杂繁琐的代名词,绝对不会是我做 WebApp 的首选。这篇文章介绍了为什么有些时候在做 WebApp 应该选择 Canvas。
文中列举了 Google Docs、Miro 的白板都是 Canvas,但这不是说 Canvas 比 HTML 快——它是更底层的渲染工具。而是这类工具需要大量绝对定位元素、不规则形状、复杂 z-index,或需要缩放、平移、视锥裁剪。反之,文档型应用别碰 Canvas,DOM 白送无障碍、文本选择、输入处理。当界面不再像文档、更像场景时,再考虑 Canvas。
在之前的 周刊 也提到了 drawElementImage API 允许在 Canvas 中渲染真实 DOM。未来可能会有更好的开发思路。

其他
1、Were classical statues painted horribly? - Works in Progress Magazine[^8]
标签:艺术史,人文,FUN
很有意思的文章,现代人觉得古罗马的雕塑很好看。但其实原版是有上色的,并且以现代审美来看……非常土。主流解释是古今审美不同,古人就好这口浓艳。
但这篇提出了一个更扎心的替代理论:不是我们不懂古人的审美,是这些复原本本身画得烂。 证据有三条:
- 庞贝壁画和马赛克里画的雕像,配色相当细腻,和现代复原完全两回事;
- 埃及、尼泊尔那些彩绘雕塑,我们照样能欣赏;
- 而这些科学复原其实只是拿残留的底层颜料臆测全貌——好比凭一幅画残存几个色块,就声称还原了蒙娜丽莎。

参考文章
- [1] Tinycast — a tiny, native macOS launcher: https://abue-ammar.github.io/tinycast/
- [2] Stop Reviewing Diffs. Start Reviewing Systems. - YouTube - Kent C. Dodds: https://www.youtube.com/watch?v=Xs-U7SY2uNE
- [3] TermDOM | Build Terminal UIs with HTML, CSS and DOM: https://termdom.org/
- [4] 5 Useful npx Helpers · Jens Oliver Meiert: https://meiert.com/blog/5-npx-helpers/
- [5] Your Agentic Workflow's Cache Keepalive Costs 8x Too Much (v2: the interval frontier): https://blog.mempko.com/your-agentic-workflows-cache-keepalive-costs-8x-too-much-v2-the-interval-frontier/
- [6] Why you might want to build your WebApp in Canvas instead of HTML: https://hivekit.io/blog/why-you-might-want-to-build-your-webapp-in-canvas-instead-of-html/
- [7] Docker Sandboxes | Sandboxes for Coding Agents | Docker: https://www.docker.com/products/docker-sandboxes/
- [8] Were classical statues painted horribly? - Works in Progress Magazine: https://worksinprogress.co/issue/were-classical-statues-painted-horribly/
