LocalAlibiScan · Open source
Chaque affirmation a son alibi.
LocalAlibiScan vous dit ce qu'est chaque projet sur votre disque, où il en est et ce qui a changé — et prouve chaque affirmation par le fichier et la ligne d'où elle vient. Local, en lecture seule, et il n'exécute jamais votre code.
Comment ça marche
Pointez-le vers le dossier où vivent vos projets et vous obtenez une ligne par projet — type, stack, base de données, services externes, dernière modification et alertes :
$ las dashboard ~/code
Puis regardez un projet en détail. Chaque ligne est une affirmation avec un statut — ✓ confirmé, ≈ déduit, ⚠ contradiction, ? inconnu — et en dessous la preuve : le fichier, la ligne et son texte. Ici, le README dit une chose et le code en fait une autre :
$ las scan notes-api --only docs-vs-code --evidence
Documentation vs code
⚠ Documentation vs code: Documentation says PostgreSQL, code uses SQLite
└ README.md:8 - PostgreSQL for persistence
└ src/db/database.ts:1 import Database from 'better-sqlite3';
└ package.json:13 "better-sqlite3": "^9.4.0"
La sortie est en anglais par défaut et en portugais avec las --lang-ui pt — les faits sont les mêmes dans les deux langues.
Pourquoi LocalAlibiScan
- Des faits avec preuve. C'est le code qui extrait les faits — manifestes, imports, routes, chaînes de connexion. Une dépendance déclarée mais jamais utilisée reste « ≈ déduit », et non « utilise Redis ». Quand il ne sait pas, il affiche
?au lieu de deviner. - Tout le disque, pas un seul dépôt. Un tableau de bord de tous les projets d'un dossier — y compris les dossiers de scripts sans git — et un rapport HTML autonome qui s'ouvre hors ligne ou se partage.
- La documentation qui ment. Le README dit PostgreSQL, le code utilise SQLite : un ⚠ avec les deux preuves. Il ne modifie jamais rien.
- Les changements en langage d'architecture.
las refreshdit « + Service OpenAI », « + Nouvelle routeDELETE /notes/:id», « ⚠ le README ne mentionne pas encore OpenAI » — et non « +42 lignes ». Il fonctionne sans git. - Fonctionne sans IA. Tout l'essentiel est déterministe. Un modèle local (Ollama) est optionnel : il n'écrit qu'à partir des faits trouvés, chaque phrase doit les citer, et un validateur supprime celles qui ne le font pas.
- Terminal ou fenêtre. Toutes les commandes fonctionnent dans le terminal ;
las uimontre les mêmes faits et preuves dans une interface graphique locale, dans votre navigateur, qui n'écoute que sur cette machine. - En lecture seule, par construction. Il n'exécute jamais votre code, ne modifie jamais vos fichiers et ne va jamais sur internet. Il n'écrit que dans un dossier
.localalibi/, qui s'exclut lui-même de git.
Installation
Python 3.11 ou plus récent, sur macOS, Linux ou Windows :
$ pipx install localalibiscan
$ las dashboard ~/code --html
Ensuite las scan pour un projet, las refresh pour voir ce qui a changé, las ask pour poser une question, les preuves d'abord. Aucun modèle local n'est nécessaire.
Vous préférez une fenêtre ? Installez l'interface graphique optionnelle et ouvrez-la sur le même dossier :
$ pipx install 'localalibiscan[ui]'
$ las ui ~/code
Le tableau de bord, chaque affirmation avec ses preuves et les lignes autour, ce qui a changé, explain et ask — plus dans la documentation.
Open source
LocalAlibiScan est gratuit et open source (licence MIT). La documentation couvre toutes les commandes, et un rapport d'exemple a été réalisé avec des projets open source connus.