Mulch + Graphify — Le guide complet
avril 2026 · 7 min de lecture
Deux outils pour que ton IA ne reparte plus de zéro à chaque session.
Le problème
Tu codes avec Claude Code ou un autre agent. Il trouve un pattern, comprend ton archi, évite un bug. Session suivante : il a tout oublié. Tu réexpliques. Il refait les mêmes erreurs.
Mulch et Graphify règlent ça, chacun à sa façon.
Mulch — La mémoire persistante de ton projet
C'est quoi
Mulch est un outil CLI qui stocke les apprentissages de ton projet dans des fichiers JSONL versionnés avec git. Ton agent écrit dedans, relit au démarrage. L'expertise s'accumule d'une session à l'autre.
Aucun LLM là-dedans. Mulch ne fait pas d'appels IA — c'est juste du stockage structuré que tes agents lisent et écrivent.
Install
bun install -g @os-eco/mulch-cli
Ou sans installer :
npx @os-eco/mulch-cli --help
Démarrage en 3 commandes
ml init # crée le dossier .mulch/ dans ton projet
ml setup claude # configure Claude Code pour utiliser Mulch automatiquement
ml prime # charge tout le contexte accumulé (à lancer en début de session)
Enregistrer un apprentissage
# Une convention découverte
ml record database --type convention "Toujours utiliser WAL mode pour SQLite"
# Un bug rencontré et résolu
ml record database --type failure \
--description "VACUUM dans une transaction cause une corruption silencieuse" \
--resolution "Toujours lancer VACUUM hors des boundaries de transaction"
# Une décision d'architecture
ml record api --type decision \
--title "SQLite plutôt que PostgreSQL" \
--rationale "Produit local uniquement, pas de dépendance réseau acceptable"
# Un pattern réutilisable
ml record auth --type pattern \
--name "Token refresh silencieux" \
--description "Intercepter 401, rafraîchir le token, rejouer la requête originale"
Les 6 types d'enregistrement
| Type | Usage |
|---|---|
convention |
Règles de style ou de pratique dans ce projet |
pattern |
Patterns nommés et réutilisables |
failure |
Ce qui a foiré + comment l'éviter |
decision |
Décisions archi avec la raison |
reference |
Pointeurs vers des fichiers/endpoints clés |
guide |
Procédures pas-à-pas pour des tâches récurrentes |
Consulter l'expertise accumulée
ml query # tout le projet
ml query database # un domaine spécifique
ml search "sqlite" # recherche cross-domaines (BM25)
ml status # état de fraîcheur des domaines
Le workflow complet (pour Claude Code)
# Début de session
ml prime # ton agent charge le contexte
# ... tu travailles ...
# Fin de session
ml learn # voir ce qui a changé
ml record <domaine> --type <type> --description "..."
ml sync # valide + commit les changements .mulch/
Structure dans ton projet
.mulch/
├── expertise/
│ ├── database.jsonl # tout ce que ton agent a appris sur la DB
│ ├── api.jsonl # apprentissages API
│ └── auth.jsonl # un fichier par domaine
└── mulch.config.yaml # config et liste des domaines
Tout est versionné avec git. Un teammate clone le repo → son agent a immédiatement l'expertise accumulée.
Multi-agents en parallèle
Mulch est conçu pour plusieurs agents qui écrivent en même temps :
- File locking — verrou par fichier, retry 50ms, timeout 5s
- Atomic writes — écriture dans un temp puis rename atomique
- Merge strategy —
merge=uniondans.gitattributespour que les branches parallèles se mergent sans conflit
Graphify — La carte de ton codebase
C'est quoi
Graphify transforme n'importe quel dossier de fichiers (code, docs, PDFs, images, vidéos) en un graphe de connaissance interactif. Il te donne la structure que tu ne savais pas qu'il y avait.
Install
pip install graphifyy && graphify install
Puis dans Claude Code :
/graphify .
Ce que ça produit
graphify-out/
├── graph.html graphe interactif cliquable (nodes, search, filtres)
├── GRAPH_REPORT.md god nodes, connexions surprenantes, questions suggérées
├── graph.json graphe persistant — requêtable plus tard sans tout re-lire
└── cache/ cache SHA256 — re-runs ne traitent que les fichiers modifiés
Comment ça marche
Graphify fait 3 passes :
- AST déterministe — extrait la structure du code (classes, fonctions, imports, call graphs) sans LLM
- Transcription audio/vidéo — via faster-whisper en local, avec un prompt dérivé des god nodes du corpus
- Agents Claude en parallèle — sur les docs, PDFs, images pour extraire concepts et relations
Chaque relation est taguée :
EXTRACTED— trouvé directement dans le sourceINFERRED— inférence raisonnable avec score de confianceAMBIGUOUS— flaggé pour review
Clustering par topologie de graphe, pas par embeddings. Leiden community detection sur les edges. Pas de vector DB.
Commandes principales
# Lancer sur un dossier
/graphify .
/graphify ./raw --mode deep # extraction plus agressive
/graphify ./raw --update # re-traite seulement les fichiers modifiés
/graphify ./raw --directed # graphe dirigé (préserve source→target)
# Ajouter une source externe
/graphify add https://arxiv.org/abs/... # paper
/graphify add https://youtube.com/watch?v=... # vidéo (transcription Whisper)
/graphify add https://x.com/... # tweet
# Requêter le graphe
/graphify query "what connects auth to the optimizer?"
/graphify path "DigestAuth" "Response"
/graphify explain "attention mechanism"
# Incrémenter
/graphify --cluster-only # reclustering sans re-extraction
/graphify --no-viz # juste rapport + JSON, pas d'HTML
Intégrer dans Claude Code (always-on)
graphify install # installe le hook PreToolUse dans settings.json
Claude voit alors avant chaque Glob/Grep : "graphify: Knowledge graph exists. Read GRAPH_REPORT.md before searching raw files." — il navigue par le graphe plutôt que de grepper tout.
Utiliser graph.json avec un LLM
Ne pas coller graph.json entier dans le prompt. Le bon workflow :
# 1. Lire GRAPH_REPORT.md pour l'overview
# 2. Requêter un sous-graphe sur ta question précise
graphify query "show the auth flow" --graph graphify-out/graph.json
# 3. Donner ce sous-graphe focalisé à ton assistant
Mode MCP (pour agents avancés)
python -m graphify.serve graphify-out/graph.json
Expose le graphe en MCP server avec les outils : query_graph, get_node, get_neighbors, shortest_path.
20 langages supportés
Python, JS, TS, Go, Rust, Java, C, C++, Ruby, C#, Kotlin, Scala, PHP, Swift, Lua, Zig, PowerShell, Elixir, Objective-C, Julia.
Mulch vs Graphify — quand utiliser quoi
| Mulch | Graphify | |
|---|---|---|
| Quoi | Mémoire des apprentissages | Carte structurelle du code |
| Format | JSONL typés (conventions, failures, décisions...) | Graphe de nœuds et d'edges |
| LLM | Non | Oui (Claude pour extraction) |
| Persistance | Git-native, incrémental | Fichiers dans graphify-out/ |
| Usage principal | "Mon agent ne doit pas refaire cette erreur" | "Comprendre vite une codebase inconnue" |
| Multi-agent | Natif (file locking) | Parallel subagents pour extraction |
Les deux se complètent. Mulch garde ce que ton équipe a appris. Graphify révèle la structure de ce qui existe.
Ressources
- Mulch : github.com/jayminwest/mulch
- Graphify : github.com/safishamsi/graphify
- Install Mulch :
bun install -g @os-eco/mulch-cli - Install Graphify :
pip install graphifyy && graphify install