Documentation
Claude Sync garde vos conversations Claude Code identiques sur tous vos PC Windows. Cette page explique comment l'installer, héberger votre serveur et régler les cas particuliers. Version 0.2.1.
Fonctionnement
Claude Code enregistre chaque conversation dans un fichier .jsonl sous %USERPROFILE%\.claude\projects, dans un dossier nommé d'après le chemin du projet : C:\Users\alice\Desktop\app devient C--Users-alice-Desktop-app. Ces fichiers ne quittent pas le PC.
Claude Sync les réplique entre vos PC par un serveur que vous hébergez. Trois moments déclenchent une synchronisation :
- À l'ouverture de Claude Code, les nouveautés des autres PC sont récupérées avant que vous ouvriez
/resume. - À la fin de chaque réponse de Claude, ce qui vient d'être écrit est envoyé, en arrière-plan.
- Toutes les 30 secondes, l'agent de Claude Sync vérifie s'il reste quelque chose à envoyer ou à recevoir.
Seules les nouvelles lignes d'une conversation sont transmises, compressées puis chiffrées. La synchronisation ne consomme aucun token : elle copie des fichiers, sans jamais appeler Claude.
Héberger son serveur
Il n'existe pas de serveur Claude Sync commun : chaque utilisateur héberge le sien, et seuls les PC qu'il appaire lui-même peuvent s'y connecter. Le serveur est léger (une vingtaine de Mo de mémoire) et ne voit que des données chiffrées. Choisissez l'emplacement qui vous convient :
VPS avec un sous-domaine
Prérequis : un VPS Linux avec sudo, un sous-domaine (par exemple sync.mondomaine.fr) avec un enregistrement DNS A vers l'IP du VPS, et les ports 80 et 443 ouverts.
git clone https://github.com/SLOWIXX/Claude_Sync.git && cd Claude_Sync/deploy/vps
./install.sh sync.mondomaine.fr
Le script installe Docker si besoin, vérifie le DNS, démarre le serveur derrière Caddy, qui obtient le certificat HTTPS tout seul, puis affiche un premier code d'invitation. Pour chaque PC suivant, créez un nouveau code :
docker compose exec claude-sync /claude-sync-server invite
VPS qui héberge déjà des sites (nginx)
Si nginx et certbot servent déjà d'autres sites, le serveur s'installe comme service systemd, sous un utilisateur dédié et isolé, à l'écoute de 127.0.0.1 uniquement. nginx le publie sur votre sous-domaine. Le dossier deploy/systemd du dépôt contient l'unité systemd, le site nginx et la procédure complète. Les codes d'invitation se créent ensuite avec :
claude-sync-invite
Un de vos PC avec Tailscale
- Installez Tailscale sur tous vos PC, connectés au même compte.
- Sur le PC qui servira de serveur, lancez l'installeur et choisissez Client et serveur. L'assistant appaire ce PC automatiquement.
- Publiez le serveur sur votre réseau Tailscale :
tailscale serve --bg 8787. Tailscale affiche l'adresse à donner aux autres PC. - Créez un code par PC avec
claude-sync-server invite.
Installer sur un PC
À faire sur chaque PC, une fois le serveur en place.
-
Créez un code d'invitation sur le serveur
Il est valable 15 minutes et ne sert qu'une fois, par exemple
K7QF-29XM. La commande dépend de votre hébergement (voir Héberger son serveur). -
Téléchargez et lancez l'installeur
Téléchargez ClaudeSync-Setup-0.2.1.exe, lancez-le et choisissez Client uniquement. L'installation se fait dans votre profil, sans droits administrateur.
« Windows a protégé votre ordinateur »L'installeur n'est pas encore signé. Cliquez sur « Informations complémentaires », puis « Exécuter quand même ».
-
Répondez à l'assistant
- Adresse du serveur : par exemple
https://sync.mondomaine.fr. - Nom de ce PC : par défaut, le nom de la machine.
- Code d'invitation : celui de l'étape 1.
- Phrase secrète : à choisir sur le premier PC, puis la même sur tous les autres.
La phrase secrète ne peut pas être récupéréeElle chiffre toutes vos données. Sans elle, aucun nouveau PC ne peut lire ce qui est sur le serveur. Gardez-la dans votre gestionnaire de mots de passe.
L'assistant sauvegarde ensuite
~/.claudedans un zip, installe les hooks Claude Code, télécharge vos sessions et démarre l'agent, qui sera relancé à chaque ouverture de session Windows. - Adresse du serveur : par exemple
-
Vérifiez
claude-sync doctor
Exemple de résultat✓ Claude Code 2.1.303 ✓ Serveur https://sync.mondomaine.fr (appareil Portable) ✓ Hooks installés ✓ Agent en cours ✓ Dernière synchro il y a 8s ✓ Projets 14 synchronisés Tout est en ordre.
Ouvrez ensuite Claude Code dans un projet et tapez
/resume: les sessions de vos autres PC y figurent.
Ce qui est synchronisé
| Élément | Emplacement | Synchro |
|---|---|---|
| Conversations, sous-agents, sorties d'outils | projects\… | Oui, par ajout |
| Mémoires des projets | projects\…\memory | Oui |
| Réglages | settings.json | Fusionnés |
| Instructions globales | CLAUDE.md | Oui |
| Skills, agents, commandes, plans, styles | skills\, agents\, commands\, plans\, output-styles\ | Oui |
| Historique des prompts | history.jsonl | Fusionné |
Points de restauration /rewind | file-history\ | En option |
| Connexion à votre compte Claude | .credentials.json | Jamais |
| État propre au PC | ~/.claude.json, caches, sessions en cours | Jamais |
La fusion de settings.json
Si vous changez le modèle sur un PC et le thème sur un autre, les deux changements sont conservés. Les hooks de Claude Sync restent propres à chaque PC, car ils pointent vers son dossier d'installation. Avant chaque réécriture, l'ancienne version est sauvegardée dans %LOCALAPPDATA%\claude-sync\backups\settings.
Skills installées par lien
Une skill qui est un lien ou une jonction Windows vers un autre dossier (par exemple ~/.agents/skills) n'est pas synchronisée, car son contenu appartient à l'outil qui l'a installée. Installez-la sur chaque PC avec cet outil.
Commandes
| Commande | Rôle |
|---|---|
claude-sync status | Serveur, dernière synchro, fichiers en attente, agent, hooks, conflits récents. |
claude-sync sync | Synchroniser immédiatement. |
claude-sync doctor | Vérifier toute l'installation, avec la commande à lancer pour chaque problème. |
claude-sync projects | Projets synchronisés et dossier local correspondant. |
claude-sync map <dossier> <id> | Lier un dossier local à un projet d'un autre PC. |
claude-sync devices | Lister les PC appairés. devices revoke <id> en révoque un. |
claude-sync agent start|stop|status | Piloter l'agent. agent disable le retire du démarrage de Windows. |
claude-sync hooks install|remove | Installer ou retirer les hooks Claude Code. |
claude-sync backup | Archiver ~/.claude en zip, sans vos identifiants. |
claude-sync init --force | Reconfigurer ce PC. |
Projets sur plusieurs PC
Un projet est identifié par son chemin depuis votre dossier utilisateur, en minuscules : C:\Users\alice\Desktop\App et C:\Users\bob\desktop\app désignent le même projet, ~/desktop/app. Rangez vos projets au même endroit sur chaque PC, et tout se retrouve sans configuration.
Si un projet est rangé ailleurs sur un PC, déclarez la correspondance une fois :
claude-sync map D:\dev\app ~/desktop/app
claude-sync projects liste aussi les projets présents sur le serveur et pas encore sur ce PC, avec le dossier où ils arriveront.
Conflits et suppressions
Une session ouverte sur deux PC
Quand vous reprenez une session déjà ouverte sur un autre PC, Claude Code affiche un avertissement au démarrage. Si vous continuez quand même, votre version devient une nouvelle session à la synchronisation suivante : les deux conversations restent dans /resume, rien n'est perdu.
Un autre fichier modifié des deux côtés
Les deux versions sont conservées : la version reçue prend la place du fichier, la vôtre est copiée dans %LOCALAPPDATA%\claude-sync\conflicts. claude-sync status affiche les derniers conflits.
Suppressions
Supprimer une skill, une commande ou une mémoire la supprime partout. Les sessions effacées par le nettoyage automatique de Claude Code ne sont jamais supprimées du serveur.
Par défaut, Claude Code efface les sessions inactives depuis 30 jours. Ajoutez "cleanupPeriodDays": 365 à votre settings.json : le réglage sera synchronisé sur tous vos PC.
Configuration
Chaque PC a son fichier %LOCALAPPDATA%\claude-sync\config.json, pris en compte à la synchronisation suivante.
{
"server": "https://sync.mondomaine.fr",
"deviceName": "Portable",
"syncInterval": "30s",
"syncFileHistory": false,
"localSettingsKeys": ["env"],
"projectOverrides": { "~/desktop/app": "D:\\dev\\app" }
}| Clé | Rôle |
|---|---|
syncInterval | Fréquence de l'agent : "30s", "2m". |
syncFileHistory | Synchroniser aussi les points de restauration /rewind. Volumineux, désactivé par défaut. |
localSettingsKeys | Clés de settings.json à ne jamais synchroniser, par exemple env ou model. |
projectOverrides | Correspondances créées par claude-sync map. |
Les journaux sont dans %LOCALAPPDATA%\claude-sync\logs : agent.log, hooks.log, sync.log.
Sécurité
Vos conversations contiennent souvent du code, des extraits de fichiers .env ou des jetons. Claude Sync part du principe que le serveur peut être compromis.
| Si quelqu'un… | il ne peut pas… |
|---|---|
| vole le disque du serveur | lire vos données : elles sont chiffrées sur vos PC (age, X25519) avec une clé que le serveur ne possède pas. |
| prend le contrôle du serveur | modifier, échanger, antidater ou effacer vos fichiers : chaque PC vérifie la signature de ce qu'il reçoit. |
tente de faire écrire hors de ~/.claude | y parvenir : chaque chemin reçu est validé, et rien n'est écrit à travers un lien. |
| copie le dossier claude-sync d'un PC | s'en servir ailleurs : les clés sont protégées par Windows (DPAPI), pour votre seul compte. |
| veut ajouter son PC à votre serveur | le faire sans un code créé sur ce serveur. Les tentatives sont limitées : quelques centaines au plus pendant la durée de vie d'un code. |
Limites connues
- Un PC révoqué connaît toujours la clé de chiffrement. En cas de vol, révoquez-le avec
claude-sync devices revoke. Pour une protection totale, recréez le serveur avec une nouvelle phrase secrète. - Le serveur voit les noms de projets (
~/desktop/app), les identifiants de session, les tailles, les dates et les noms de vos PC, mais jamais leur contenu.
Dépannage
Commencez toujours par claude-sync doctor : il indique la commande à lancer pour chaque problème.
Une session d'un autre PC n'apparaît pas dans /resume
Vérifiez que le projet a le même identifiant sur les deux PC avec claude-sync projects. S'il est rangé ailleurs, utilisez claude-sync map. Lancez ensuite claude-sync sync, puis rouvrez Claude Code.
« serveur injoignable »
Vérifiez que le serveur répond : ouvrez https://votre-serveur/v1/health dans un navigateur, qui doit afficher {"status":"ok"}. Sans serveur, chaque PC continue de fonctionner normalement et rattrape son retard au retour du serveur.
« appareil non autorisé (révoqué ?) »
Ce PC a été révoqué. Créez un nouveau code sur le serveur, puis lancez claude-sync init --force.
« phrase secrète incorrecte » sur un nouveau PC
Il faut la phrase choisie sur le premier PC, à l'identique, majuscules et espaces compris. Elle ne peut être ni récupérée ni réinitialisée : sans elle, il faut recréer le serveur.
« fichier reporté (session ouverte) »
Claude Sync n'écrit jamais dans une conversation ouverte dans Claude Code. La mise à jour est appliquée à la fermeture de la session.
curl affiche CRYPT_E_REVOCATION_OFFLINE
C'est la vérification de révocation de Windows qui échoue avec les certificats Let's Encrypt récents, pas le serveur : curl --ssl-no-revoke le confirme. Claude Sync et les navigateurs ne sont pas concernés.
Désinstallation
Allez dans Paramètres › Applications › Applications installées › Claude Sync › Désinstaller. Cela arrête l'agent, puis retire les hooks Claude Code, le démarrage automatique et l'entrée du PATH.
Vos données restent en place : ~/.claude, ainsi que %LOCALAPPDATA%\claude-sync avec la configuration et les sauvegardes. Supprimez ces dossiers vous-même pour tout effacer.
Développement
Claude Sync est écrit en Go, sans dépendance native ; SQLite est embarqué en Go pur. Le code source est sur GitHub.
go test ./...
./scripts/build.ps1 -Version 0.2.1 -Installer
Le protocole et l'algorithme de réconciliation sont décrits dans docs/architecture.md, le modèle de menace dans SECURITY.md. Pousser un tag v* publie une release avec l'installeur et les empreintes SHA-256.