乐于分享
好东西不私藏

他花 3 天写了个工具,终于能「看见」AI 编程助手在你代码里干了什么

他花 3 天写了个工具,终于能「看见」AI 编程助手在你代码里干了什么

他花 3 天写了个工具,终于能「看见」AI 编程助手在你代码里干了什么

你是不是也有这种感觉?

Claude Code、Codex 这些 AI 编程助手确实能写代码,但它们的行为像黑箱——你只知道最终结果,却不知道 Agent 在你的代码仓库里是怎么「思考」的:它先看了哪些文件?在哪个模块徘徊最久?修改了哪些地方之后又后悔改回去了?

一段 AI 对话记录,就是几十上百行的 JSONL 日志,没人会逐行读。

一个 Go 程序员的想法

前两天 GitHub 上冒出一个项目叫 mindwalk(目前 480+ Star),作者 Ricko Yu 的想法很直白:

把仓库画成一张夜间地图,让 AI 助手的操作变成地图上流动的光。

Agent 在哪里搜索、读取、编辑,地图的对应区域就亮起来——其余的地方保持黑暗。AI 对任务的理解,变成了你一眼能看清的形状。

怎么做到的?

mindwalk 的架构很干净,拆成三个独立的部分:

1. 追踪(Trace) — 把 Claude Code 或 Codex 的会话日志,归一化为有序的「文件触摸事件」流(搜索、读取、编辑、验证)

2. 城市地图(Citymap) — 把你代码仓库的文件结构,计算成一个确定性的 3D 布局。同一个仓库每次生成相同的布局,这样不同 session 之间可以对比。

3. 前端渲染 — 用 React + Three.js 把上述两个数据结合在一起,生成可交互的 3D 场景。

关键设计原则:追踪和地图两者完全独立。适配器只负责解析日志,不关心渲染;地图生成不依赖回放逻辑;服务端只是简单地把两者拼起来。

所有数据处理在本地完成,你的会话数据不会离开你的机器

怎么用?

一条命令安装:

curl -fsSL https://raw.githubusercontent.com/cosmtrek/mindwalk/master/scripts/install.sh | sh
export PATH="$HOME/.local/bin:$PATH"
mindwalk

什么都不指定的话,它会自动扫描 ~/.claude/projects~/.codex/sessions 目录,在本地随机端口启动 Web UI 并打开浏览器。

主要命令:

命令 作用
mindwalk serve 启动 Web 服务,浏览所有 Agent 会话
mindwalk open <session.jsonl> 打开指定会话文件
mindwalk build <repo> 生成仓库的 3D 城市地图 JSON
mindwalk trace <session> 生成归一化的追踪 JSON

从地图上能读出什么?

mindwalk 把关键信息编码成视觉语言:

颜色编码:未访问的保持黑暗,已搜索的显示苔绿色,已读取的泛月光白,已编辑的发出暖琥珀色光
热度映射:文件被触及的深度和频率越高,地图上发光越强
播放控制:按空格播放/暂停,左右箭头逐帧步进,S 调速度,E 跳到下一个编辑点,X 跳到下一个错误点
冷热光谱:时间轴上的柱子按冷色调(搜索、读取)和暖色调(编辑、验证)区分——编辑阶段一眼就能看出来
检查器:点击任意文件,可以看到这个文件被访问的完整历史

和同类工具有什么区别?

目前市面上几乎没有直接对标的产品。最接近的可能是:

Vercel AI SDK 的调试面板 — 能看 AI 调用链,但不关注代码仓库结构
Sourcegraph Cody — 能解释代码,但不回放 Agent 行为
Windsurf 的 Flow 视图 — 有一定的可视化,但只在自家 IDE 内

mindwalk 的独特之处在于它不依赖任何 IDE 或框架——它是一个独立的 Go 二进制文件,解析的是日志文件,Claude Code 和 Codex 的日志都能用。

坦白说

这个项目还很新(7 月 9 日才创建),目前只支持 Claude Code 和 Codex 两种 Agent,功能也主要集中在「回放可视化」上。

不过,如果你在用 AI 编程助手写代码,尤其是做大型重构或复杂功能开发时,mindwalk 能帮你回答一个很关键的问题:

「AI 到底有没有理解我的代码仓库?」

项目地址:https://github.com/cosmtrek/mindwalk

安装前确保已安装 Go(用来编译)或直接从 Releases 下载二进制。依赖只有 makegit,一次构建,随处运行。