Open Source · Licencia MIT · Un solo binario

Sabe quién cambió qué.
Incluso cuando no es humano.

Rastreo de modificaciones de código en tiempo real con diffs inteligentes, atribución de git y notificaciones instantáneas. Un solo binario. Cero configuración. Visibilidad total.

Instalar 0diff Ver en GitHub
$ curl -fsSL https://0diff.dev/install.sh | sh copiar
0diff watch — ~/project/flin
$ 0diff watch
▸ Watching 847 files across 23 directories...
▸ Git: main branch, 3 contributors tracked
 
[14:32:05] src/parser.rs +12 -3 (alice on feature/parser)
@@ -45,3 +45,12 @@
- fn parse_expression(&mut self) -> Result<Expr> {
+ fn parse_expression(&mut self, precedence: u8) -> Result<Expr> {
+ let left = self.parse_primary()?;
 
[14:33:41] src/typechecker/checker.rs +47 -2 ( Claude Agent on fix/enum-collision)
@@ -189,2 +189,49 @@
+ // Resolve enum variant / entity name collision
+ fn resolve_name_shadowing(&mut self, scope: &Scope) {
 
→ Slack #dev-changes notified
→ Discord #code-watch notified

Todos los equipos han vivido esta pesadilla.
Los cambios sin rastrear en bases de código complejas cuestan días de depuración, fechas incumplidas y confianza rota. Estas historias ocurren todos los días.

La caída de producción a las 3 AM

Producción está caída. Tu equipo se apresura a buscar qué cambió. 47 archivos fueron modificados en 6 ramas en las últimas 24 horas. Nadie recuerda haber tocado el archivo de migración de base de datos. Haces git log archivo por archivo. Tres horas después, encuentras un cambio de una línea en un archivo de configuración que nadie marcó.

"Who touched the connection pool settings? Nobody remembers. git blame says it was merged 3 days ago buried in a 200-file PR."

La modificación fantasma

Tu código funcionaba perfectamente ayer. Hoy, una función crítica devuelve valores incorrectos. Tú no cambiaste nada. Pero alguien sí — un asistente de IA reformateó un archivo y cambió silenciosamente un bloque sensible a la indentación. El diff parecía "limpieza de espacios en blanco". En realidad era un cambio de lógica oculto a simple vista.

"Cursor auto-formatted my Python file. It looked cosmetic. It changed the indentation of a nested if-block. Took us 2 days to find it."

El problema del "Yo no fui"

Cinco desarrolladores trabajando en el mismo módulo. Aparece una regresión después de un merge. Todos dicen que no tocaron ese archivo. Git blame muestra un merge commit — inútil. Necesitas saber quién cambió qué, cuándo y en qué rama, antes de que se hiciera merge y el historial se comprimiera.

"After squash merge, git blame shows one author for 500 lines. The actual modification that broke things? Lost in the squash."

El agente de IA rebelde

Estás ejecutando 5 agentes Claude Code en paralelo en diferentes terminales. El agente 3 decide "arreglar" una función utilitaria de la que dependen los agentes 1, 2, 4 y 5. Todo se rompe. Cada agente hace commit bajo tu nombre. No hay forma de saber qué agente cambió qué archivo sin leer cada diff manualmente.

"I had 100 agents spawned on a complex Rust project. One agent refactored a shared module. 4 other agents started failing silently. I didn't know for 45 minutes."

El archivo de 5,000 líneas que nadie lee

Tu módulo principal tiene más de 5,000 líneas. Lógica de negocio crítica, cuidadosamente equilibrada durante años. Un desarrollador junior o un asistente de IA hace un pequeño cambio en la línea 3,847. Nadie lo revisa porque el diff del PR es demasiado grande. Se despliega. Dos semanas después, aparece un caso extremo. Encontrar cuál de los 40 cambios en ese archivo lo causó se convierte en una excavación arqueológica.

"We have a 7,000 line legacy controller. We literally cannot review every change to it. We just pray."

La sorpresa del viernes a las 5 PM

Alguien hizo push de un "arreglo rápido" a las 4:58 PM del viernes. Sin revisión, sin notificación. Lunes por la mañana: el entorno de staging no arranca. El trabajo por lotes del fin de semana corrompió 10,000 registros por una regla de validación modificada. Si alguien hubiera sido notificado en tiempo real, habría sido un arreglo de 5 minutos. En cambio, es un desastre del lunes por la mañana.

"If I had gotten a Slack notification when that file changed, I would have caught it in 30 seconds. Instead it cost us the whole weekend's data."
El costo real
Los cambios sin rastrear no solo causan bugs.
Cuestan dinero real.
23%
del tiempo de desarrollo dedicado a depurar problemas causados por modificaciones sin rastrear
4.2h
tiempo promedio para identificar la causa raíz de una regresión relacionada con cambios
$680K
costo anual promedio por equipo de ingeniería por incidentes prevenibles relacionados con cambios
67%
de los incidentes en producción se remontan a un cambio de código que evitó la revisión adecuada

Visibilidad en tiempo real de cada cambio.
Antes de que se convierta en un problema.
0diff observa tu base de código, calcula diffs inteligentes, identifica quién hizo cada cambio y notifica a tu equipo al instante. Todo en un solo binario.

Monitoreo de archivos en tiempo real

Monitoreo nativo a nivel de SO usando inotify (Linux), FSEvents (macOS) y ReadDirectoryChanges (Windows). Con debounce para evitar ruido. Detección instantánea, cero uso de CPU.

0diff watch

Motor de diff inteligente

El algoritmo de Myers calcula diffs precisos a nivel de línea. Opcionalmente ignora cambios solo de espacios en blanco, modificaciones de comentarios o cambios por debajo de un umbral configurable. Observa lo que realmente importa.

filter.ignore_whitespace = true

Atribución de Git

Detecta automáticamente la rama actual, ejecuta git blame en las líneas modificadas e identifica al autor. Sabe exactamente quién cambió cada línea, incluso antes del commit.

0diff log --author "alice"

Notificaciones instantáneas

Envía notificaciones a Slack (formato Block Kit), webhooks de Discord o cualquier endpoint HTTP. Organiza por archivo para mantener los canales limpios. Enterate al instante cuando algo cambie.

0diff test

Historial consultable

Cada cambio se registra en un archivo local JSON-lines. Consulta por autor, archivo, rango de fechas o rama. Pista de auditoría completa sin depender de la arqueología de git log.

0diff log --file "parser.rs"

Cero configuración

Ejecuta 0diff init y ya estás monitoreando. Los valores predeterminados inteligentes manejan patrones de exclusión, extensiones y debouncing. Personaliza después con un archivo TOML simple. Funciona con cualquier lenguaje, cualquier proyecto.

0diff init

Daemon en segundo plano

Ejecuta 0diff como un daemon en segundo plano que persiste entre sesiones de terminal. Inicíalo una vez, olvídate de él. El guardián de tu equipo siempre está activo.

0diff watch --daemon

Resumen diario

Recibe resúmenes periódicos: "Hoy, 47 archivos modificados por 3 autores. Más tocado: parser.rs (12 cambios)." La vista ejecutiva para líderes técnicos y CTOs.

notifications.digest.interval_hours = 4

Un solo binario

Escrito en Rust. Se compila a un único binario estático de menos de 10 MB. Sin runtime, sin dependencias, sin node_modules. Instala con curl, ejecuta en cualquier lugar. Multiplataforma.

curl -fsSL 0diff.dev/install.sh | sh

Hecho para tu forma real de trabajar.
Ya seas un desarrollador individual, un equipo distribuido o estés gestionando un ejército de agentes de IA.

Desarrollas solo. Pero ya no estás solo.

Usas Copilot, Cursor, Claude Code. Escriben código en tus archivos mientras te concentras en otra cosa. Vuelves a la pestaña y algo es diferente pero no sabes qué. Haces git diff constantemente pero te olvidas de revisar. Horas después, aparece un bug sutil y no tienes idea de cuándo fue introducido.

Con 0diff, cada modificación se registra en el instante en que ocurre. Ves exactamente qué cambió, incluso entre múltiples sesiones asistidas por IA. Se acabó el "espera, ¿eso lo escribí yo o la IA?"

Escenario

Estás editando auth.rs en una pestaña. Copilot autocompleta una función en utils.rs en otra. 0diff lo detecta de inmediato y te muestra el diff exacto con una notificación en terminal — antes de que siquiera cambies de pestaña.

0diff — solo workflow
[09:14:22] src/auth.rs +3 -1 (you)
+ let token = jwt::encode(&claims)?;
 
[09:14:23] src/utils.rs +18 -0 ( Copilot)
+ pub fn validate_token(token: &str)
+ -> Result<Claims, AuthError> {
+ let decoded = jwt::decode(
+ token, &KEY, &Validation::default()
+ )?;
...
 
ℹ 2 files changed in last 5 min

5 desarrolladores. 200 archivos. Nadie sabe qué está tocando el otro.

Tu equipo está distribuido en 3 zonas horarias. Alice refactoriza una función utilitaria a las 2 AM de tu hora. Bob empieza a construir sobre la API antigua a las 8 AM. Al mediodía, hay un conflicto que toma 4 horas deshacer. Git muestra el conflicto de merge. No muestra el momento en que empezó la divergencia.

Con 0diff enviando a un canal compartido de Slack, cada desarrollador ve cada cambio conforme sucede. Los conflictos se previenen, no solo se resuelven. Tu equipo toma conciencia del trabajo de los demás en tiempo real.

Escenario

Alice modifica api/routes.rs. Bob recibe una notificación de Slack al instante con el diff exacto. Ajusta su enfoque antes de escribir una sola línea conflictiva.

#dev-changes — Slack
┌─────────────────────────────────────┐
alice modified api/routes.rs
feature/v2-endpoints
+22 -8 lines · 3 hunks │
- GET /api/users/:id
+ GET /api/v2/users/:id
Bob also has this file open
└─────────────────────────────────────┘

Necesitas la visión general, no cada diff.

Como líder técnico o CTO, no necesitas ver cada cambio de línea. Necesitas saber: ¿qué archivos críticos se modificaron hoy? ¿Cuántos cambios afectaron código sensible de producción? ¿El nuevo integrante está tocando archivos que no debería?

El resumen diario de 0diff te da exactamente eso. Un resumen periódico de todas las modificaciones, agrupadas por autor y archivo, con detección de puntos calientes para archivos que cambian frecuentemente. Visibilidad ejecutiva sin el ruido.

Ejemplo de resumen diario

"Hoy: 127 modificaciones en 34 archivos por 5 autores. Puntos calientes: core/engine.rs (23 cambios), db/migrations/ (8 cambios). Alerta: un nuevo colaborador tocó security/auth.rs."

0diff log --summary
═══ Daily Summary — Feb 14, 2026 ═══
 
Authors:
alice +342 -89 │ 14 files
bob +127 -43 │ 8 files
agent-3 +891 -202 │ 12 files
 
Hotspots:
core/engine.rs │ 23 changes │ HIGH
db/schema.rs │ 8 changes │ MEDIUM
security/auth.rs │ 3 changes │ SENSITIVE

Algunos archivos no pueden permitirse cambios silenciosos.

Migraciones de base de datos. Lógica de autenticación. Procesamiento de pagos. Claves de cifrado. Estos archivos necesitan un nivel diferente de vigilancia. Un solo cambio no revisado en payment_handler.rs puede costar millones. Una modificación silenciosa a .env.production puede exponer secretos.

0diff te permite configurar alertas de archivos críticos con notificaciones elevadas — canales diferentes, alertas más fuertes, activadores de revisión obligatoria. Los cambios en rutas sensibles son imposibles de pasar por alto.

Ejemplo de configuración

Monitorea db/migrations/*, security/*, .env* con DM instantáneo de Slack al líder técnico + alerta de Discord a #security-audit. Cero tolerancia a cambios silenciosos.

.0diff.toml — critical paths
# Critical file monitoring
[[watch.critical]]
paths = ["db/migrations/", "security/"]
alert_level = "urgent"
notify = ["slack-dm:@cto", "discord:#security"]
 
[[watch.critical]]
paths = [".env*", "secrets/"]
alert_level = "critical"
notify = ["slack-dm:@cto", "webhook:pagerduty"]
block_unreviewed = true

Hecho para la era del
desarrollo asistido por IA.

Usas Copilot, Cursor, Claude Code, Codex. Escriben código en tus archivos, bajo tu nombre, sin preguntar. Las herramientas tradicionales fueron creadas para un mundo donde los humanos eran los únicos autores. 0diff es la primera herramienta diseñada para bases de código humano + IA.

Detección de agentes

Detecta patrones de herramientas de IA conocidas (Claude, Cursor, Copilot). Marca cambios no humanos automáticamente con un indicador .

Rastreo multiagente

¿Ejecutando 5 agentes en terminales paralelas? 0diff rastrea cada uno de forma independiente y muestra qué agente modificó qué archivo.

Detección de colisiones

Cuando el agente A modifica un archivo del que depende el agente B, 0diff alerta de inmediato — antes de que comiencen las fallas en cascada.

Comparación
¿Por qué no simplemente usar git diff?
Puedes hacerlo. Pero esto es lo que te perderás.
Capacidad git diff watchexec fswatch 0diff
Monitoreo de archivos en tiempo real
Diff inteligente (mostrar qué cambió)
Atribución de autor (manual)
Notificaciones Slack / Discord
Historial de cambios consultable
Filtrado de espacios / comentarios (flags)
Detección de agentes de IA
Un solo binario, cero dependencias (compilar)
Modo daemon en segundo plano

Instala en 10 segundos. Monitorea en 20.
Un solo binario. Sin dependencias. Sin runtime. Sin complicaciones.

Instalación rápida (macOS / Linux)

curl -fsSL https://0diff.dev/install.sh | sh copiar

Compilar desde el código fuente

git clone https://github.com/zerosuite-inc/0diff.git && cd 0diff && cargo install --path . copiar

Cargo (desde GitHub)

cargo install --git https://github.com/zerosuite-inc/0diff.git copiar

Desinstalar

rm $(which 0diff) copiar

Un solo binario, sin archivos de configuración fuera de tu proyecto. Elimina el binario y listo.

First run
$ cd my-project
$ 0diff init
✓ Created .0diff.toml with smart defaults
✓ Detected: Rust project, 847 files
 
$ 0diff watch
▸ Watching 847 files...
▸ Ready. Edit a file to see 0diff in action.

Deja de adivinar.
Empieza a monitorear.

Open source. Gratis para siempre. Hecho con Rust.
Un producto de ZeroSuite.

Instalar 0diff Dar estrella en GitHub