Twain:一个给「AI 时代」准备的 diff 查看器,作者其实是被 Meld 惯出来的

在 Hacker News 上刷到一条 Show HN,作者 andunie 说自己做了一个叫 Twain 的 diff 查看器,定位很直白:「like Meld, but for the age of AI」。2 points,2 小时前发的,属于刚丢出来、还没多少人讨论的小项目。但看完这段简介,我反而有点被戳中,因为里头写的是真做开发的人才写得出来的需求清单。

作者的起点不是「我要发明一个新工具」,而是「我太喜欢 Meld 了」。原文原话是,diff 查看器现在很多,但跟 Meld 比,全都糟糕。这句话听着偏颇,可要是常年用 Meld 审 diff 的人,多半能点头。Meld 的三栏对比、目录树、滚动跟手,用习惯了是真回不去。问题是作者在 Meld 之外有五个额外需求,Meld 给不上,于是干脆自己写了一个。

这五个需求值得一个个过一遍,每一条都对应一个具体的痛。第一,一个 Git diff 里的所有文件要能顺序排在同一视图里,旁边挂个文件树。意思就是,你不用一次只盯一个文件,改了一堆文件时能在同一屏里顺着往下看,树形导航帮你在文件间跳。第二,可以切换看完整文件还是只看改动过的部分,省得被没改的几十行噪音干扰。第三,基于 tree-sitter 的语法高亮。这点说得很细,tree-sitter 是按语法结构解析的,不是简单的正则配色,高亮准确性上明显更靠谱。

第四和第五才是让我觉得「为 AI 时代」这句不是白喊的原因。作者允许你在改动集合和具体行上留言,而且「AIs can read these comments」——AI 能读这些评论。这一点很关键:审查代码时的沟通成本,往常是靠一遍遍地来回传话,现在把上下文直接钉在 diff 上,机器能读取,等于给后续的 AI 辅助留了一条上下文通道。第五是能搜索整个修改过的文件集合,审大型变更集时,想在改动之间找关联,这个搜索就是刚需。

Twain 本身是 Rust 写的,基于 GTK4。这对 Linux 桌面的技术栈玩家算个加分项,Rust 写 GUI 一直是「内存安全很香、生态还是差点意思」的现状,作者愿意往这个方向填坑,本身有点意思。不过也得说清楚,这是刚起步的 Show HN 项目,2 个点、连评论都还没攒起来,属于「作者先亮出来找反馈」的阶段,别指望它现在就能替代 Meld 进入日常使用。

我倒不觉得这个工具会立刻火,但它的方向值得留意。把「AI 可读的审查评论」做进 diff 查看器,是在给「人审代码 + AI 看上下文」这种工作流修路。审查这事,最贵的从来不是看 diff 那几秒,而是上下文在哪、怎么传。Twain 想解决的,恰好是这一段。仓库在 github.com/andunieee/twain,感兴趣的可以自己去看一眼,至少看看他那份需求清单,比很多产品 PR 稿实在得多。

相关链接