Table des matières
Claude Code a récemment ajouté une fonctionnalité de mémoire automatique. L'idée : Claude retient des choses entre les sessions, tout seul, sans qu'on ait rien à configurer. Un peu comme ce que Cursor fait déjà de son côté.
Sur le papier, c'est une bonne idée. En pratique, je l'ai désactivée. Voilà pourquoi.
Comment ça marche
Depuis la version 2.1.32, Claude Code tient un dossier de mémoire. Dedans, un fichier MEMORY.md sert d'index, une ligne par souvenir, et à côté un fichier par sujet : qui tu es, ce que tu lui as reproché, les conventions du projet. C'est lui qui décide quoi y écrire, et quand.
Au début de chaque session, les 200 premières lignes de l'index sont chargées dans le contexte, ou les 25 premiers Ko si la limite tombe avant. Claude retrouve donc une partie de ce qu'il a appris la fois d'avant, et va lire le fichier détaillé s'il en a besoin.
Pour quelqu'un qui débute un gros projet sans organisation particulière, c'est franchement utile. Ça donne une continuité entre les sessions qu'on n'avait pas avant.
Mais quand on a déjà un workflow structuré, ça devient un problème.
Ça mange de la fenêtre de contexte
Si tu as lu mon article sur les tokens et la fenêtre de contexte, tu sais que chaque token compte. Les fenêtres ont beau s'agrandir, elles se remplissent toujours, et une session qui déborde te coûte un compactage, donc de l'oubli.
L'auto-memory charge son contenu à chaque session, quoi que tu fasses ce jour-là. Ce sont des tokens que tu n'as pas choisis, pour des informations dont tu n'as peut-être pas besoin maintenant.
C'est caché et opaque
L'auto-memory stocke le fichier dans ~/.claude/projects/, c'est-à-dire dans un dossier système, pas dans ton projet. Il n'est pas visible dans ton IDE, pas versionné dans git. Pour aller vérifier ce que Claude a retenu, il faut aller fouiller dans un dossier caché.
C'est le même reproche que je fais à /compact : c'est opaque. L'IA décide ce qu'elle retient, et toi tu ne sais pas ce qu'elle a gardé ou oublié. C'est une approche boîte noire.
Et cette mémoire ne t'appartient pas
Le vrai problème n'est pas le dossier caché. Ce sont des fichiers markdown ordinaires, tu peux les ouvrir et les corriger.
Le problème, c'est que cette mémoire ne marche que dans Claude Code. Rangée là où lui seul va la chercher. Au format qu'il attend. Et sur la machine où elle a été écrite, nulle part ailleurs.
Change d'agent, ou juste d'ordinateur. Il arrive amnésique. Tout ce que tu as appris à l'outil est resté avec l'outil.
Et encore, je parle là de quelqu'un qui travaille avec des fichiers. La plupart des gens à qui j'en parle sont déjà bien plus enfermés que ça, et ils ne le savent pas.
Ils n'ouvrent pas d'éditeur. Ils ouvrent l'application, ils discutent, et au fil des mois l'IA finit par les connaître. Leur métier, leur façon d'écrire, leurs projets en cours. Ils me disent : « j'ai entraîné ChatGPT ».
Sauf qu'ils n'ont rien entraîné du tout. Le modèle n'a pas bougé d'un millimètre. Ce qui s'est passé, c'est qu'OpenAI a pris des notes sur eux, dans son format à lui, sur ses serveurs à lui, et les remet dans la conversation quand il estime que c'est utile. Le jour où ils veulent essayer autre chose, il n'y a rien à emporter. Deux ans de contexte, et pas un fichier à copier.
C'est comme ça qu'on s'enferme. Pas par un contrat, par une accumulation. Plus tu laisses ton assistant retenir des choses pour toi, plus en changer coûte cher. Et ce n'est pas qu'Anthropic : chaque éditeur pousse sa mémoire à lui, dans son coin à lui.
La parade est simple : ce qui compte vraiment sur toi, ton métier, tes règles, tes décisions, se range dans des fichiers ordinaires, à un endroit que tu as choisi. N'importe quel outil sait lire du markdown. Ce que l'outil offre en plus est un confort, pas une fondation. C'est exactement ce que fait mon second cerveau : les faits durables vivent dans mes notes, et l'agent, quel qu'il soit, vient les lire.
C'est tout l'intérêt de gérer sa connaissance soi-même. Pas la collection pour la collection : la souveraineté sur son contexte. Il t'appartient, il te suit, et changer d'IA redevient une décision de cinq minutes plutôt qu'un déménagement.
Le jour où un modèle meilleur sort, tu le branches. Tes notes, elles, n'ont pas bougé.
Attention, on parle ici de ce qui te concerne toi : ton métier, tes décisions, tes façons de faire. Pas du code. Un projet de code a sa propre mémoire, qui vit avec lui, et c'est une autre histoire.
Côté code, j'ai déjà mieux : la Memory Bank
Justement, le code. Là, ce que l'IA doit savoir ne me concerne pas moi, ça concerne le projet : où en est le chantier, comment c'est rangé, quelles conventions tiennent. Ça n'a rien à faire dans mes notes perso, et ça n'a rien à faire non plus dans un dossier caché de ma machine. Ça doit vivre dans le dépôt, avec le code qu'il décrit.
D'où un dossier docs/memory-bank/ directement dans le projet, avec des fichiers que je contrôle :
context.md: ce sur quoi je travaille en ce momentstructure.md: comment le projet est organisétechstack.md: la stack et les conventions
C'est moi qui décide ce que l'IA sait. C'est dans le projet, visible dans l'IDE, versionné dans git. Pas de surprise. Je détaille le système entier dans comment je structure mes projets, et le fichier d'entrée dans quoi mettre dans ton CLAUDE.md.
Quand je lance une session avec /start, l'IA charge ces fichiers et sait exactement où on en est. Elle n'a rien à deviner. C'est déjà écrit.
Et quand je change de machine, ou quand quelqu'un rejoint le projet, la mémoire arrive avec le git clone. Il n'y a rien à transférer.
Deux couches, donc, et deux endroits. Ce qui appartient au projet reste dans le projet. Ce qui me concerne, moi, reste dans mes notes. L'auto-memory prétend couvrir les deux et les range au même endroit, sur une seule machine, dans un format qui n'intéresse qu'un seul outil.
Conclusion
L'auto-memory est un bon point d'entrée pour ceux qui débutent avec Claude Code sur des projets complexes. Si tu n'as pas de système en place, c'est mieux que rien.
Mais si tu as déjà un workflow structuré, désactive-la. Ça te libère de la fenêtre de contexte et tu gardes le contrôle sur ce que l'IA sait.
Le plus simple : tape /memory dans une session, il y a un interrupteur. Pour le couper sur un seul projet, une ligne dans son .claude/settings.json :
{
"autoMemoryEnabled": false
}Et si tu préfères une variable d'environnement, par exemple pour une machine entière ou un conteneur, CLAUDE_CODE_DISABLE_AUTO_MEMORY=1 fait la même chose.
La philosophie reste la même : on ne laisse pas l'IA décider à notre place. On structure, on contrôle, et l'IA exécute.
Commentaires