Transférer les connaissances Claude Code et l'accès MacLustr sur un autre ordinateur
Un « opérateur » MacLustr = un Mac avec (1) l'accès réseau et SSH au cluster, (2) l'outillage cluster-skill, (3) les connaissances
Claude Code (instructions globales, mémoire, commandes). Les trois scripts de operateur/ automatisent le transfert.
Ce qui constitue la connaissance Claude Code sur cet ordinateur
| Élément | Emplacement | Rôle |
|---|---|---|
| Instructions globales | ~/.claude/CLAUDE.md |
inventaire, règles, procédure remote-first, tunnel, mld… chargé à chaque session |
| Mémoire persistante | ~/.claude/projects/-Users-<user>/memory/*.md + MEMORY.md |
faits appris au fil des sessions (dossier lié au chemin du projet : -Users-simon-pierreboucher = sessions lancées depuis $HOME) |
| Commandes | ~/.claude/commands/cluster*.md |
/cluster, /cluster-status, /cluster-run, /cluster-compute, /cluster-deploy |
| Réglages | ~/.claude/settings.json |
modèle, hooks, plugins |
| Serveurs MCP | ~/.claude.json → mcpServers |
contiennent des jetons (Apify, Tavily, Notion…) — export seulement avec --mcp |
| Accès | ~/.ssh/config (alias des 29 Macs + BHS64 + gitsrv), ~/.ssh/maclustr-egress.sh, clé ed25519 |
la clé privée ne se copie pas : on en génère une sur le nouveau Mac et on l'autorise |
| Outillage | ~/Desktop/Cluster/cluster-skill (lien ~/Desktop/cluster-skill) |
clone de gitsrv:srv/git/cluster-skill.git : wrappers mld, mlt, mlmobile, docs |
Prérequis réseau sur le nouveau Mac
- Tailscale installé et connecté au même tailnet : les noms
*.maclustr.io(GoDaddy) pointent sur les IP Tailscale100.xdes nœuds. Si l'ACL du tailnet restreint les sources (le SSH inter-nœuds y est bloqué), autoriser la nouvelle machine dans la console Tailscale. - Homebrew +
python3,rsync,jq(installés par le script si absents).pandoc/weasyprintseulement pour régénérer les PDF. - Même nom d'utilisateur macOS (
simon-pierreboucher) recommandé : les chemins absolus des documents restent valables. Sinon le script réécrit/Users/simon-pierreboucher→ nouveau$HOMEdans CLAUDE.md, la mémoire et la config SSH.
Procédure
Sur l'ordinateur actuel (source)
bash
~/Desktop/cluster-skill/operateur/export-connaissances.sh [--mcp] [--vers-cluster-skill]
# → ~/Desktop/maclustr-operateur-<date>.tar.gz (0600)
# --mcp inclut les serveurs MCP et leurs jetons
# --vers-cluster-skill copie aussi CLAUDE.md + mémoire + commandes dans cluster-skill/operateur/connaissances/ et pousse sur spbgit
# (seule édition de cluster-skill autorisée depuis le laptop : c'est un export)Transférer l'archive (AirDrop, clé USB, scp vers un nœud puis vers le nouveau Mac).
Sur le nouvel ordinateur
bash
# 1. clé + config SSH + Claude (sans réseau cluster) — depuis l'archive
tar -xzf maclustr-operateur-<date>.tar.gz -C /tmp/op && bash /tmp/op/operateur/installer-operateur.sh maclustr-operateur-<date>.tar.gz
# génère ~/.ssh/id_ed25519 si absent et affiche la clé publique à autoriserSur l'ordinateur actuel (ou n'importe quelle machine déjà autorisée, M1M32 compris) :
bash
~/Desktop/cluster-skill/operateur/autoriser-operateur.sh "<clé publique affichée>" # 29 Macs + BHS64 (ubuntu) + gitsrvSur le nouvel ordinateur, relancer l'installeur : il clone cluster-skill, pose le lien ~/Desktop/cluster-skill, vérifie ssh M1M32 et mld status.
bash
bash /tmp/op/operateur/installer-operateur.sh maclustr-operateur-<date>.tar.gzPuis ouvrir Claude Code depuis $HOME (cd ~ && claude) : CLAUDE.md et la mémoire sont chargés.
Garder deux opérateurs cohérents
- Docs, wrappers, procédures : vivent dans
cluster-skill(spbgit) →git pullsur chaque Mac. - CLAUDE.md global et mémoire : propres à chaque Mac. Après une session qui en a changé beaucoup, relancer
export-connaissances.sh --vers-cluster-skillsur la machine source puis, sur l'autre,installer-operateur.sh --depuis-cluster-skill(importe depuis le clone, sans archive). Les mémoires ne sont pas fusionnées : la plus récente remplace (sauvegarde~/.claude/backups/operateur-<date>/). - Clés : une clé par machine, toutes autorisées partout ; pour révoquer une machine, retirer sa ligne des
authorized_keys(autoriser-operateur.sh --retirer "<clé>").