Open Source · Licence MIT · Binaire unique

Sachez qui a modifié quoi.
Même quand ce n'est pas humain.

Suivi en temps réel des modifications de code avec des diffs intelligents, l'attribution git et des notifications instantanées. Un seul binaire. Zéro configuration. Visibilité totale.

Installer 0diff Voir sur GitHub
$ curl -fsSL https://0diff.dev/install.sh | sh copier
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 notifié
→ Discord #code-watch notifié

Chaque équipe a vécu ce cauchemar.
Les modifications non suivies dans des codebases complexes coûtent aux équipes des jours de débogage, des délais manqués et une confiance brisée. Ces histoires arrivent chaque jour.

Le crash de production à 3 h du matin

La production est en panne. Votre équipe se démène pour trouver ce qui a changé. 47 fichiers ont été modifiés sur 6 branches au cours des dernières 24 heures. Personne ne se souvient avoir touché le fichier de migration de base de données. Vous faites git log sur chaque fichier un par un. Trois heures plus tard, vous trouvez une modification d'une seule ligne dans un fichier de configuration que personne n'avait signalée.

"Qui a touché les paramètres du pool de connexions ? Personne ne s'en souvient. git blame dit que ça a été mergé il y a 3 jours, enfoui dans une PR de 200 fichiers."

La modification fantôme

Votre code fonctionnait parfaitement hier. Aujourd'hui, une fonction critique retourne des valeurs erronées. Vous n'avez rien changé. Mais quelqu'un l'a fait -- un assistant IA a reformaté un fichier et modifié silencieusement un bloc sensible à l'indentation. Le diff ressemblait à un « nettoyage d'espaces ». C'était en fait une modification de logique cachée en pleine vue.

"Cursor a auto-formaté mon fichier Python. Ça semblait cosmétique. Ça a changé l'indentation d'un bloc if imbriqué. Il nous a fallu 2 jours pour le trouver."

Le problème du « C'est pas moi »

Cinq développeurs travaillent sur le même module. Une régression apparaît après un merge. Tout le monde dit n'avoir pas touché ce fichier. Git blame montre un commit de merge -- inutile. Vous avez besoin de savoir qui a modifié quoi, quand, et sur quelle branche, avant que ce soit mergé et que l'historique soit écrasé.

"Après un squash merge, git blame montre un seul auteur pour 500 lignes. La modification qui a tout cassé ? Perdue dans le squash."

L'agent IA incontrôlé

Vous exécutez 5 agents Claude Code en parallèle dans différents terminaux. L'agent 3 décide de « corriger » une fonction utilitaire dont les agents 1, 2, 4 et 5 dépendent tous. Tout casse. Chaque agent fait ses commits sous votre nom. Il n'y a aucun moyen de savoir quel agent a modifié quel fichier sans lire chaque diff manuellement.

"J'avais 100 agents lancés sur un projet Rust complexe. Un agent a refactorisé un module partagé. 4 autres agents ont commencé à échouer silencieusement. Je ne l'ai su qu'au bout de 45 minutes."

Le fichier de 5 000 lignes que personne ne lit

Votre module principal fait plus de 5 000 lignes. De la logique métier critique, soigneusement équilibrée au fil des années. Un développeur junior ou un assistant IA fait une petite modification à la ligne 3 847. Personne ne la vérifie car le diff de la PR est trop volumineux. Ça part en production. Deux semaines plus tard, un cas limite apparaît. Trouver laquelle des 40 modifications dans ce fichier l'a causé devient une fouille archéologique.

"Nous avons un contrôleur legacy de 7 000 lignes. Nous ne pouvons littéralement pas vérifier chaque modification. On prie, c'est tout."

La surprise du vendredi 17 h

Quelqu'un a poussé un « correctif rapide » à 16 h 58 un vendredi. Pas de revue, pas de notification. Lundi matin : l'environnement de staging ne démarre plus. Le batch du week-end a corrompu 10 000 enregistrements à cause d'une règle de validation modifiée. Si quelqu'un avait été notifié en temps réel, ça aurait été une correction de 5 minutes. Au lieu de ça, c'est un désastre du lundi matin.

"Si j'avais reçu une notification Slack quand ce fichier a changé, je l'aurais repéré en 30 secondes. Au lieu de ça, ça nous a coûté toutes les données du week-end."
Le coût réel
Les modifications non suivies ne causent pas que des bugs.
Elles coûtent de l'argent réel.
23 %
du temps des développeurs passé à déboguer des problèmes causés par des modifications non suivies
4,2 h
temps moyen pour identifier la cause première d'une régression liée à une modification
680 K$
coût annuel moyen par équipe d'ingénieurs pour des incidents évitables liés aux modifications
67 %
des incidents de production remontent à une modification de code n'ayant pas été correctement vérifiée

