Pour les codes qui existent déjà.

“Can I clean here?”

Auditez ce qui est déjà là.
Restez à jour au fil des changements.

Comme un relecteur senior qui doit toujours étayer son verdict.

Lancez-le une fois sur votre dépôt : un verdict, un tableau de santé sur 7 axes, des constats qui pointent fichier + ligne + preuve - chacun étayé par grep, lecture de fichiers et index sémantique local. Ensuite, restez dans votre IDE : incrémental, zéro coût sur les fichiers inchangés.

Trois façons de vous authentifier auprès de vos fournisseurs d’IA- sans verrouillage
abonnementsClaude Code·Gemini CLI
clé apiAnthropic · OpenAI · Google · Mistral · xAI · Groq · …
localOllama·LM Studio·vLLM
~/votre-projet - anatoly
$ npx anatoly run

    ___                __        __
   /   |  ____  ____ _/ /_____  / /_  __
  / /| | / __ \/ __ `/ __/ __ \/ / / / /
 / ___ |/ / / / /_/ / /_/ /_/ / / /_/ /
/_/  |_/_/ /_/\__,_/\__/\____/_/\__, /  [v0.9.4]
                               /____/   "Heavy!"
============================================

Pipeline
────────────────────────────
 Embedding code                        done
 LLM summaries & embedding             done
 Chunking project docs                 done
 Chunking internal docs                done
 Reviewing files                42 findings
 Deliberation                  12 confirmed
 Updating internal docs                done
 Generating report                     done

Done - 22 findings · 4 clean · 10m 5s
────────────────────────────
run          2026-04-28_133253
report       .anatoly/runs/.../report.md
reviews      .anatoly/runs/.../reviews/
transcripts  .anatoly/runs/.../logs/
log          .anatoly/runs/.../anatoly.ndjson

Cost: 0.00$ with claude code
01 - Cas réel

Un rapport qui se lit en 10 secondes, et se défend en 10 minutes.

Chaque exécution produit un seul rapport Markdown : verdict en tête, tableau de santé par axe, constats sourcés fichier + ligne + preuve. En voici un vrai, sur le benchmark public slot-engine.

15 fichiers analysés en 10 min - 6,13 $ d’analyse IA à votre place.

Verdict : NEEDS_REFACTOR · 26 constats répartis sur 11 fichiers

AxeSanté
Correction🟥🟥🟥🟥🟥🟥🟥🟥🟥⬜ 93% OK
Utilité🟥🟥🟥🟥🟥🟥🟥🟥⬜⬜ 83% utilisé
Duplication🟥🟥🟥🟥🟥🟥🟥🟥🟥⬜ 90% unique
Sur-ingénierie🟩🟩🟩🟩🟩🟩🟩🟩🟩⬜ 90% lean
Bonnes pratiques🟥🟥🟥🟥🟥🟥🟥⬜⬜⬜ moy. 7,4/10

Quelques-uns des 26 constats

  • 🐛 src/engine.ts computePayout

    Le signe du multiplicateur de house-edge est inversé : il augmente le gain au lieu de le réduire. Le RTP est faussé.

  • 🐛 src/rng.ts weightedPick

    Math.random() utilisé comme source RNG - dans une fonction dont la docstring dit pourtant « suitable for gaming RNG applications. »

  • ♻️ src/types.ts LegacySpinResult

    Exporté, importé par 0 fichier.

  • 📋 src/engine.ts checkLine src/paytable.ts lineWins

    Sémantiquement identiques (cosinus RAG 0,852) : même saut sur WILD, même boucle de correspondance consécutive, noms différents. Un diff textuel ne les verrait jamais.

  • 🏗️ src/engine.ts EngineContainer

    Un conteneur IoC maison construit sur un Map<string, unknown> indexé par chaînes, qui contient trois valeurs.

Voir le rapport complet sur le benchmark slot-engine →

Tous nos audits sont publics

Pas de morceaux choisis. Le banc d’essai est reproductible, et les audits sur du vrai code tiers sont publiés tels quels : verdicts, constats, coûts, temps d’exécution. Lisez celui qui ressemble le plus au vôtre.

02 - Deux façons de vivre avec

Lancez et passez à autre chose.
Ou auditez à mesure que vous livrez.

Dix minutes, c’est trop long à attendre devant l’écran. Anatoly ne vous le demande pas. Choisissez la voie qui colle à votre rythme - même moteur des deux côtés.

01lancer et oublier
Telegram · équipe

Une notification quand c’est prêt.

Pour les audits périodiques et le travail d’équipe.

~
$ anatoly notifications create-bot
→ assistant · création + token sauvegardé · ~2 min
  • À chaque anatoly run, vous recevez le verdict, le tableau de santé, les constats clés et un lien vers le rapport complet.
  • Un bot, toute l’équipe. Les autres devs ajoutent leur identifiant dans .anatoly.yml. Anatoly le résout puis le met en cache au premier audit.
  • Lancez et oubliez. Token manquant, identifiant introuvable, Telegram en panne : l’audit journalise un avertissement et produit quand même le rapport.
02audit en continu
IDE · au quotidien

Audité à chaque sauvegarde.

Pour le travail individuel au quotidien.

~
$ anatoly hook init
→ écrit la configuration du hook Claude Code
$ anatoly watch
→ démon · ré-audit à chaque changement
$ anatoly run
→ toujours incrémental · --no-cache pour tout relancer
  • Hook Claude Code. Boucle écriture → audit → correction, avec garde-fou anti-boucle. Les constats remontent dans l’éditeur.
  • Mode watch. Un démon surveille les changements et ne ré-audite que ce qui a bougé.
  • Toujours incrémental. anatoly run ne réexamine que les fichiers modifiés (cache SHA-256, coût nul sur les inchangés). Ajoutez --no-cache pour relancer sur tout le dépôt.
03 - Auditez à votre manière

Vos conventions, calibrées.

Déposez un ANATOLY.md à la racine. Anatoly le lit à chaque exécution et calibre son jugement sur vos standards. Aucun DSL, aucun moteur de règles. Juste du Markdown.

ANATOLY.mdracine du projet · auto-détecté
# ANATOLY.md

## best_practices
- Pas de barrel exports. Signale tout nouvel
  index.ts qui ré-exporte.
- Dates : toujours Temporal.PlainDate,
  jamais Date.

## correction
- Les composants sont colocalisés avec leur .test.tsx -
  un composant sans test associé = constat.

## documentation
- Tout export d’API publique doit avoir un
  JSDoc avec au moins un @example.

calibration par axe

Chaque section calibre l’axe qui porte son nom. Section vide = valeurs par défaut.

alerte dilution

Au-delà de 2500 tokens, Anatoly vous prévient : concis l’emporte sur exhaustif.

auditeurs : livrable de cadrage

Rédigez-le avec votre client au cadrage. L’audit s’appuie sur leurs conventions, pas les vôtres.

04 - Lit, écrit, mémorise

Construit la doc que vous auriez voulue.

Avant toute relecture, Anatoly désosse votre code et écrit une arborescence documentaire sous .anatoly/docs/. Aux exécutions suivantes, cette doc sert de contexte métier - les constats gagnent en pertinence, parce que l’agent sait déjà ce que le code est censé faire.

.anatoly/docs/généré automatiquement · 19 fichiers
.anatoly/docs/
├── index.md
├── 01-Getting-Started/
│   ├── 01-Overview.md
│   ├── 02-Installation.md
│   ├── 03-Configuration.md
│   └── 04-Quick-Start.md
├── 02-Architecture/
│   ├── 01-System-Overview.md
│   ├── 02-Core-Concepts.md
│   ├── 03-Data-Flow.md
│   └── 04-Design-Decisions.md
├── 03-Guides/ … 3 fichiers
├── 04-API-Reference/ … 3 fichiers
└── 05-Development/ … 4 fichiers
01-Overview.mdrétro-ingénierie
# Overview

> Bibliothèque TypeScript de logique pure
  simulant une machine à sous 5 rouleaux × 3
  lignes, avec lignes de paiement, wilds
  et jackpot progressif.

## Ce qu’elle fait

Un seul appel à spin() effectue :

1. Génération des rouleaux - cinq
   rouleaux de trois lignes, symboles
   tirés au hasard pondéré.
2. Évaluation des lignes de paiement -
   dix lignes lues de gauche à droite,
   avec substitution WILD.
3. Multiplicateur Wild - bonus
   exponentiel si des WILDs apparaissent
   dans une ligne gagnante.
   … 4 autres étapes

boucle de contexte

La doc devient le contexte métier des exécutions suivantes. Les constats s’affinent audit après audit.

livrable auditeur

Remettez à votre client un audit et une arborescence documentaire qu’il n’avait pas avant.

intégration immédiate

Lancez anatoly docs scaffold project pour copier l’arborescence dans docs/ et la publier.

Voir une documentation réelle générée sur le banc d’essai slot-engine →
05 - Restez dans votre périmètre

Auditez du code qui ne peut pas sortir du réseau.

Anatoly s’exécute de bout en bout sur des modèles locaux. Pointez-le vers Ollama, LM Studio, ou tout serveur compatible OpenAI. Avec un RAG local en plus, aucun octet de votre code ne quitte votre réseau.

.anatoly.ymlmode strictement local
providers:
  ollama:
    base_url: http://localhost:11434/v1
    transport: openai-compatible

rag:
  code_model: auto    # GGUF (GPU) ou Jina (CPU)
  nlp_model: auto

industries réglementées

Banque, santé, défense, secteur public - partout où le code n’a pas le droit d’atteindre un endpoint SaaS.

NDA clients

Due diligence technique, expertise judiciaire, fusions-acquisitions - l’audit s’exécute dans le périmètre du client.

souveraineté des données

UE, France, marchés publics défense - vos prompts et votre code restent sous votre juridiction.

Pensé pour les équipes dont le code ne sort jamais du bâtiment.

06 - Les sept axes

Un agent multi-LLM avec un accès en lecture à
tout votre code et un index sémantique local.

Pour chaque fichier, sept audits tournent en parallèle, chacun routé vers le modèle le mieux adapté. Avant de remonter un constat, l’agent doit grepper, lire les fichiers liés et interroger l’index RAG. Un pipeline à 3 niveaux écarte ensuite les faux positifs.

Utilité
recommandéclaude haiku
verdictsUSED · DEAD · LOW_VALUE
Exports morts, code inutilisé
Duplication
recommandéclaude haiku
verdictsUNIQUE · DUPLICATE
Doublons sémantiques dans tout le projet
Correction
recommandéclaude sonnet
verdictsOK · NEEDS_FIX · ERROR
Bugs, erreurs de logique, problèmes async
Sur-ingénierie
recommandéclaude sonnet
verdictsLEAN · OVER · ACCEPTABLE
Complexité disproportionnée par rapport au besoin
Tests
recommandéclaude sonnet
verdictsGOOD · WEAK · NONE
Qualité de la couverture, symbole par symbole
Bonnes pratiques
recommandéclaude sonnet
verdictsSCORE 0–10 · 17 RÈGLES
Spécifique au langage, sensible au contexte
Documentation
recommandéclaude sonnet
verdictsDOCUMENTED · PARTIAL · UNDOCUMENTED
JSDoc manquante, /docs/ désynchronisé

Chaque axe est isolé en cas de crash · les 7 tournent en parallèle · chacun routé vers le modèle adapté à la question

→ Délibération

Deux modèles plus lourds prennent
le relais quand un constat est ambigu.

claude opusdélibération 3 niveaux

Chaque constat passe par un pipeline de délibération à 3 niveaux avant publication. Niveau 1 : résolution automatique à partir du graphe d’usage, de l’AST et de l’index RAG (coût nul). Niveau 2 : détection des contradictions entre axes. Niveau 3 : claude opus avec accès complet aux outils - Read · Grep · Bash · WebFetch - raisonne à partir des preuves empiriques.

claude sonnetcorrection en deux passes

L’axe Correction réévalue chaque constat à partir du manifeste de dépendances (package.json · Cargo.toml · go.mod · pyproject.toml · …) et du README de chaque dépendance. De quoi écarter les faux positifs dus à une mauvaise compréhension d’une API.

La délibération, c’est ce qui sépare un constat simplement signalé d’un constat prouvé.

7
axes d’audit en parallèle
6 $
premier audit · dépôt TS de 15 fichiers
10+
langages pris en charge
0 $
sur les fichiers inchangés
07 - Intégrations

Trois voies d’intégration.
Disponibles dès aujourd’hui.

01 abonnements

Claude Code

Pilote Anatoly via votre abonnement Claude.ai existant. Appels d’outils, hooks en temps réel (PostToolUse, Stop) et délibération Opus - sans clé API.

$ npx anatoly run
02 abonnements

Gemini CLI

Routez les axes vers Gemini 2.5 Flash via Google OAuth - votre abonnement Code Assist, sans coût au token. Réduit les appels à Claude d’environ 69 %, avec un repli en circuit-breaker.

$ anatoly providers --gemini
03 byok · clé api

N’importe quel fournisseur moderne

Accès API direct à Anthropic, OpenAI, Google, Mistral, xAI, Groq et bien d’autres - vos clés, votre facturation. Mélangez par axe : Correction sur Sonnet, Utilité sur Haiku.

$ anatoly run --provider openai
08 - Tout vous appartient

À vous l’intelligence,
les règles, les données.
Toujours.

Anatoly ne se met pas au milieu. Il tourne sur votre machine - vos clés, vos conventions, votre code, vos rapports restent à vous.

intelligence

Vos clés. Vos fournisseurs. Votre facture.

BYOK sur Claude, Gemini OAuth, OpenAI, Mistral, xAI, Groq, ou n’importe quel serveur local. Mélange par axe - routez la Correction sur Sonnet, la Duplication sur Gemini Flash. Pas de proxy, pas d’intermédiaire, aucun verrouillage. Meilleur modèle demain ? Vous changez, point.

règles

Vos conventions. Votre dialecte.

Déposez un ANATOLY.md à la racine : le jugement du LLM se calibre sur vos standards. Sections par axe, aucun moteur de règles, aucun DSL - juste du Markdown. Auditeurs : rédigez-le avec votre client au cadrage. L’audit s’appuiera sur leurs conventions.

données

Votre code reste à vous.

Exécution de bout en bout sur des modèles locaux (Ollama, LM Studio, embeddings GGUF) quand votre code ne peut pas quitter votre réseau. Rapports, constats et documentation générée vivent dans votre dépôt sous .anatoly/. Aucun tableau de bord SaaS, aucun stockage tiers de l’historique d’audit.

09 - Pourquoi étayé par des preuves

« Un constat doit être prouvé,
sinon il ne sort pas. »

Chaque affirmation du tableau de santé a été raisonnée par l’agent - grep d’abord, puis lecture des fichiers, puis requêtes RAG sur l’index sémantique. Une passe de raffinement à 3 niveaux écarte contradictions et cas ambigus (résolution automatique → détection des contradictions entre axes → enquête Opus pour le reste). Ce qui atterrit dans le rapport a été argumenté.

10 - Pour qui

Pensé pour trois profils qui maintiennent du code qu’ils n’ont pas entièrement écrit.

ingénieurs

Tech leads et développeurs senior qui maintiennent du code - en solo, en équipe, ou dans une file de PRs.

indépendants

Fondateurs et indie hackers qui ont livré vite avec Cursor ou Claude Code et veulent savoir ce qu’ils ont vraiment livré.

auditeurs

Consultants et analystes en due diligence technique dont les rapports doivent tenir devant la critique - y compris sous NDA client.

De 100 à 100 000+ lignes. Du laptop à la salle du conseil.

11 - Communauté

Construit au grand jour.
Parlez au développeur.

Une question, une idée, un bug à signaler, ou simplement envie de voir comment se construit un agent multi-LLM de l’intérieur - passez nous voir.

Anatoly audite Anatoly. Le badge Checked-by-Anatoly de notre README lance le pipeline d’audit complet sur le produit lui-même, à chaque sortie de version.

12 - FAQ
Anatoly modifie-t-il mon code ?+

Non. L'audit est en lecture seule. La correction automatique est optionnelle : chaque correctif part dans son propre commit, pour les relire et les annuler un par un.

Anatoly restera-t-il gratuit ?+

Oui, toujours. Sous AGPL-3.0. Licence commerciale disponible pour les organisations qui ne peuvent pas s'aligner sur l'AGPL.

Puis-je utiliser mes propres clés de modèles ?+

Oui. Le BYOK est le mode par défaut : vos clés, vos fournisseurs, votre facturation. Aucun proxy, aucun intermédiaire. Abonnements Claude Code ou Gemini CLI, clés API directes, ou modèles entièrement locaux (Ollama, LM Studio, vLLM).

Est-ce intégrable en CI ?+

Oui - codes de sortie (0 / 1 / 2), --plain pour les pipelines non-interactifs, estimateur en mode simulation, et cache SHA pour relancer à coût nul sur les fichiers inchangés.

Quels langages sont pris en charge ?+

TypeScript, Python, Rust, Go, Java, C#, Bash, SQL, YAML, JSON - auto-détectés, avec une évaluation adaptée aux frameworks pour React et Next.js.

13 - Roadmap publique

La suite.

Anatoly est gratuit, open source, et le restera. Voici ce sur quoi nous travaillons. Inscrivez-vous pour recevoir un email à chaque sortie majeure - pas de newsletter, pas d’envoi en cascade, juste des nouvelles de la roadmap.

  • en coursRapports d’évolution - dérive du verdict et des constats sur un même dépôt, au fil du temps.
  • en coursCouverture des langages élargie - Kotlin, Swift, Ruby, PHP rejoignent TypeScript, Python, Rust, Go, Java, C#.
  • à venirModes d’audit spécialisés - passes axées sécurité, accessibilité, presets adaptés aux frameworks.
  • à venirIntégrations CI plus poussées - GitHub Actions, GitLab CI et CircleCI nativement pris en charge, avec résumés en commentaire de PR.
  • à l’étudeUne exécution hébergée pour les équipes qui ne veulent pas laisser un poste ouvert - même moteur, intégré à GitHub, planifié.

Soyez prévenu à chaque sortie

Un email par sortie majeure. Pas de newsletter, aucune liste tierce. Hébergement Resend (UE) - désinscription en un clic.

Nous conservons votre email chez Resend dans le seul but de vous envoyer les nouveautés de la roadmap d’Anatoly lors des sorties majeures. Consultez notre politique de confidentialité pour la conservation, vos droits, et le contact.

Anatoly - une commande, tout votre code audité

Une commande.
Tout votre code, audité.

$ npx anatoly run

Des questions ? Le développeur est sur Discord.