实时代码变更追踪,具备智能差异比对、Git 归因和即时通知功能。 单一二进制文件。零配置。全面可视化。
curl -fsSL https://0diff.dev/install.sh | sh
生产环境宕机了。你的团队争分夺秒地寻找变更原因。过去 24 小时内,6 个分支中的 47 个文件被修改。没人记得碰过数据库迁移文件。你逐个文件执行 git log。三个小时后,你终于找到一个没人标记过的配置文件中的一行变更。
你的代码昨天运行得完美无缺。今天,一个关键函数返回了错误的值。你什么都没改。但有人改了——一个 AI 助手重新格式化了一个文件,悄悄改变了一个缩进敏感的代码块。差异看起来像"空白清理",实际上是一个隐藏在表面之下的逻辑变更。
五名开发者在同一个模块上工作。合并后出现了回归问题。每个人都说没碰过那个文件。Git blame 显示的是一个合并提交——没有帮助。你需要知道谁在什么时候、在哪个分支上改了什么,在它被合并且历史被压缩之前。
你在不同终端中并行运行 5 个 Claude Code 代理。代理 3 决定"修复"一个工具函数,而代理 1、2、4 和 5 都依赖这个函数。所有代理都以你的名义提交。没有办法知道哪个代理修改了哪个文件,除非手动阅读每一个差异。
你的核心模块超过 5,000 行。经过多年精心调整的关键业务逻辑。一个初级开发者或 AI 助手在第 3,847 行做了一个小改动。没人审查,因为 PR 差异太大了。两周后,一个边界情况浮出水面。在该文件的 40 个变更中找出是哪个导致了问题,变成了一场考古挖掘。
有人在周五下午 4:58 推送了一个"快速修复"。没有审查,没有通知。周一早上:预发布环境无法启动。周末批处理任务因为一个变更的验证规则损坏了 10,000 条记录。如果有人在变更发生时收到实时通知,5 分钟就能修复。结果变成了周一早上的灾难。
使用 inotify (Linux)、FSEvents (macOS) 和 ReadDirectoryChanges (Windows) 进行原生操作系统级监控。去抖处理避免噪音。即时检测,零 CPU 开销。
Myers 算法计算精确的行级差异。可选择忽略仅空白变更、注释修改或低于可配置阈值的变更。只看真正重要的内容。
自动检测当前分支,对修改的行运行 git blame,并识别作者。准确了解谁更改了哪一行,甚至在提交之前。
将通知推送到 Slack(Block Kit 格式)、Discord Webhook 或任何 HTTP 端点。按文件分线程,保持频道整洁。在变更发生的那一刻就知道。
每个变更都记录到本地 JSON-lines 文件中。按作者、文件、日期范围或分支查询。完整的审计跟踪,无需依赖 git log 考古。
运行 0diff init 即开始监控。智能默认值处理忽略模式、扩展名和去抖。之后可通过简单的 TOML 文件自定义。适用于任何语言、任何项目。
将 0diff 作为后台守护进程运行,跨终端会话持续工作。启动一次,无需再管。你的团队看门狗始终在线。
获取定期摘要:"今天,3 位作者修改了 47 个文件。最常修改:parser.rs(12 次变更)。"为技术负责人和 CTO 提供的管理视图。
使用 Rust 编写。编译为不到 10MB 的单一静态二进制文件。无运行时、无依赖、无 node_modules。使用 curl 安装,随处运行。跨平台。
你使用 Copilot、Cursor、Claude Code。它们在你专注于其他地方时修改你的文件。你切换回来,发现有些东西不同了,但说不出哪里变了。你不断地 git diff 但总是忘记检查。几小时后,一个细微的 Bug 出现了,你完全不知道它是什么时候引入的。
使用 0diff,每个修改在发生的瞬间就会被记录。你可以看到确切的变更内容,即使是跨多个 AI 辅助会话。不再有"等等,这是我写的还是 AI 写的?"的困惑。
你在一个标签页中编辑 auth.rs。Copilot 在另一个标签页中自动补全了 utils.rs 中的一个函数。0diff 立即捕获并在终端通知中显示精确的差异——甚至在你切换标签页之前。
你的团队分布在 3 个时区。Alice 在你的凌晨 2 点重构了一个工具函数。Bob 在早上 8 点开始基于旧 API 开发。到中午,出现了一个需要 4 小时才能解开的冲突。Git 显示了合并冲突,但没有显示分歧开始的那一刻。
有了 0diff 推送到共享的 Slack 频道,每个开发者都能实时看到每一个变更。冲突被预防,而不仅仅是被解决。你的团队实时感知彼此的工作。
Alice 修改了 api/routes.rs。Bob 立即收到 Slack 通知,附带精确的差异。他在写出任何冲突代码之前就调整了方案。
作为技术负责人或 CTO,你不需要看每一行的变更。你需要知道:今天有哪些关键文件被修改了?有多少变更涉及生产敏感代码?新成员是否在接触不该接触的文件?
0diff 的每日摘要正好提供这些信息。按作者和文件分组的所有修改的定期汇总,附带频繁变更文件的热点检测。管理层的可视化,没有噪音。
"今天:5 位作者对 34 个文件进行了 127 次修改。热点:core/engine.rs(23 次变更)、db/migrations/(8 次变更)。标记:新成员接触了 security/auth.rs。"
数据库迁移。身份验证逻辑。支付处理。加密密钥。这些文件需要不同级别的警惕。对 payment_handler.rs 的一个未经审查的变更可能造成数百万的损失。对 .env.production 的一次静默修改可能泄露密钥。
0diff 允许你配置关键文件警报,带有提升的通知级别——不同的频道、更响亮的警报、强制审查触发器。对敏感路径的变更不可能被遗漏。
监控 db/migrations/*、security/*、.env*,立即向技术负责人发送 Slack 私信 + 向 #security-audit 发送 Discord 警报。对静默变更零容忍。
你使用 Copilot、Cursor、Claude Code、Codex。它们以你的名义在你的文件中编写代码,无需询问。传统工具是为人类是唯一作者的世界而构建的。0diff 是第一个为人类 + AI 代码库设计的工具。
检测已知 AI 工具(Claude、Cursor、Copilot)的模式。自动标记非人类变更,附带 标记。
在并行终端中运行 5 个代理?0diff 独立追踪每一个,并显示哪个代理修改了哪个文件。
当代理 A 修改了代理 B 依赖的文件时,0diff 立即发出警报——在级联故障开始之前。
| 功能 | git diff | watchexec | fswatch | 0diff |
|---|---|---|---|---|
| 实时文件监控 | ✗ | ✓ | ✓ | ✓ |
| 智能差异(显示变更内容) | ✓ | ✗ | ✗ | ✓ |
| 作者归因 | ✓ (手动) | ✗ | ✗ | ✓ |
| Slack / Discord 通知 | ✗ | ✗ | ✗ | ✓ |
| 可搜索的变更历史 | ✗ | ✗ | ✗ | ✓ |
| 空白 / 注释过滤 | ✓ (标志) | ✗ | ✗ | ✓ |
| AI 代理检测 | ✗ | ✗ | ✗ | ✓ |
| 单一二进制文件,零依赖 | ✓ | ✓ | ✓ (需编译) | ✓ |
| 后台守护进程模式 | ✗ | ✗ | ✗ | ✓ |