Nouvel ordinateur. On installe Claude Code. Et là : Claude ne sait plus rien. Les règles de développement encodées dans le CLAUDE.md global, les guides de référence, la statusline qui affichait la consommation de tokens en temps réel, les plugins — tout est resté sur l'ancienne machine.
La mauvaise nouvelle : rien de tout ça n'est synchronisé automatiquement. La bonne : tout est dans des fichiers. Un prompt suffit à reconstruire l'environnement complet en quelques minutes, à condition d'avoir préparé ce prompt en amont.
Ce qui vit dans ~/.claude/
L'environnement Claude Code global est concentré dans un seul dossier :
~/.claude/. Ce qu'on y trouve :
CLAUDE.md— les instructions globales : comment travailler, quelles règles s'appliquent à tous les projetssettings.json— configuration technique : permissions, statusline, hookshooks/— scripts exécutés à des événements Claude Codecommands/— slash commands personnalisées (/audit-memory, etc.)memory/— mémoires globalesprojects/<cwd>/memory/— mémoires par projet
Ce dossier n'est ni versionné ni synchronisé par défaut. Si la machine change, le dossier disparaît. Tout ce qu'on a construit au fil des sessions aussi.
Les fichiers de référence qu'on peut y stocker — guides de développement, bonnes pratiques spécifiques à un langage — ne sont pas chargés automatiquement. Claude les lit sur demande explicite. Eux aussi, ils ne survivent pas à un changement de machine sans intervention.
Le CLAUDE.md global : les règles du jeu
~/.claude/CLAUDE.md est chargé dans toutes les sessions, tous projets
confondus. C'est là qu'on encode ce qui doit s'appliquer partout : comment Claude
doit travailler, quelles restrictions sont actives, comment les commits doivent être
rédigés, comment la mémoire automatique fonctionne.
C'est aussi le fichier le plus dense à reconstruire de mémoire — parce que chaque
règle qu'il contient vient d'une expérience concrète. Une convention de commit encodée
après avoir découvert qu'on n'en voulait pas dans les messages. Une restriction sur les
fichiers .env ajoutée après un incident. Un principe d'économie de contexte
qui a pris des semaines à calibrer.
La structure qui fonctionne bien en pratique :
- Règles de mémoire automatique (quand sauvegarder, quoi éviter)
- Restrictions sécurité (fichiers interdits, limites git)
- Conventions de commit (ce qu'on ne veut pas voir dans les messages)
- Principes de conception (YAGNI, les 4 questions avant un refactoring)
- Mode de délégation entre modèles (ce qu'Opus fait directement, ce qu'il délègue)
- Économie de contexte (taille max des fichiers lus directement, quand déléguer)
Cible : moins de 100 lignes. Au-delà, le fichier commence à charger du contexte inutile pour la plupart des tâches. Les sections rarement utiles (bonnes pratiques Go, guide de développement détaillé) vont dans des fichiers séparés référencés en texte simple.
Les fichiers de référence
Certaines connaissances sont trop volumineuses pour le CLAUDE.md principal mais trop
spécifiques pour aller dans un CLAUDE.md de projet. La solution : des fichiers de
référence dans ~/.claude/, lus sur demande.
Exemples concrets :
DEVELOPPEMENT-PROPRE.md— les principes fondamentaux : YAGNI, triangle robustesse/testabilité/simplicité, checklist code review, anti-patterns à évitergo-best-practices.md— patterns Go spécifiques avec exemples de code : error handling, concurrence, PostgreSQL, testing table-driven, logging structuré
Le CLAUDE.md global contient juste une ligne de référence :
Guide Développement : `~/.claude/DEVELOPPEMENT-PROPRE.md`
Go Best Practices (patterns, exemples code) : `~/.claude/go-best-practices.md`
Claude lit ces fichiers quand ils sont pertinents pour la tâche. Le reste du temps, ils n'occupent pas de contexte.
La statusline : scraper les tokens en temps réel
Claude Code supporte une statusline configurable dans ~/.claude/settings.json :
{
"statusLine": {
"type": "command",
"command": "bash /home/TON_USER/.claude/hooks/statusline.sh"
}
}
Le script affiche dans la barre de Claude Code des informations qui ne sont pas disponibles nativement : consommation de contexte en pourcentage, estimation de tokens restants, branche git courante.
🌿 main │ 🤖 Sonnet 4.6 │ 🟢 Ctx: ▓▓░░░░░░ 34% │ ⏱ 46% → 19h00 (3h20m) │ 📅 ~59% (lun 14h)
Le script scrape l'endpoint /usage en background via tmux, met en cache
les résultats 5 minutes dans ~/.claude/usage-exact.json. Prérequis :
bash 4+, jq, tmux, python3.
Sans ce script, la seule indication de consommation est la barre de progression dans l'interface — pas de chiffre, pas d'estimation.
Les plugins
Claude Code supporte un système de plugins (skills) qui enrichissent les sessions avec des workflows spécialisés. Ils s'installent via :
claude plugins install <nom-du-plugin>
Les plugins qui changent réellement la façon de travailler :
- superpowers — brainstorming structuré, plans d'implémentation, debugging systématique, TDD, revue de code
- frontend-design — génération d'interfaces avec qualité production
- code-simplifier — revue automatique du code changé pour détecter les sur-ingénieries
Ils se réinstallent en une commande. Le seul prérequis est d'avoir la liste des plugins qu'on utilisait — d'où l'utilité de la noter quelque part avant de changer de machine.
Les mémoires : ce qui se reconstruit seul vs ce qui ne se reconstruit pas
Les mémoires projet (~/.claude/projects/<cwd>/memory/) ne méritent
pas toujours d'être migrées manuellement. Elles vieillissent vite — les mémoires
de type project en particulier. Rouvrir un projet sur un nouvel environnement
est l'occasion de les laisser se reconstruire naturellement, session après session,
avec des informations à jour.
Ce qui mérite d'être migré en priorité : les mémoires globales
(~/.claude/memory/). Ce sont les préférences transversales — le profil
utilisateur (niveau technique, domaines de connaissance), les feedbacks qui s'appliquent
à tous les projets (style de réponse attendu, règles de communication). Ces informations
prennent du temps à reconstruire parce qu'elles viennent d'expériences cumulées sur
plusieurs projets.
Pour les mémoires de feedback en particulier : chaque règle encode une correction passée. "Ne pas résumer ce qu'on vient de faire en fin de message" — Claude doit se faire corriger plusieurs fois avant que ça entre dans une mémoire. Sur un nouvel environnement sans cette mémoire, on recommence les corrections depuis zéro.
Le prompt de bootstrap
La vraie solution au problème n'est pas de synchroniser les fichiers — c'est d'avoir un prompt de bootstrap qui recrée tout à partir de zéro. Un document qui contient :
- Le contenu exact de
~/.claude/CLAUDE.md - Le contenu de chaque fichier de référence
- La configuration
settings.json - Le script statusline
- La liste des plugins
- Les mémoires globales à restaurer
On donne ce document à Claude sur le nouvel environnement avec l'instruction "recrée tout ça". Claude crée les fichiers, configure les settings, installe ce qu'il peut installer. En 10 minutes, l'environnement est fonctionnel.
L'avantage sur une synchronisation de fichiers : c'est l'occasion de relire et d'actualiser. Un prompt de bootstrap qu'on maintient au fil du temps reflète l'état réel de ce qu'on veut — pas un snapshot figé de l'ancienne machine.
Le contexte CLAUDE.md associé en bas de page contient un exemple concret complet :
le CLAUDE.md global, la configuration settings.json, la liste des plugins,
et la checklist de vérification post-installation.
Conclusion
Tout ce que Claude sait sur la façon dont on veut travailler est dans des fichiers. Ces fichiers ne se synchronisent pas, ne se sauvegardent pas, et ne survivent pas à un changement de machine sans intervention consciente.
La discipline à avoir : traiter ~/.claude/ comme on traite les
dotfiles — quelque chose qu'on versionne, qu'on maintient, et dont on sait
comment restaurer l'état complet depuis zéro. Le contexte CLAUDE.md associé
ci-dessous contient le prompt de bootstrap complet.