Visibilité en temps réel sur chaque modification.
Avant qu'elle ne devienne un problème.
0diff surveille votre codebase, calcule des diffs intelligents, identifie l'auteur de chaque modification et notifie votre équipe instantanément. Le tout dans un seul binaire.

Surveillance en temps réel

Surveillance native au niveau de l'OS via inotify (Linux), FSEvents (macOS) et ReadDirectoryChanges (Windows). Débouncing intégré pour éviter le bruit. Détection instantanée, zéro surcharge CPU.

0diff watch

Moteur de diff intelligent

L'algorithme Myers calcule des diffs précis ligne par ligne. Possibilité d'ignorer les modifications d'espaces, de commentaires ou les changements en dessous d'un seuil configurable. Voyez ce qui compte vraiment.

filter.ignore_whitespace = true

Attribution Git

Détecte automatiquement la branche courante, exécute git blame sur les lignes modifiées et identifie l'auteur. Sachez exactement qui a modifié chaque ligne, même avant le commit.

0diff log --author "alice"

Notifications instantanées

Notifications push vers Slack (format Block Kit), webhooks Discord ou tout endpoint HTTP. Regroupement par fichier pour garder les canaux propres. Soyez informé dès qu'un changement survient.

0diff test

Historique consultable

Chaque modification est enregistrée dans un fichier JSON-lines local. Recherche par auteur, fichier, plage de dates ou branche. Piste d'audit complète sans dépendre de l'archéologie du git log.

0diff log --file "parser.rs"

Zéro configuration

Lancez 0diff init et la surveillance démarre. Des valeurs par défaut intelligentes gèrent les patterns d'exclusion, les extensions et le debouncing. Personnalisez ensuite avec un simple fichier TOML. Fonctionne avec tous les langages, tous les projets.

0diff init

Démon en arrière-plan

Exécutez 0diff en tant que démon en arrière-plan qui persiste entre les sessions de terminal. Démarrez une fois, oubliez-le. Le chien de garde de votre équipe est toujours en service.

0diff watch --daemon

Résumé quotidien

Recevez des résumés périodiques : « Aujourd'hui, 47 fichiers modifiés par 3 auteurs. Le plus touché : parser.rs (12 modifications). » La vue synthétique pour les tech leads et les CTO.

notifications.digest.interval_hours = 4

Binaire unique

Écrit en Rust. Compilé en un seul binaire statique de moins de 10 Mo. Pas de runtime, pas de dépendances, pas de node_modules. Installation avec curl, exécution partout. Multiplateforme.

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

Conçu pour votre manière de travailler.
Que vous soyez un développeur solo, une équipe distribuée ou que vous gériez une armée d'agents IA.

Vous développez seul. Mais vous n'êtes plus seul.

Vous utilisez Copilot, Cursor, Claude Code. Ils écrivent du code dans vos fichiers pendant que vous êtes concentré ailleurs. Vous revenez sur l'onglet et quelque chose a changé, mais vous ne pouvez pas dire quoi. Vous lancez git diff sans arrêt mais oubliez de vérifier. Des heures plus tard, un bug subtil apparaît et vous n'avez aucune idée de quand il a été introduit.

Avec 0diff, chaque modification est enregistrée dès qu'elle se produit. Vous voyez exactement ce qui a changé, même sur plusieurs sessions assistées par IA. Plus jamais de « Attends, c'est moi qui ai écrit ça ou c'est l'IA ? »

Scénario

Vous modifiez auth.rs dans un onglet. Copilot auto-complète une fonction dans utils.rs dans un autre. 0diff le détecte immédiatement et vous montre le diff exact avec une notification dans le terminal -- avant même que vous ne changiez d'onglet.

0diff — workflow solo
[09:14:22] src/auth.rs +3 -1 (vous)
+ 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 fichiers modifiés ces 5 dernières min

5 développeurs. 200 fichiers. Personne ne sait ce que les autres touchent.

Votre équipe est distribuée sur 3 fuseaux horaires. Alice refactorise une fonction utilitaire à 2 h du matin pour vous. Bob commence à construire sur l'ancienne API à 8 h. À midi, il y a un conflit qui prend 4 heures à démêler. Git montre le conflit de merge. Il ne montre pas le moment où la divergence a commencé.

