Aller au contenu

Claude-Mem : Donner à Claude Code une Mémoire Qui Survit aux Sessions

Un plugin qui capture ce que Claude apprend de votre codebase et le lui redonne au début de la session suivante. Comment ça marche, et ce qu'il faut surveiller.

· 8 min read ·
Claude Code IA Outils de Développement Productivité

TL;DR : Claude-mem est un plugin Claude Code qui observe vos sessions, compresse les sorties d’outils en observations structurees, et vous redonne les bonnes au demarrage de la session suivante. Ca regle le probleme du “re-expliquer le projet tous les matins”. Il y a aussi un audit securite que vous devriez lire avant de le mettre sur une machine de travail.

Chaque session Claude Code commençait de la même façon. J’ouvrais le projet, je posais une question, et je regardais Claude redécouvrir la même structure de fichiers qu’hier. Mêmes fichiers ouverts. Mêmes commandes grep. Même préambule “laisse-moi comprendre le codebase”.

La majorité de mon budget de contexte passait à réapprendre ce que la session précédente avait déjà compris.

Claude-mem corrige ça. Pas parfaitement, pas sans bémols — mais concrètement. Voici ce qu’il fait, comment il marche, et ce qu’il faut savoir avant de l’installer.


Ce qu’est vraiment claude-mem

C’est un plugin, pas un serveur MCP. La nuance compte.

  • Les serveurs MCP attendent que Claude décide de les appeler. Ils sont réactifs.
  • Les plugins se déclenchent automatiquement sur des événements de cycle de vie — démarrage de session, chaque appel d’outil, fin de session. Ils sont ambiants.

Claude-mem s’accroche à cinq événements (SessionStart, UserPromptSubmit, PostToolUse, Stop, SessionEnd), compresse ce que Claude a fait, et l’écrit dans une base SQLite locale à ~/.claude-mem/claude-mem.db. À la session suivante, il interroge cette base et réinjecte les parties pertinentes dans le contexte.

Pas de cloud. Pas de compte. Vos observations ne quittent pas votre machine.


Installation — et un piège à éviter

Deux commandes dans une session Claude Code :

/plugin marketplace add thedotmack/claude-mem
/plugin install claude-mem

Puis redémarrer Claude Code.

Ne faites pas npm install -g claude-mem. Ça installe seulement le SDK — pas l’enregistrement des hooks, pas l’activation du worker. Le plugin ne fait rien. J’ai perdu une heure là-dessus avant de lire la doc correctement.

Vérification rapide après l’install :

curl http://localhost:37777/api/health
# -> {"status":"ok"}

Si vous voyez ça, les hooks sont branchés et le worker tourne. Un viewer web tourne aussi sur http://localhost:37777 — pratique pour regarder les observations arriver pendant que vous bossez.


Comment la capture fonctionne vraiment

À chaque fois que Claude appelle un outil, la sortie part vers un worker en arrière-plan. Le worker l’envoie à un petit modèle (Haiku par défaut) avec un prompt qui extrait une observation structurée :

ChampContenu
typedecision, bugfix, feature, refactor, discovery, change
titleUne ligne recherchable
facts~50 tokens — points discrets, peu coûteux
narrative~150-500 tokens — prose, chargée à la demande
conceptsTags sémantiques : how-it-works, problem-solution, gotcha, trade-off

La capture par appel est importante. Si votre session crashe au milieu d’un refactoring, les outils qui ne compressent qu’à la fin de session perdent tout depuis la dernière session complète. Claude-mem a chaque observation jusqu’au dernier appel d’outil.


Le point que la plupart des outils “mémoire” ratent

Déverser toutes les observations passées dans la session suivante, c’est la première idée. C’est aussi inutile. Vous finissez avec 35 000 tokens d’historique et peut-être 2 000 pertinents pour la tâche en cours. Taux de signal à 6 %, et Claude consomme sa fenêtre de contexte à mâcher du bruit.

Claude-mem utilise une récupération à trois niveaux :

  1. Search — 50-100 tokens par résultat. Un index compact des observations correspondantes.
  2. Timeline — 100-200 tokens par résultat. Contexte chronologique autour d’un moment.
  3. get_observations — 500-1 000 tokens par résultat. Enregistrements complets, récupérés par ID uniquement quand Claude a vraiment besoin du détail.

L’idée : commencer pas cher, creuser seulement si nécessaire. Il y a littéralement un outil MCP appelé __IMPORTANT dont le seul boulot est de rappeler à Claude de suivre ce pattern — parce que sans ça, Claude saute les niveaux économiques et récupère tout en détail complet. Ce qui sabote l’architecture.

