init-co-jp/diff-tour 是一个只读 TUI(终端 UI),按照资深工程师阅读代码的顺序引导浏览单个 git 变更。2026 年 11 月 2 日的提交 b47b39f 将 Pi 加入了用于编写导览的 LLM 列表。在设置界面中,如果 PATH 里存在 Pi 1.5 及以上的 1.x 版本,就把 Pi 作为可选项呈现,其他版本则显示为不支持。由于 Pi 可能会悄悄忽略它不认识的 long flag,这种做法可以事先排除缺少必要 flag 的旧版本。本次变更的规模为新增 692 行、删除 11 行,Pi 的实现以 internal/generate/pi.go、pi-guard.ts 和 pi_test.go 的形式新加入。源码为 https://github.com/init-co-jp/diff-tour/commit/b47b39f05ff66101a9066292e38d17b0cedda9db。
加入 Pi 时直接解决的问题是权限管理。Pi 没有权限或沙箱功能,因此即使只允许 read、grep、find、ls 这四种读取工具,路径限制也必须由 tour 这一侧来做。tour 通过 -e 加载它自己建在 export 目录之外临时位置上的扩展 pi-guard.ts,拒绝其他所有工具以及 export 目录之外的路径(..、绝对路径、~、符号链接)。它不读取用户的扩展、Pi 内置扩展、MCP 服务器、技能、提示词模板和 AGENTS.md,也不信任仓库中的 .pi 目录。它不保存会话,更新检查与下载、遥测全部关闭。登录信息和模型仍一如既往地从 ~/.pi/agent 获取。
不过,README 明确写明 Pi 支持处于试验阶段。在 Linux 上实际的 Pi 1.5.0 中确认了:用读取工具以一切可能的方式尝试读取 export 目录之外的内容,都会被拒绝;但把导览完整跑完的只有模拟既定行为的替身模型(TestPiGuard),通过 Pi 用真实模型完成导览的案例还不存在。守卫所依赖的扩展方式在下一个大版本中发生改变的可能性也依然存在。导览这项工作要求 LLM 不仅要读差异,还要读取变更周边的文件来生成说明,所以在只验证了只读行为的状态下就说说明质量也已得到保障,还为时过早。