“Chaque outil que vous laissez branché consomme du courant. Un établi avec douze machines qui tournent à vide est un établi qui fait sauter son propre disjoncteur.”
9. enabledPlugins : désactivez, ne désinstallez pas
Ce que ça fait : détermine quels plugins installés se chargent au démarrage de session. Pourquoi ça compte : chaque plugin actif charge ses hooks, son contenu SKILL.md et ses schémas d'outils dans votre budget de contexte avant même que vous ayez tapé quoi que ce soit. L'article rapporte être passé de 14 plugins activés à 4.
{
"enabledPlugins": {
"some-plugin@marketplace": false
}
}Mettre un plugin à false le garde installé mais non chargé ; réactivez-le par session avec /plugin enable quand vous en avez réellement besoin.
10. permissions.deny, et le bug à connaître
Ce que ça fait : empêche Claude d'exécuter certains outils ou de lire certains fichiers, dans le but de bloquer rm -rf, la lecture de .env, ou l'écriture hors du projet.
{
"permissions": {
"deny": ["Read(./.env)", "Bash(rm -rf:*)"]
}
}- Ajoutez aussi une couche au niveau du système de fichiers : chmod 600 .env pour que l'OS refuse même si une règle deny ne se déclenche pas.
- Vérifiez avec /permissions dans Claude Code ; si vos règles n'apparaissent pas, redémarrez la session.
11. hooks.SessionStart : ne chargez que ce dont ce répertoire a besoin
Ce que ça fait : SessionStart se déclenche quand vous ouvrez Claude Code dans un répertoire ; il peut exécuter n'importe quoi : afficher des infos d'environnement, vérifier l'état git, injecter un fichier de contexte. Pourquoi ça compte : la plupart des gens sur-injectent, faisant grossir CLAUDE.md à des milliers de tokens parce que chaque règle de projet y est allée. SessionStart permet de ne charger que les règles pertinentes pour la branche ou le répertoire courant.
{
"hooks": {
"SessionStart": [
{ "command": "cat .claude/context-$(git branch --show-current).md 2>/dev/null" }
]
}
}Chaque branche charge son propre petit fichier de contexte, et le budget cesse de fuir. (Confirmez le schéma exact des hooks dans la documentation actuelle ; le format de configuration des hooks change d'une version à l'autre.)
12. disableAllHooks : l'interrupteur d'urgence
Ce que ça fait : l'article décrit un unique réglage qui désactive tous les hooks d'un coup. Pourquoi ça compte : quand Claude Code se comporte étrangement (commandes fantômes, blocages au démarrage, écritures mystérieuses), un hook défaillant est une cause fréquente, et tout couper d'un coup est plus rapide que de bisecter hook par hook.
{
"disableAllHooks": true
}- Laissez-le désactivé en temps normal. Quand quelque chose casse, activez-le, redémarrez, et voyez si le problème disparaît.
- Si oui, réactivez les hooks un par un ; si non, le bug est ailleurs. (Cette clé n'est pas vérifiée ; consultez la documentation actuelle pour le nom exact.)
13. model : le réglage par projet
Où : .claude/settings.json à la racine du projet. Ce que ça fait : définit le modèle par défaut pour ce projet, en remplaçant votre choix global. Pourquoi ça compte : les gens configurent globalement le modèle le plus puissant pour le travail difficile, puis ouvrent un projet composé surtout de markdown ou de scripts shell et paient le tarif haut de gamme pour du travail qu'un modèle moins cher gère très bien.
{
"model": "claude-haiku-4-5"
}Le niveau projet gagne. Ouvrez le projet, obtenez le bon modèle, passez à la suite.
14. mcpServers : utilisez le drapeau enabled
Ce que ça fait : les serveurs MCP connectent Claude à des outils externes, et chaque serveur connecté charge son schéma d'outils complet dans le contexte. Pourquoi ça compte : les gens connectent des serveurs pour tester et ne les déconnectent jamais ; l'article estime que chaque serveur inactif coûte quand même le schéma en contexte à chaque démarrage de session. Gardez-les configurés mais non chargés avec un drapeau enabled.
{
"mcpServers": {
"my-server": {
"command": "npx",
"args": ["-y", "@scope/my-mcp-server"],
"enabled": false
}
}
}Basculez enabled à true par session quand vous en avez besoin. (Vérifiez que le drapeau enabled est honoré dans votre version ; les clés exactes de configuration MCP varient.)
15. cleanupPeriodDays : le cache dont personne ne parle
Ce que ça fait : définit combien de jours Claude Code conserve les transcriptions, journaux de débogage et données de session intermédiaires (30 par défaut). Pourquoi ça compte : les fonctionnalités qui apprennent de votre historique, et vos propres grep ultérieurs dans les anciennes sessions, ne voient pas plus loin que cette fenêtre. Une fenêtre plus longue donne plus de signal pour un faible coût en disque.
{
"cleanupPeriodDays": 180
}En une ligne chacun
- enabledPlugins et mcpServers : gardez les éléments installés/configurés mais mis à false/désactivés pour qu'ils ne préchargent pas votre contexte.
- permissions.deny n'est qu'une couche ; doublez-la de permissions au niveau du système de fichiers et vérifiez qu'elle s'applique réellement.
- hooks.SessionStart charge un contexte par branche pour garder CLAUDE.md petit ; disableAllHooks est l'interrupteur d'urgence quand les hooks déraillent.
- Définissez un modèle par projet pour les dépôts légers, et augmentez cleanupPeriodDays pour conserver plus d'historique de sessions.
Où aller ensuite