Avec 0diff publiant dans un canal Slack partagé, chaque développeur voit chaque modification en temps réel. Les conflits sont prévenus, pas juste résolus. Votre équipe prend conscience du travail des autres en temps réel.

Scénario

Alice modifie api/routes.rs. Bob reçoit une notification Slack instantanément avec le diff exact. Il ajuste son approche avant d'écrire une seule ligne conflictuelle.

#dev-changes — Slack
┌─────────────────────────────────────┐
alice a modifié api/routes.rs
feature/v2-endpoints
+22 -8 lignes · 3 hunks │
- GET /api/users/:id
+ GET /api/v2/users/:id
Bob a aussi ce fichier ouvert
└─────────────────────────────────────┘

Vous avez besoin de la vue d'ensemble, pas de chaque diff.

En tant que tech lead ou CTO, vous n'avez pas besoin de voir chaque modification de ligne. Vous avez besoin de savoir : quels fichiers critiques ont été modifiés aujourd'hui ? Combien de modifications ont touché du code sensible en production ? Est-ce que le nouveau développeur touche à des fichiers qu'il ne devrait pas ?

Le résumé quotidien de 0diff vous donne exactement cela. Un résumé périodique de toutes les modifications, groupées par auteur et fichier, avec détection des points chauds pour les fichiers fréquemment modifiés. Visibilité de direction sans le bruit.

Exemple de résumé quotidien

« Aujourd'hui : 127 modifications sur 34 fichiers par 5 auteurs. Points chauds : core/engine.rs (23 modifications), db/migrations/ (8 modifications). Signalé : un nouveau contributeur a touché 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

Certains fichiers ne peuvent pas se permettre de modifications silencieuses.

Migrations de base de données. Logique d'authentification. Traitement des paiements. Clés de chiffrement. Ces fichiers exigent un niveau de vigilance supérieur. Une seule modification non vérifiée dans payment_handler.rs peut coûter des millions. Une modification silencieuse de .env.production peut exposer des secrets.

0diff vous permet de configurer des alertes pour les fichiers critiques avec des notifications élevées -- canaux différents, alertes plus visibles, déclencheurs de revue obligatoire. Les modifications sur les chemins sensibles sont impossibles à manquer.

Exemple de configuration

Surveiller db/migrations/*, security/*, .env* avec DM Slack immédiat au tech lead + alerte Discord dans #security-audit. Zéro tolérance pour les modifications silencieuses.

.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

Conçu pour l'ère du
développement assisté par IA.

Vous utilisez Copilot, Cursor, Claude Code, Codex. Ils écrivent du code dans vos fichiers, sous votre nom, sans demander. Les outils traditionnels ont été conçus pour un monde où les humains étaient les seuls auteurs. 0diff est le premier outil conçu pour les codebases humain + IA.

Détection d'agents

Détecte les patterns des outils IA connus (Claude, Cursor, Copilot). Signale automatiquement les modifications non humaines avec un marqueur .

Suivi multi-agents

Vous exécutez 5 agents en parallèle dans des terminaux différents ? 0diff suit chacun indépendamment et montre quel agent a modifié quel fichier.

Détection de collisions

Quand l'Agent A modifie un fichier dont l'Agent B dépend, 0diff alerte immédiatement -- avant que les échecs en cascade ne commencent.

Comparaison
Pourquoi ne pas simplement utiliser git diff ?
Vous pouvez. Mais voici ce que vous manquerez.
Fonctionnalité git diff watchexec fswatch 0diff
Surveillance en temps réel
Diff intelligent (voir ce qui a changé)
Attribution d'auteur (manuel)
Notifications Slack / Discord
Historique des modifications consultable
Filtrage espaces / commentaires (flags)
Détection d'agents IA
Binaire unique, zéro dépendance (compile)
Mode démon en arrière-plan

Installation en 10 secondes. Surveillance en 20.
Binaire unique. Pas de dépendances. Pas de runtime. Pas de superflu.

Installation rapide (macOS / Linux)

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

Compiler depuis les sources

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

Cargo (depuis GitHub)

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

Désinstaller

rm $(which 0diff) copier

Binaire unique, aucun fichier de configuration en dehors de votre projet. Supprimez le binaire et c'est terminé.

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.

Arrêtez de deviner.
Commencez à surveiller.

Open source. Gratuit pour toujours. Construit en Rust.
Un produit ZeroSuite.

Installer 0diff Star sur GitHub