Wy:用 Rust 编写的终端工具,把 Git diff 与 Codex / Claude Code 对话关联起来审查 AI 生成代码
Show HN: Wy – a Rust terminal tool for understanding AI-generated code
Wy 是一款 Rust 终端工具,把 Git diff 与保存的 Codex 或 Claude Code 对话关联,让开发者同时查看代码改动与智能体给出的理由。
用于审查 AI 生成代码的终端工具。
查看变更。阅读理由。打开证据。
将 Git 差异与保存的 Codex 或 Claude Code 对话关联起来,并请求带有可检查来源的解释。
你的智能体添加了一个缓存。为什么需要它,当缓存数据发生变化时会发生什么? wy 将代码和相关对话带入同一次审查中,以便你可以检查所述理由并调查权衡。
当前 UI 及示例数据。选择一个文件以同时查看其变更和保存的智能体笔记。
开始使用
直接从 GitHub 安装,需要 Rust 1.88+、Git 和 C 工具链:
cargo install --git https://github.com/grandimam/wy --locked wy-code
打开一个你一直在处理的仓库:
cd /path/to/your/repo
wywy 会自动加载你的变更和匹配的智能体历史记录。
- 使用 ↑ / ↓ 或点击选择一个文件,以查看其变更和可用的智能体笔记。
- 当你需要更多上下文时,按 e 来丰富解释。它运行时你可以继续浏览;当你可以返回时,文件会显示就绪。
- 按 s,使用 ↑ / ↓ 选择一个来源,然后按 Enter 检查证据。你也可以直接点击一个来源。
Tab 切换窗格 · Esc 返回 · i 提出后续问题 · ? 打开帮助 · q 退出。
Codex 是默认的应答智能体;输入 /agent claude 进行切换。丰富解释需要所选 CLI 已安装并登录。变更、智能体笔记和保存的证据可离线使用。
证据如何被捕获和解释
- 读取现有会话日志。 像往常一样使用 Codex 或 Claude Code。当你打开 wy 时,它会发现记录的工作目录属于你的仓库的本地日志。你无需在编码前启动 wy 记录器。
- 将代码和上下文保持在一起。 wy 读取 Git 差异和源文件,并导入可见消息、工具调用和结果。支持的编辑记录即使在提交后也会保留会话代码。摘录在本地
.wy/工件中保留其文件、会话和事件引用。 - 在你询问时进行解释。 按 w 让你已安装的智能体 CLI 选择相关代码,并使用有界、脱敏的代码、差异和对话摘录进行解释。wy 检查引用是否指向提供的证据,以及记录的理由是否包含精确保存的助手引文。
配置缓存的示例解释:
记录的理由: “我缓存了
load_config以避免在每个请求上读取相同的配置文件。”[1]实现:
load_config现在使用@lru_cache(maxsize=128)来为相同参数重用结果。[2]接下来检查: 如果配置文件在进程运行时发生变化,下一次调用是否应该看到新内容?
打开像 [1] 这样的引用会显示保存的助手消息和周围的对话;[2] 显示支持代码。答案是对该证据的新评估。wy 会将其与来源一起保存,并在你重新打开时标记后续代码变更。
有关日志位置和捕获限制,请参阅项目历史。
你可以质疑的证据
wy 将已陈述的内容、推断的内容和未知的内容区分开来。
| 状态 | 含义 |
|---|---|
| 已记录 | 在智能体可观察的记录中找到了相关的、明确的依据。 |
| 已推断 | 仓库证据支持某一假设;假设仍然可见。 |
| 未解释 | 该选择是可见的,但其动机并未由现有证据确立。 |
已记录的陈述仍可能是错误的。关联的会话并不能证明作者身份。新的模型评估与原始依据保持分离,且绝不会将其升级为已记录。
默认本地运行。需要时使用 AI。
| 模式 | 运行内容 | 所需条件 |
|---|---|---|
离线审查 · wy review、wy explain、wy ask |
本地检测、证据检索和缓存调查。无模型或网络请求。 | 一个 Git 仓库。 |
智能体解释 · wy reason、wy why、应用内 /reason、/why 或 /ask |
你安装的 Codex 或 Claude CLI 接收有界的、经过脱敏的证据,并返回一份新的评估。 | 所选的 CLI、登录状态和可用的账户用量。 |
可选的模型增强 · --model |
配置好的 Ollama 兼容端点会增强检测到的决策或回答后续问题。 | 显式配置的模型和端点。 |
wy 不会修改应用源代码,也不会执行它所审查的代码。审查结果、源代码快照和规范化对话摘录都保存在本地 .wy/ 产物中,除非你明确请求模型处理。私有推理内容被排除。脱敏为尽力而为;本地产物未加密。在分享仓库之前,请将 .wy/ 添加到你的仓库的 .gitignore 中。
有关 Ollama 配置以及由现有编码对话提供的评估,请参阅模型设置与反思工作流。
实验性状态
wy 是实验性软件(0.2.0)。其界面、命令和保存的产物格式仍在演进。请将其解释作为调查的起点,并对照所引用的代码和对话核实重要论断。
离线检测有意保持选择性,每次审查最多十二项决策。它涵盖缓存、依赖版本、运行限制、数据库模式和重试等模式;它不会发现所有架构决策。Rust、JavaScript、TypeScript 和 JSON 使用 tree-sitter 语法导航;其他文本文件使用行锚点。检索是词法层面的,引用需要人工判断。
开发
从检出目录开始:
cargo check --locked
cargo test --locked自动化检查验证的是回归,而非真实世界的准确性。其范围请参阅评估。
命令指南 · 发布设置 · 架构与限制 · 安全边界 · Codex 格式支持
依据MIT许可授权。
来源:Hacker News · github.com