C’est le choix de design le plus intéressant du plugin.


Configuration utile à connaître

Tout se règle via http://localhost:37777/Settings ou des variables d’environnement. Celles que j’ai vraiment touchées :

  • CLAUDE_MEM_MODEL — modèle de compression. Haiku par défaut, très bien. Changez de fournisseur avec CLAUDE_MEM_PROVIDER si vous préférez Gemini ou OpenRouter.
  • CLAUDE_MEM_CONTEXT_OBSERVATIONS — nombre d’observations injectées au démarrage de session. Défaut 50, plage 1-200. Je l’ai baissé à 25 la première semaine sur un nouveau projet (voir plus bas).
  • CLAUDE_MEM_CONTEXT_FULL_COUNT — combien d’entre elles sont étendues en détail complet. Défaut 5.
  • CLAUDE_MEM_SKIP_TOOLS — exclut certains outils de la capture. TodoWrite, AskUserQuestion, BashTool sont skippés par défaut, et c’est le bon choix.

Échappatoire vie privée : enveloppez du contenu dans des balises <private> dans un prompt et il reste hors de la base. Utile quand vous collez un truc que vous ne voulez pas voir traîner dans un SQLite indéfiniment.


L’audit de sécurité que vous devriez vraiment lire

Un audit communautaire de février 2026 a signalé que l’API HTTP sur le port 37777 n’est pas authentifiée. N’importe quel processus local sur votre machine peut :

  • Lire chaque observation stockée
  • Voir les settings — y compris les clés API en clair
  • Injecter des mémoires arbitraires dans le prochain contexte de Claude

Le binding par défaut était 0.0.0.0 plutôt que localhost, ce qui signifiait que des VM cloud sans firewall exposaient l’API à Internet. Des bugs de path traversal dans smart_unfold et smart_outline aggravent le problème.

Ma règle : machines dev personnelles uniquement. Pas de serveurs partagés. Pas de box dev cloud. Pas de laptops pro avec du code d’autres gens dessus. L’architecture est prometteuse — la posture sécurité n’y est pas encore.

Il y a aussi des soucis de fiabilité à connaître : une première version avec ChromaDB fuitait méchamment des sous-processus (un utilisateur a atteint 184 processus orphelins consommant 16 Go de RAM en 19 heures). Le backend FTS5 — la recherche plein-texte native de SQLite — évite ça complètement. Utilisez FTS5.


Ce qui a vraiment changé dans mon workflow

Trois semaines plus tard, une base de 39 Mo, 6 814 observations sur dix projets. Ce qui est différent :

  • Plus besoin de ré-expliquer la structure du projet. Claude arrive en connaissant la forme du repo.
  • Les pistes de debug ne repartent plus de zéro. Si on a poursuivi un bug dans une mauvaise direction hier, la session d’aujourd’hui se souvient que c’était la mauvaise direction.
  • 61 % de mes observations sont typées discovery. Claude capture surtout ce qu’il apprend, pas ce qu’il change. C’était inattendu — je pensais que la valeur serait dans la mémoire des refactorings. Elle est en fait dans la mémoire de la compréhension.

Un piège : la première semaine sur un nouveau projet, votre contexte se remplit plus vite que d’habitude parce que chaque fichier est nouveau et chaque appel d’outil produit une observation de type discovery. Baissez CLAUDE_MEM_CONTEXT_OBSERVATIONS à 20-30 jusqu’à ce que le taux de discovery se tasse. Puis remontez-le.


Le vrai bénéfice

Les assistants de code par session ont un problème de page blanche. Chaque matin, ils vous oublient. Les palliatifs qu’on essaie — CLAUDE.md, auto memory, /compact — sont partiels. Les fichiers markdown pourrissent. L’auto memory sauve au hasard. /compact échange votre conversation contre de la place de contexte.

Claude-mem est la première approche que j’ai utilisée qui traite la mémoire comme de l’infrastructure et non comme une habitude manuelle. La capture est automatique. La récupération est hiérarchisée pour que les niveaux économiques fassent le boulot. La vie privée reste locale.

Ce n’est pas prêt pour des environnements régulés. Mais pour un dev solo sur machine personnelle, la continuité est réelle. Trois semaines à ne plus ré-expliquer mes propres codebases ont déjà rentabilisé le temps d’installation.

Installez-le sur un laptop qui vous appartient. Regardez les observations arriver pendant une journée. Décidez par vous-même.