- Fichiers CLAUDE.md : instructions que vous écrivez pour donner à Claude un contexte persistant. Claude peut également lire les fichiers
AGENTS.mdd’un référentiel, seuls ou aux côtés de CLAUDE.md - Mémoire automatique : notes que Claude écrit lui-même en fonction de vos corrections et préférences
- Écrire et organiser les fichiers CLAUDE.md
- Utiliser un fichier AGENTS.md existant comme instructions de votre projet, seul ou aux côtés de CLAUDE.md
- Limiter les règles à des types de fichiers spécifiques avec
.claude/rules/ - Configurer la mémoire automatique pour que Claude prenne des notes automatiquement
- Dépanner quand les instructions ne sont pas suivies
CLAUDE.md vs mémoire automatique
Claude Code dispose de deux systèmes de mémoire complémentaires. Les deux sont chargés au début de chaque conversation. Claude les traite comme du contexte, pas comme une configuration appliquée. Pour bloquer une action indépendamment de ce que Claude décide, utilisez un hook PreToolUse à la place. Plus vos instructions sont spécifiques et concises, plus Claude les suit régulièrement.
Utilisez les fichiers CLAUDE.md quand vous voulez guider le comportement de Claude. La mémoire automatique permet à Claude d’apprendre de vos corrections sans effort manuel.
Les subagents peuvent également maintenir leur propre mémoire automatique. Consultez la configuration des subagents pour plus de détails.
Fichiers CLAUDE.md
Les fichiers CLAUDE.md sont des fichiers markdown qui donnent à Claude des instructions persistantes pour un projet, votre flux de travail personnel ou toute votre organisation. Vous écrivez ces fichiers en texte brut ; Claude les lit au début de chaque session. Si votre référentiel utiliseAGENTS.md à la place, consultez AGENTS.md.
Quand ajouter à CLAUDE.md
Traitez CLAUDE.md comme l’endroit où vous écrivez ce que vous auriez autrement dû réexpliquer. Ajoutez-y quand :- Claude fait la même erreur une deuxième fois
- Une revue de code détecte quelque chose que Claude aurait dû savoir sur cette base de code
- Vous tapez la même correction ou clarification dans le chat que vous aviez tapée la session précédente
- Un nouveau coéquipier aurait besoin du même contexte pour être productif
Choisir où placer les fichiers CLAUDE.md
Les fichiers CLAUDE.md peuvent se trouver à plusieurs emplacements, chacun avec une portée différente. Le tableau ci-dessous les énumère dans l’ordre de chargement, de la portée la plus large à la plus spécifique, de sorte qu’une instruction de projet apparaît en contexte après une instruction utilisateur.
Les fichiers CLAUDE.md et CLAUDE.local.md dans la hiérarchie de répertoires au-dessus du répertoire de travail sont chargés au lancement. Les fichiers dans les sous-répertoires se chargent à la demande quand Claude lit les fichiers de ces répertoires. Consultez Comment les fichiers CLAUDE.md se chargent pour l’ordre de résolution complet.
Pour les grands projets, vous pouvez diviser les instructions en fichiers spécifiques à un sujet en utilisant les règles de projet. Les règles vous permettent de limiter les instructions à des types de fichiers ou des sous-répertoires spécifiques.
Configurer un CLAUDE.md de projet
Un CLAUDE.md de projet peut être stocké dans./CLAUDE.md ou ./.claude/CLAUDE.md. Créez ce fichier et ajoutez des instructions qui s’appliquent à quiconque travaille sur le projet : commandes de compilation et de test, normes de codage, décisions architecturales, conventions de nommage et flux de travail courants. Ces instructions sont partagées avec votre équipe via le contrôle de source, donc concentrez-vous sur les normes au niveau du projet plutôt que sur les préférences personnelles. Pour confirmer que le fichier a été chargé, exécutez /context dans une session et vérifiez la liste sous Fichiers de mémoire.
Écrire des instructions efficaces
Les fichiers CLAUDE.md sont chargés dans la fenêtre de contexte au début de chaque session, consommant des jetons aux côtés de votre conversation. La visualisation de la fenêtre de contexte montre où CLAUDE.md se charge par rapport au reste du contexte de démarrage. Parce qu’ils sont du contexte plutôt qu’une configuration appliquée, la façon dont vous écrivez les instructions affecte la fiabilité avec laquelle Claude les suit. Les instructions spécifiques, concises et bien structurées fonctionnent mieux. Taille : visez moins de 200 lignes par fichier CLAUDE.md. Les fichiers plus longs consomment plus de contexte et réduisent l’adhérence. Si vos instructions deviennent trop volumineuses, utilisez les règles scoped par chemin pour que les instructions ne se chargent que quand Claude travaille avec des fichiers correspondants. Vous pouvez également diviser le contenu en imports pour l’organisation, bien que les fichiers importés se chargent toujours et entrent dans la fenêtre de contexte au lancement. Structure : utilisez les en-têtes markdown et les puces pour regrouper les instructions connexes. Claude scanne la structure de la même manière que les lecteurs : les sections organisées sont plus faciles à suivre que les paragraphes denses. Spécificité : écrivez des instructions suffisamment concrètes pour être vérifiables. Par exemple :- « Utiliser l’indentation à 2 espaces » au lieu de « Formater le code correctement »
- « Exécuter
npm testavant de valider » au lieu de « Testez vos modifications » - « Les gestionnaires d’API se trouvent dans
src/api/handlers/» au lieu de « Gardez les fichiers organisés »
.claude/rules/ pour supprimer les instructions obsolètes ou conflictuelles. Dans les monorepos, utilisez claudeMdExcludes pour ignorer les fichiers CLAUDE.md d’autres équipes qui ne sont pas pertinents pour votre travail.
Pour que Claude vérifie ces fichiers pour les instructions obsolètes ou conflictuelles, exécutez /doctor prompt-audit dans une session. Claude lit vos fichiers CLAUDE.md, CLAUDE.local.md et AGENTS.md, plus les règles, compétences, commandes, sous-agents et styles de sortie sous .claude/ et ~/.claude/. Il recherche des problèmes tels que les instructions écrites pour les anciens modèles, les références à des fichiers ou des commandes qui n’existent pas, et les fichiers qui se contredisent. Vous obtenez un rapport des résultats et un ensemble de modifications proposées, et rien dans vos fichiers ne change jusqu’à ce que vous demandiez à Claude de les appliquer.
Pour auditer un fichier ou un répertoire à la place, passez son chemin, par exemple /doctor prompt-audit .claude/skills/deploy. L’audit s’exécute via la compétence /claude-api groupée, de sorte qu’elle n’est pas disponible quand cette compétence est désactivée dans skillOverrides ou avec disableBundledSkills. /doctor prompt-audit nécessite Claude Code v2.1.283 ou ultérieur.
Importer des fichiers supplémentaires
Les fichiers CLAUDE.md peuvent importer des fichiers supplémentaires en utilisant la syntaxe@path/to/import. Les fichiers importés sont développés et chargés en contexte au lancement aux côtés du CLAUDE.md qui les référence.
Les chemins relatifs et absolus sont autorisés. Les chemins relatifs se résolvent par rapport au fichier contenant l’import, pas au répertoire de travail. Les fichiers importés peuvent importer récursivement d’autres fichiers, avec une profondeur maximale de quatre sauts.
L’analyse d’import ignore les étendues de code Markdown et les blocs de code clôturés. Pour mentionner un chemin dans votre CLAUDE.md sans l’importer, enveloppez-le dans des backticks : écrire `@README` garde le texte littéral, tandis que @README en dehors des backticks importe le fichier.
Pour intégrer un README, package.json et un guide de flux de travail, référencez-les avec la syntaxe @ n’importe où dans votre CLAUDE.md :
CLAUDE.local.md à la racine du projet. Il se charge aux côtés de CLAUDE.md et est traité de la même manière. Ajoutez CLAUDE.local.md à votre .gitignore pour qu’il ne soit pas validé. Avec CLAUDE_CODE_NEW_INIT=1 défini, l’exécution de /init et le choix de l’option personnelle le font pour vous.
Si vous travaillez sur plusieurs git worktrees du même référentiel, un CLAUDE.local.md ignoré par git n’existe que dans le worktree où vous l’avez créé. Pour partager des instructions personnelles entre worktrees, importez plutôt un fichier de votre répertoire personnel :
Comment les fichiers CLAUDE.md se chargent
Claude Code chargeCLAUDE.md et CLAUDE.local.md à partir de votre répertoire de travail actuel et de chaque répertoire au-dessus. Exécutez Claude Code dans foo/bar/ et il charge les instructions de foo/bar/CLAUDE.md, foo/CLAUDE.md et tous les fichiers CLAUDE.local.md qui les accompagnent.
Tous les fichiers découverts sont concaténés en contexte plutôt que de se remplacer les uns les autres. Dans l’arborescence des répertoires, le contenu est ordonné de la racine du système de fichiers jusqu’à votre répertoire de travail. Pour l’exemple foo/bar/, foo/CLAUDE.md apparaît en contexte avant foo/bar/CLAUDE.md, de sorte que les instructions plus proches de l’endroit où vous avez lancé Claude sont lues en dernier. Dans chaque répertoire, CLAUDE.local.md est ajouté après CLAUDE.md, de sorte que vos notes personnelles sont la dernière chose que Claude lit à ce niveau.
Claude découvre également les fichiers CLAUDE.md et CLAUDE.local.md dans les sous-répertoires sous votre répertoire de travail actuel. Au lieu de les charger au lancement, ils sont inclus quand Claude lit les fichiers de ces sous-répertoires.
Si vous travaillez dans un grand monorepo où les fichiers CLAUDE.md d’autres équipes sont détectés, utilisez claudeMdExcludes pour les ignorer. Pour la disposition complète des fichiers CLAUDE.md racine et par répertoire et des règles, consultez Monorepos et grands référentiels.
Les commentaires HTML au niveau des blocs (<!-- maintainer notes -->) dans les fichiers CLAUDE.md sont supprimés avant que le contenu ne soit injecté dans le contexte de Claude. Utilisez-les pour laisser des notes aux responsables humains sans dépenser de jetons de contexte. Les commentaires à l’intérieur des blocs de code sont conservés. Quand vous ouvrez un fichier CLAUDE.md directement avec l’outil Read, les commentaires restent visibles.
Charger à partir de répertoires supplémentaires
Le drapeau--add-dir donne à Claude accès à des répertoires supplémentaires en dehors de votre répertoire de travail principal. Par défaut, les fichiers CLAUDE.md de ces répertoires ne sont pas chargés.
Pour charger également les fichiers de mémoire à partir de répertoires supplémentaires, définissez la variable d’environnement CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD :
env dans ~/.claude/settings.json comme indiqué dans Définir les variables d’environnement.
Cela charge CLAUDE.md, .claude/CLAUDE.md, .claude/rules/*.md et CLAUDE.local.md à partir du répertoire supplémentaire. CLAUDE.local.md est ignoré si vous excluez local de --setting-sources.
Organiser les règles avec .claude/rules/
Pour les projets plus importants, vous pouvez organiser les instructions en plusieurs fichiers en utilisant le répertoire .claude/rules/. Cela garde les instructions modulaires et plus faciles à maintenir pour les équipes. Les règles peuvent également être scoped à des chemins de fichiers spécifiques, de sorte qu’elles ne se chargent en contexte que quand Claude travaille avec des fichiers correspondants, réduisant le bruit et économisant l’espace de contexte.
Les règles se chargent en contexte à chaque session ou quand des fichiers correspondants sont ouverts. Pour les instructions spécifiques à une tâche qui n’ont pas besoin d’être en contexte tout le temps, utilisez plutôt les compétences, qui ne se chargent que quand vous les invoquez ou quand Claude détermine qu’elles sont pertinentes pour votre invite.
Configurer les règles
Placez les fichiers markdown dans le répertoire.claude/rules/ de votre projet. Chaque fichier doit couvrir un sujet, avec un nom de fichier descriptif comme testing.md ou api-design.md. Tous les fichiers .md sont découverts récursivement, de sorte que vous pouvez organiser les règles en sous-répertoires comme frontend/ ou backend/ :
paths sont chargées au lancement avec la même priorité que .claude/CLAUDE.md.
Les règles de projet sont ignorées si vous excluez project de --setting-sources. Avant v2.1.211, les règles qui se chargent à la demande, y compris les règles scoped par chemin et les règles dans les répertoires .claude/rules/ imbriqués, se chargeaient même quand project était exclu.
Règles spécifiques au chemin
Les règles peuvent être scoped à des fichiers spécifiques en utilisant le frontmatter YAML avec le champpaths. Ces règles conditionnelles ne s’appliquent que quand Claude travaille avec des fichiers correspondant aux modèles spécifiés.
paths sont chargées sans condition et s’appliquent à tous les fichiers. Les règles scoped par chemin se déclenchent quand Claude lit les fichiers correspondant au modèle, pas à chaque utilisation d’outil. À partir de v2.1.198, la correspondance fonctionne également quand Claude atteint un fichier via un chemin symlinké vers le répertoire du projet, par exemple dans un checkout symlinké.
Utilisez les modèles glob dans le champ paths pour faire correspondre les fichiers par extension, répertoire ou toute combinaison :
Vous pouvez spécifier plusieurs modèles et utiliser l’expansion entre accolades pour faire correspondre plusieurs extensions dans un modèle :
src/*.{ts,tsx} se développe en deux modèles, et {a,b}/{c,d}/*.{ts,tsx} en huit. Pour garder l’expansion limitée, la liste paths entière d’une règle partage un budget de 1 000 modèles développés et 4 MiB, et les modèles sans accolades ne comptent pas contre lui.
Claude Code utilise tout modèle qui dépasserait le budget non développé, et ses accolades littérales ne correspondent à aucun fichier. Avant v2.1.217, une valeur paths avec de nombreux groupes entre accolades bloquait ou plantait le CLI au démarrage.
La syntaxe Glob traite [ comme le début d’une expression entre crochets telle que [abc]. Un modèle avec un [ qui ne peut pas être lu comme une expression entre crochets, tel que photos [2024/**, est invalide : il ne correspond à rien, et les autres modèles de la règle continuent de fonctionner. Pour faire correspondre un [ littéral dans un nom de fichier, échappez-le comme photos \[2024/**. Avant v2.1.207, un modèle invalide faisait échouer l’outil Read pour chaque fichier sur lequel la règle était évaluée, au lieu de ne correspondre à rien.
Référence frontmatter des règles
Configurez une règle avec le frontmatter YAML entre les marqueurs--- en haut du fichier. paths est le seul champ que Claude Code lit à partir d’une règle ; tout autre champ est ignoré sans erreur. Claude Code supprime le frontmatter avant de charger la règle en contexte.
Si le YAML entre les marqueurs ne s’analyse pas, Claude Code ignore le frontmatter et charge la règle comme si elle n’avait pas de
paths. Exécutez claude --debug pour voir l’erreur d’analyse.
Partager les règles entre les projets avec des symlinks
Le répertoire.claude/rules/ supporte les symlinks, de sorte que vous pouvez maintenir un ensemble partagé de règles et les lier dans plusieurs projets. Les symlinks circulaires sont détectés et gérés correctement.
Claude Code traite un symlink dont la cible se trouve en dehors de votre répertoire de travail comme un import externe. Les règles liées ne se chargent pas jusqu’à ce que vous approuviez les imports externes pour le projet, et après cela seulement celles sans champ paths se chargent. Claude Code demande cette approbation uniquement quand un fichier de mémoire de projet importe un fichier en dehors du répertoire de travail avec @path, pas pour les symlinks seuls. Pour charger les règles partagées sans cette approbation, gardez-les dans ~/.claude/rules/, où elles s’appliquent à chaque projet sur votre machine.
Cet exemple lie à la fois un répertoire partagé et un fichier individuel :
.claude/rules/ ou CLAUDE.md vers un chemin réseau tel que le partage UNC \\server\share ou un chemin sous /net ou /Network, les instructions liées ne se chargent pas. Claude Code ne suit pas le lien, car la recherche d’un tel chemin peut contacter l’hôte qu’il nomme. Les chemins \\wsl$ ne comptent pas comme des chemins réseau.
Règles au niveau utilisateur
Les règles personnelles dans~/.claude/rules/ s’appliquent à chaque projet sur votre machine. Utilisez-les pour les préférences qui ne sont pas spécifiques au projet :
Gérer CLAUDE.md pour les grandes équipes
Pour les organisations déployant Claude Code sur plusieurs équipes, vous pouvez centraliser les instructions et contrôler quels fichiers CLAUDE.md sont chargés.Déployer un CLAUDE.md à l’échelle de l’organisation
Les organisations peuvent déployer un CLAUDE.md géré de manière centralisée qui s’applique à tous les utilisateurs sur une machine. Ce fichier ne peut pas être exclu par les paramètres individuels.1
Créer le fichier à l'emplacement de la politique gérée
- macOS :
/Library/Application Support/ClaudeCode/CLAUDE.md - Linux et WSL :
/etc/claude-code/CLAUDE.md - Windows :
C:\Program Files\ClaudeCode\CLAUDE.md
2
Déployer avec votre système de gestion de configuration
Utilisez MDM, Group Policy, Ansible ou des outils similaires pour distribuer le fichier sur les machines des développeurs. Consultez paramètres gérés pour d’autres options de configuration à l’échelle de l’organisation.
claudeMd vous permet de placer le contenu CLAUDE.md géré directement dans managed-settings.json au lieu de déployer un fichier séparé.
Portée : chaque session Claude Code sur la machine, dans chaque référentiel. Pour des conseils spécifiques au référentiel, validez un CLAUDE.md de projet à la place.
Précédence : identique à un fichier CLAUDE.md géré. Se charge avant CLAUDE.md utilisateur et projet.
Où c’est honoré : paramètres gérés et politiques uniquement. Définir claudeMd dans les paramètres utilisateur, projet ou locaux n’a aucun effet.
L’exemple ci-dessous ajoute des instructions comportementales directement dans un fichier de paramètres gérés :
Les règles de paramètres sont appliquées par le client indépendamment de ce que Claude décide de faire. Les instructions CLAUDE.md façonnent le comportement de Claude mais ne constituent pas une couche d’application stricte.
Exclure des fichiers CLAUDE.md spécifiques
Dans les grands monorepos, les fichiers CLAUDE.md ancêtres peuvent contenir des instructions qui ne sont pas pertinentes pour votre travail. Le paramètreclaudeMdExcludes vous permet d’ignorer des fichiers spécifiques par chemin ou modèle glob.
Cet exemple exclut un CLAUDE.md de niveau supérieur et un répertoire de règles d’un dossier parent. Ajoutez-le à .claude/settings.local.json pour que l’exclusion reste locale à votre machine :
claudeMdExcludes à n’importe quelle couche de paramètres : utilisateur, projet, local ou politique gérée. Les tableaux fusionnent entre les couches.
Pour exclure un fichier de règles que vous atteignez via un symlink, que le fichier ou son répertoire soit le lien, écrivez le modèle par rapport à l’un ou l’autre chemin : le chemin du fichier sous .claude/rules/ ou sa cible de lien. Un modèle qui correspond à l’un ou l’autre chemin exclut le fichier. Avant v2.1.239, seul un modèle qui correspondait à la cible du lien excluait le fichier.
Les fichiers CLAUDE.md de politique gérée ne peuvent pas être exclus. Cela garantit que les instructions à l’échelle de l’organisation s’appliquent toujours indépendamment des paramètres individuels.
AGENTS.md
Claude Code peut lireAGENTS.md comme vos instructions de projet, donc un référentiel déjà configuré pour d’autres agents de codage fonctionne sans ajouter un CLAUDE.md, une importation ou un paramètre. Ce tableau montre ce que Claude lit par défaut pour chaque combinaison de fichiers d’instructions dans votre référentiel :
Pour modifier le comportement par défaut, par exemple pour que Claude lise toujours les deux fichiers, lise uniquement
CLAUDE.md, ou lise uniquement les instructions gérées de votre organisation, modifiez le paramètre Instructions du projet.
La lecture directe de
AGENTS.md nécessite Claude Code v2.1.277 ou une version ultérieure. Dans certaines sessions, Claude ne peut pas lire AGENTS.md, donc importez-le à partir d’un CLAUDE.md à la place.Quand Claude Code lit AGENTS.md
Par défaut, Claude litAGENTS.md uniquement quand vous n’avez pas de CLAUDE.md dans votre répertoire de travail ou au-dessus. Voici lesquels de vos fichiers comptent pour cette vérification :
- Comptent, donc Claude les lit à la place de
AGENTS.md: unCLAUDE.md,.claude/CLAUDE.md, ouCLAUDE.local.mddans votre répertoire de travail ou n’importe quel répertoire au-dessus - Ne comptent pas, et continuent à se charger aux côtés de
AGENTS.md: votre~/.claude/CLAUDE.md, leCLAUDE.mdgéré de votre organisation, et les fichiers.claude/rules/
- Au démarrage de la session : tous les
AGENTS.mdet.claude/AGENTS.mddans votre répertoire de travail et les répertoires au-dessus. Dans une session interactive, vous voyez une ligne commeno CLAUDE.md found; AGENTS.md loaded: /home/you/repo/AGENTS.mddans la conversation - Quand Claude travaille dans les sous-répertoires : le
AGENTS.mdd’un sous-répertoire, quand Claude ouvre un fichier là avec l’outil Read et ce sous-répertoire n’a aucun des trois fichiersCLAUDE.mdqui lui sont propres - À l’intérieur de chaque
AGENTS.md: les importations@pathsont développées, les motifsclaudeMdExcludess’appliquent, et les sous-agents qui ignorent les instructions du projet ignorent aussi ces fichiers - Non lus :
AGENTS.local.md,AGENTS.override.md, ou n’importe quoi sous un répertoire.agents/
Parce que
CLAUDE.local.md compte, en ajouter un pour conserver vos propres instructions non validées dans un projet qui repose sur AGENTS.md arrête Claude de lire AGENTS.md pour vous. Pour conserver votre CLAUDE.local.md et toujours avoir Claude qui lit AGENTS.md, définissez Instructions du projet sur claude-md-and-agents-md.Choisir quels fichiers d’instructions charger
Pour modifier les fichiers que Claude lit, tapez/config dans une session Claude Code pour ouvrir le panneau des paramètres, puis définissez Instructions du projet sur l’une de ces valeurs :
Vous pouvez également définir la valeur dans un fichier de paramètres au lieu de
/config. Ajoutez-la sous l’ID du plugin agents-md intégré dans pluginConfigs, dans ~/.claude/settings.json, un fichier --settings, ou les paramètres gérés. Claude Code l’ignore dans les fichiers de paramètres de projet et locaux. Cet exemple fait que Claude lit les deux fichiers :
settings.json
Quand le support de AGENTS.md n’est pas disponible
Dans ces sessions, Claude lit uniquement les fichiersCLAUDE.md, et Instructions du projet n’apparaît pas dans le panneau des paramètres /config :
- Vous utilisez une version de Claude Code antérieure à v2.1.277
- Vous avez désactivé le plugin
agents-mdintégré dans/plugin - Dans certains cas, c’est votre première session après la mise à niveau à partir de v2.1.276 ou antérieur. Claude lit
AGENTS.mdà partir de votre prochaine session
CLAUDE.md. Sur ces versions, mettez à jour Claude Code. Pour donner votre AGENTS.md à Claude dans l’une de ces sessions, importez-le à partir d’un CLAUDE.md.
Où AGENTS.md diffère de CLAUDE.md
UnAGENTS.md que Claude lit via le paramètre Instructions du projet diffère d’un CLAUDE.md à ces endroits :
Supprimer une ancienne solution de contournement AGENTS.md
Si vous avez configuré Claude Code pour lireAGENTS.md avant qu’il ne le fasse de lui-même, voici ce qu’il faut faire avec chaque configuration courante :
- Un
CLAUDE.mdcontenant@AGENTS.md: vous pouvez le laisser. Conserver l’importation ne fait jamais que Claude liseAGENTS.mddeux fois, quelle que soit la valeur Instructions du projet que vous utilisez. Supprimez leCLAUDE.mds’il ne contient rien d’autre, ou conservez-le si certaines de vos sessions ne peuvent pas chargerAGENTS.mddirectement. - Un
CLAUDE.mdqui dit à Claude en mots de lireAGENTS.md: Claude ne voitAGENTS.mdque s’il décide d’ouvrir le fichier. Supprimez leCLAUDE.mdpour que Claude liseAGENTS.mddirectement, ou remplacez la phrase par une importation@AGENTS.md. - Un
CLAUDE.mdlié symboliquement àAGENTS.md: rien, ou supprimez le lien symbolique. De toute façon, Claude lit le contenu une fois. - Un hook
SessionStartqui imprimeAGENTS.md: supprimez-le. Une fois que Claude litAGENTS.mddirectement, le hook ajoute une deuxième copie au contexte.
Partager un fichier avec d’autres outils de codage
Quand Claude ne lit pas votreAGENTS.md directement, vous pouvez toujours le conserver comme le seul fichier que chaque outil partage en mettant une importation @AGENTS.md dans un CLAUDE.md à côté. Faites cela quand votre projet a aussi un CLAUDE.md, quand vous avez défini Instructions du projet sur claude-md, ou dans les sessions qui ne peuvent pas charger AGENTS.md. Ajoutez toutes les instructions spécifiques à Claude sous l’importation, et Claude lit le fichier importé en premier, puis le reste :
CLAUDE.md
- Édition : Claude lit
CLAUDE.mdvia le lien, mais les outils Edit et Write refusent d’écrire via un lien symbolique, et le refus dirige Claude à éditer la cible du lien,AGENTS.md, à la place - Windows : si vous ou quelqu’un qui clone le référentiel travaillez sur Windows, utilisez l’importation
@AGENTS.mdà la place. Créer un lien symbolique là nécessite les privilèges d’administrateur ou le mode développeur, et Git vérifie un lien symbolique validé comme un fichier texte brut sauf sicore.symlinksest activé, ce qui laisse ce clone avec unCLAUDE.mdd’une ligne à la place de vos instructions
/context dans votre prochaine session et confirmez que CLAUDE.md apparaît sous Fichiers de mémoire.
Migrer les instructions d’autres outils
L’exécution de/init lit les fichiers d’instructions d’autres outils et incorpore les parties pertinentes dans le CLAUDE.md généré :
- Règles Cursor dans
.cursor/rules/ou.cursorrules - Règles Copilot dans
.github/copilot-instructions.md - Avec
CLAUDE_CODE_NEW_INIT=1défini :AGENTS.md,.devin/rules/,.windsurf/rules/ou.windsurfrules, et.clinerules
/import pour apporter la configuration d’un agent de codage pris en charge dans Claude Code, qui ajoute une copie unique de fichiers d’instructions tels que AGENTS.md au CLAUDE.md correspondant et transporte les serveurs MCP, les commandes, les sous-agents et les compétences. Nécessite Claude Code v2.1.213 ou une version ultérieure.
Mémoire automatique
La mémoire automatique permet à Claude d’accumuler des connaissances d’une session à l’autre sans que vous n’écriviez rien. Au fur et à mesure qu’il travaille, Claude enregistre quatre types de notes pour lui-même. Claude enregistre le type sous la forme d’un champtype dans le frontmatter du fichier de mémoire :
user: votre rôle, expertise et préférences de travailfeedback: les corrections que vous donnez à Claude et les approches que vous confirmezproject: le travail en cours, les délais et les décisions que Claude ne peut pas déduire du code ou de l’historique gitreference: où trouver des informations en dehors du projet, comme un suivi de problèmes ou un tableau de bord
Activer ou désactiver la mémoire automatique
La mémoire automatique est activée par défaut. Pour la basculer, ouvrez/memory dans une session et utilisez le bouton bascule de mémoire automatique, qui enregistre autoMemoryEnabled dans vos paramètres utilisateur à ~/.claude/settings.json. Pour la désactiver pour un seul projet, définissez autoMemoryEnabled dans les paramètres de ce projet :
CLAUDE_CODE_DISABLE_AUTO_MEMORY=1.
Emplacement de stockage
Chaque projet obtient son propre répertoire de mémoire à~/.claude/projects/<project>/memory/. Le chemin <project> est dérivé du référentiel git, donc tous les worktrees et sous-répertoires dans le même référentiel partagent un répertoire de mémoire automatique. En dehors d’un référentiel git, la racine du projet est utilisée à la place.
Si vous définissez CLAUDE_CODE_PROJECT_DIR_NAME à côté de CLAUDE_CONFIG_DIR, Claude Code utilise ce nom comme répertoire <project> sous <config dir>/projects/ quel que soit le référentiel dans lequel vous le lancez, donc les projets lancés avec ce répertoire de configuration partagent un répertoire de mémoire automatique. Nécessite Claude Code v2.1.234 ou ultérieur.
Pour stocker la mémoire automatique dans un emplacement différent, définissez autoMemoryDirectory dans votre settings.json. Il est lu à partir de n’importe quel scope de paramètres : utilisateur, projet, local, politique, ou --settings.
~/.
Lorsqu’elle est définie dans le .claude/settings.json ou .claude/settings.local.json d’un projet, Claude Code l’honore selon la même règle de confiance de l’espace de travail que les hooks dans les fichiers de paramètres. Tandis que permissions.blockReadsOutsideWorkingDirectories est activé, Claude Code ne charge aucune mémoire automatique à partir d’un répertoire qu’un fichier de paramètres fourni par le référentiel choisit et n’en sauvegarde aucune, où que ce répertoire se trouve.
Le répertoire contient un index MEMORY.md et un fichier de sujet par mémoire :
MEMORY.md agit comme un index du répertoire de mémoire. Claude lit et écrit des fichiers dans ce répertoire tout au long de votre session, en utilisant MEMORY.md pour garder une trace de ce qui est stocké où.
La mémoire automatique est locale à la machine. Tous les worktrees et sous-répertoires dans le même référentiel git partagent un répertoire de mémoire automatique. Les fichiers ne sont pas partagés entre les machines ou les environnements cloud.
Claude Code supprime les anciennes transcriptions de session après la période de rétention cleanupPeriodDays, mais exclut les fichiers de mémoire du répertoire de mémoire de ce balayage de rétention. MEMORY.md et les fichiers de sujet restent jusqu’à ce que vous ou Claude les modifiiez ou les supprimiez.
Comment ça marche
Les 200 premières lignes deMEMORY.md, ou les premiers 25 KB, selon ce qui vient en premier, sont chargés au début de chaque conversation. Le contenu au-delà de ce seuil n’est pas chargé au démarrage de la session. Claude garde MEMORY.md concis en déplaçant les notes détaillées dans des fichiers de sujet séparés.
Après que Claude écrive dans MEMORY.md, Claude Code mesure le fichier par rapport aux limites de lecture de 200 lignes et 25 KB. Si le fichier est proche d’une limite, Claude Code rappelle à Claude de le raccourcir : garder une ligne par entrée, déplacer les détails dans les fichiers de sujet, et fusionner ou supprimer les entrées obsolètes. Si le fichier dépasse une limite, l’écriture réussit toujours, mais Claude Code retourne une erreur indiquant à Claude de réécrire l’index, car tout ce qui dépasse la limite est supprimé au prochain chargement.
Cette limite s’applique uniquement à MEMORY.md. Claude Code charge un fichier CLAUDE.md de jusqu’à 4 MiB en intégralité et ignore un fichier plus volumineux. Les fichiers plus courts produisent une meilleure adhérence.
Claude Code ne charge pas les fichiers de sujet tels que user_role.md ou feedback_testing.md au démarrage. Claude les lit à la demande en utilisant ses outils de fichiers standard quand il a besoin de l’information.
La mémoire automatique de la conversation principale n’est pas chargée dans les sous-agents ; l’exception est un fork, qui hérite de la conversation parent et de l’invite système. La propre mémoire automatique d’un sous-agent, activée avec le champ memory du sous-agent, est un répertoire séparé.
Claude lit et écrit les fichiers de mémoire pendant votre session. Quand vous voyez des messages comme « Saved 2 memories » ou « Recalled 2 memories » dans l’interface Claude Code, Claude met activement à jour ou lit à partir de ~/.claude/projects/<project>/memory/.
Quand Claude écrit un fichier de mémoire qui commence par du frontmatter YAML, Claude Code enregistre l’heure d’écriture dans un champ frontmatter modified sous la forme d’un horodatage ISO 8601. L’horodatage montre à quel point le fait est actuel, à la fois pour vous et pour Claude quand il relit la mémoire. Tout fichier qui a du frontmatter obtient le champ la prochaine fois que Claude l’écrit, y compris les fichiers créés sur des versions antérieures ; Claude Code n’ajoute jamais de frontmatter à un fichier qui n’en a pas. Le champ modified nécessite Claude Code v2.1.214 ou ultérieur.
Auditer et modifier votre mémoire
Les fichiers de mémoire automatique sont du markdown brut que vous pouvez modifier ou supprimer à tout moment. Exécutez/memory pour parcourir et ouvrir les fichiers de mémoire à partir d’une session.
Afficher et modifier avec /memory
La commande /memory liste vos fichiers CLAUDE.md, CLAUDE.local.md et autres emplacements de fichiers de mémoire dans les portées utilisateur et projet, y compris les entrées CLAUDE.md utilisateur et projet pour les fichiers qui n’existent pas encore. Elle vous permet également de basculer la mémoire automatique activée ou désactivée et fournit une option pour ouvrir le dossier de mémoire automatique. Sélectionnez n’importe quel fichier pour l’ouvrir dans votre éditeur ; en sélectionner un qui n’existe pas encore le crée d’abord. Pour vérifier quels fichiers CLAUDE.md et fichiers de règles ont été chargés dans la session actuelle, exécutez /context.
Les éditeurs GUI tels que VS Code ouvrent le fichier dans une fenêtre séparée, et vous pouvez continuer à utiliser la session pendant qu’il est ouvert. Avant la v2.1.216, /memory attendait que vous fermiez le fichier avant de répondre. Les éditeurs de terminal tels que Vim prennent le contrôle du terminal jusqu’à ce que vous quittiez.
Quand vous demandez à Claude de se souvenir de quelque chose, comme « toujours utiliser pnpm, pas npm » ou « se souvenir que les tests d’API nécessitent une instance Redis locale », Claude l’enregistre dans la mémoire automatique. Pour ajouter des instructions à CLAUDE.md à la place, demandez directement à Claude, comme « ajouter ceci à CLAUDE.md », ou modifiez le fichier vous-même via /memory.
Dépanner les problèmes de mémoire
Ce sont les problèmes les plus courants avec CLAUDE.md et la mémoire automatique, ainsi que les étapes pour les déboguer.Claude ne suit pas mon CLAUDE.md
Le contenu CLAUDE.md est livré en tant que message utilisateur après l’invite système, pas en tant que partie de l’invite système elle-même. Claude le lit et essaie de le suivre, mais il n’y a aucune garantie de conformité stricte, surtout pour les instructions vagues ou conflictuelles. Pour déboguer :- Exécutez
/contextet vérifiez la liste sous Fichiers de mémoire pour confirmer que vos fichiers CLAUDE.md et CLAUDE.local.md sont chargés. Si un fichierCLAUDE.mdest manquant là, Claude ne peut pas le voir. Utilisez/memorypour ouvrir et modifier les fichiers. - Vérifiez que le CLAUDE.md pertinent se trouve dans un emplacement qui se charge pour votre session (consultez Choisir où placer les fichiers CLAUDE.md).
- Rendez les instructions plus spécifiques. « Utiliser l’indentation à 2 espaces » fonctionne mieux que « formater le code correctement ».
- Recherchez les instructions conflictuelles dans les fichiers CLAUDE.md. Si deux fichiers donnent des conseils différents pour le même comportement, Claude peut en choisir un arbitrairement.
- Vérifiez si votre instruction entre en concurrence avec les conseils que Claude Code ajoute de son côté. Si votre CLAUDE.md définit des règles de commit ou de demande de tirage, désactivez les règles intégrées avec
includeGitInstructionset définissez le texte d’attribution avecattribution.
--append-system-prompt. Vous le passez au lancement, donc c’est mieux adapté aux scripts et à l’automatisation qu’à l’utilisation interactive. Pour savoir comment il se comporte lorsque vous reprenez une conversation, consultez Indicateurs d’invite système dans les conversations reprises.
Mon AGENTS.md ne se charge pas
Si votre référentiel a unAGENTS.md et que Claude ne semble pas savoir ce qu’il dit, la cause habituelle est un CLAUDE.md quelque part sur le chemin du projet. Par défaut, Claude lit AGENTS.md uniquement lorsque vous n’avez pas de CLAUDE.md ou CLAUDE.local.md dans votre répertoire de travail ou au-dessus. Vérifiez ceux-ci dans l’ordre :
- Recherchez un
CLAUDE.md,.claude/CLAUDE.md, ouCLAUDE.local.mddans votre répertoire de travail ou dans n’importe quel répertoire au-dessus, autre que votre~/.claude/CLAUDE.md. Si vous en trouvez un, Claude le lit à la place deAGENTS.mdsauf si vous définissez Instructions du projet surclaude-md-and-agents-md. - Exécutez
claude --versionet confirmez v2.1.277 ou ultérieure. Avant v2.1.281, certaines sessions, comme celles sur Amazon Bedrock ou avec la télémétrie désactivée, ne pouvaient pas chargerAGENTS.mdnon plus, donc sur ces versions, mettez à jour vers v2.1.281 ou ultérieure. - Tapez
/configdans votre session pour ouvrir le panneau des paramètres et confirmez que Instructions du projet n’est pas défini surclaude-mdoumanaged-only. Si vous ne voyez pas le paramètre du tout, votre session est une session qui ne peut pas chargerAGENTS.md.
AGENTS.md, exécutez /memory et recherchez son chemin dans la liste.
Avant v2.1.280, /memory et /context ne listaient pas un AGENTS.md que Claude lisait directement. Sur ces versions, demandez plutôt à Claude ce que ses instructions du projet disent.
Si vous voulez conserver le CLAUDE.md que vous avez trouvé, ou si votre session ne peut pas charger AGENTS.md, ajoutez un CLAUDE.md à côté de votre AGENTS.md qui l’importe.
Je ne sais pas ce que la mémoire automatique a enregistré
Exécutez/memory et sélectionnez le dossier de mémoire automatique pour parcourir ce que Claude a enregistré. Tout est du markdown brut que vous pouvez lire, modifier ou supprimer.
Mon CLAUDE.md est trop volumineux
Les fichiers de plus de 200 lignes consomment plus de contexte et peuvent réduire l’adhérence. Claude Code ignore un fichier de plus de 4 Mio. Utilisez les règles spécifiques au chemin pour charger les instructions uniquement lorsque Claude travaille avec des fichiers correspondants, ou réduisez le contenu qui n’est pas nécessaire dans chaque session. La division en imports@path aide à l’organisation mais ne réduit pas le contexte, puisque les fichiers importés se chargent au lancement.
Si l’un de vos fichiers d’instructions dépasse la longueur recommandée, vous voyez un avertissement au démarrage et lorsque vous exécutez /status. Vous voyez également un avertissement lorsque les fichiers qui sont chacun dans cette longueur s’ajoutent au-delà d’une limite combinée au démarrage de la session. Chaque CLAUDE.md, fichier de règles et import @path compte comme un fichier séparé.
La vérification /doctor propose des réductions pour un CLAUDE.md enregistré : elle supprime le contenu que Claude peut dériver de la base de code, comme les dispositions de répertoires, les listes de dépendances et les aperçus d’architecture, et conserve les pièges, la justification et les conventions qui diffèrent des paramètres par défaut des outils. La vérification de réduction nécessite Claude Code v2.1.206 ou version ultérieure.
Les instructions semblent perdues après /compact
CLAUDE.md à la racine du projet survit à la compaction : après /compact, Claude relit votre CLAUDE.md à partir du disque et le réinjecte à nouveau dans la session. Les fichiers CLAUDE.md imbriqués dans les sous-répertoires et les règles avec frontmatter paths: se rechargent lorsque Claude lit les fichiers auxquels elles s’appliquent.
Si une instruction a disparu après la compaction, elle a été donnée uniquement dans la conversation, se trouve dans un CLAUDE.md imbriqué qui ne s’est pas encore rechargé, ou est une règle spécifique au chemin qui n’a pas correspondu à un fichier depuis. Ajoutez les instructions données uniquement dans la conversation à CLAUDE.md pour les rendre persistantes. Consultez Ce qui survit à la compaction pour la répartition complète.
Consultez Écrire des instructions efficaces pour des conseils sur la taille, la structure et la spécificité.
Ressources connexes
- Déboguer votre configuration : diagnostiquez pourquoi CLAUDE.md ou les paramètres ne prennent pas effet
- Skills : empaquetez les flux de travail répétables qui se chargent à la demande
- Paramètres : configurez le comportement de Claude Code avec les fichiers de paramètres
- Mémoire des subagents : laissez les subagents maintenir leur propre mémoire automatique