Où Claude Code range son scratchpad, et pourquoi il disparaît
Chaque session Claude Code annonce un dossier scratchpad puis n'en reparle jamais. Voici le chemin exact sur macOS, Linux et Windows, ce qui vit à côté, pourquoi un redémarrage ou un nettoyage des fichiers temporaires l'efface, ce qu'on peut configurer ou non, et la seule règle donnée aux sept agents qui y écrivent chaque nuit.
Chaque session Claude Code commence par une ligne que vous survolez sans doute. La nôtre, ce soir, dit ceci :
Scratchpad directory: /private/tmp/claude-501/-Users-jbchauvin-Projets-AgentsRoom/5a506305-…/scratchpad
Puis le CLI n'en reparle plus. Aucune commande ne le liste, aucun panneau ne l'ouvre, et le jour où vous allez chercher le CSV que l'agent disait y avoir écrit, le dossier a peut-être déjà disparu.
On fait tourner sept agents planifiés sur un Mac mini toutes les nuits, et chacun écrit dans ce dossier. On est donc allés voir ce que c'est, où il vit sur chaque système, ce qui le supprime, et ce qu'on dit aux agents d'en faire. Tout ce qui suit a été vérifié sur Claude Code 2.1.278 le 19 septembre 2026, et sur les issues GitHub ouvertes par des gens qui y ont perdu du travail.
Ce que Claude Code dit à l'agent
La ligne fait partie du prompt système. L'instruction qui la suit, dans la version actuelle, dit à l'agent d'utiliser toujours ce dossier pour ses fichiers temporaires, c'est-à-dire les résultats intermédiaires, les scripts et les sorties qui n'ont pas leur place dans le projet, plutôt que /tmp ou tout autre dossier temporaire du système ; qu'il est propre à la session et isolé du projet ; qu'il peut en général être utilisé sans demande de permission ; et que /tmp ne sert que si vous le demandez explicitement.
C'est cette dernière partie qui vous concerne. Les fichiers écrits dans le scratchpad ne déclenchent pas la boîte de dialogue de permission d'écriture, et c'est pour ça que l'agent y met ses scripts utilitaires et ses exports au lieu de vous demander à chaque fois. C'est aussi pour ça qu'on ne vous demande jamais, et qu'on ne vous dit jamais, où ils sont partis.
Si vous voulez le chemin dans une session en cours, demandez à l'agent. « Affiche ton dossier scratchpad » se répond depuis le prompt système, sans rien exécuter.
Le chemin, système par système
Le dossier est sous le dossier temporaire du système d'exploitation, et son nom encode qui vous êtes, dans quel projet vous étiez, et quelle session c'était.
Sur macOS et Linux :
/tmp/claude-<uid>/<chemin du projet, slashs remplacés par des tirets>/<id de session>/scratchpad
Sur un Mac, /tmp est un lien vers /private/tmp, donc le même dossier s'affiche en /private/tmp/claude-501/…. Le nombre est votre identifiant d'utilisateur, ce qu'affiche id -u : 501 pour le premier compte d'un Mac, 1000 sur la plupart des distributions Linux, 0 pour root. Le rapport Linux cité plus bas montre /tmp/claude-0/, parce que le pipeline tournait en root dans un conteneur. Des issues ouvertes plus tôt en 2026 montrent /tmp/claude/<slug du projet>/… sans uid du tout : le suffixe a été ajouté en cours de route. Sur une version plus ancienne, enlevez-le.
Sur Windows, tel que rapporté sur Windows 11 en juillet 2026 :
%TEMP%\claude\<slug du projet>\<id de session>\scratchpad
ce qui donne en général C:\Users\<vous>\AppData\Local\Temp\claude\…. Le chemin est dérivé de la variable TEMP : si vous pointez TEMP ailleurs, le scratchpad suit.
Le slug du projet est votre répertoire de travail avec chaque slash remplacé par un tiret. Notre dépôt vit dans /Users/jbchauvin/Projets/AgentsRoom, donc le slug est -Users-jbchauvin-Projets-AgentsRoom. Un dossier par projet, puis un dossier par session à l'intérieur.
Pour lister tous les dossiers de session qui vous restent, pour l'utilisateur courant, sur un Mac ou une machine Linux :
ls /tmp/claude-$(id -u)/
Ce qui vit à côté
Le dossier de session n'est pas que le scratchpad. Sur la machine qui fait tourner nos agents de nuit, sept des neuf dossiers de session du jour contiennent deux entrées : scratchpad et tasks. Le dossier tasks est là où atterrit la sortie des tâches en arrière-plan, les commandes que l'agent lance détachées et relit plus tard.
Il y a un troisième endroit à connaître, et il n'est pas du tout sous le dossier temporaire : ~/.claude/projects/<slug du projet>/<id de session>/tool-results/. Quand un outil renvoie plus que ce que le contexte peut prendre, Claude Code y sauvegarde la sortie complète et donne le chemin à l'agent. Ce soir, un export Search Console de 68 Ko est allé là, pas dans le scratchpad. Cet emplacement est permanent, à côté de la transcription de la session. La répartition est donc : transcriptions et sorties d'outils volumineuses sous ~/.claude, qui reste ; scripts, fichiers intermédiaires et sorties de tâches en arrière-plan sous le dossier temporaire, qui ne reste pas.
Pourquoi il disparaît
Parce que le dossier temporaire veut dire « effaçable » pour tout système d'exploitation, et que rien dans Claude Code ne s'y oppose.
Sur Linux, systemd-tmpfiles applique ce que dit /usr/lib/tmpfiles.d/tmp.conf. Un utilisateur a perdu la totalité de la sortie d'un pipeline de génération de données de 24 heures, verdicts de relecture, scripts et virtualenv Python compris, quand l'hôte a redémarré : la règle sur ce conteneur Debian était D /tmp 1777 root root 30d, qui recrée /tmp vide à chaque démarrage. C'était Claude Code 2.1.260, et le prompt système ne disait rien de la volatilité. Vérifiez votre propre règle avec cat /usr/lib/tmpfiles.d/tmp.conf : une ligne D vide au démarrage, un âge comme 10d nettoie sur minuterie.
Sur Windows, le dossier est sous %TEMP%, que l'Assistant de stockage et le Nettoyage de disque balaient. En juillet 2026, quelqu'un a lancé un nettoyage de disque pendant que deux sessions tournaient et a perdu les worktrees git dans lesquels les deux agents travaillaient, modifications non commitées comprises. Les modifications n'ont été récupérées que parce qu'elles existaient encore dans le contexte de la conversation.
Sur macOS, /private/tmp est vidé au redémarrage et les fichiers anciens sont supprimés par le système. Sur notre Mac mini ce soir, /private/tmp/claude-501 contient neuf dossiers de session pour ce projet, 452 fichiers et 25 Mo, et rien de plus vieux que la journée. Ce que les agents des nuits précédentes y ont laissé a disparu.
Rien de tout ça n'est un bug au sens où quelque chose aurait mal fonctionné. Le dossier est exactement là où le CLI le dit, et le système d'exploitation a fait exactement ce qu'il fait avec les dossiers temporaires. L'écart, c'est que le prompt l'appelle scratchpad, et qu'un scratchpad sonne comme quelque chose qu'on garde.
Ce qu'on peut configurer, et ce qu'on ne peut pas
En 2.1.278, il n'existe aucun réglage pour l'emplacement du scratchpad. Le dossier suit le dossier temporaire, donc TEMP sur Windows et TMPDIR sur Unix le déplacent. CLAUDE_CODE_TMPDIR, qui existe pour d'autres fichiers temporaires, a été signalé comme ne déplaçant pas le scratchpad, et cette demande a été fermée comme non planifiée. Même sort pour les demandes d'une variable CLAUDE_CODE_SCRATCHPAD_DIR et d'un emplacement par défaut sous ~/.claude/scratchpad/. Un dossier scratchpad visible dans l'app desktop est une demande de fonctionnalité encore ouverte.
Deux choses marchent aujourd'hui. Une session reprise (claude --resume) garde son id de session, donc elle cherche le même dossier, et le retrouve si rien ne l'a supprimé entre-temps. Et vous pouvez demander à l'agent, en clair, d'écrire tel fichier à un endroit permanent. C'est toute notre solution.
La règle donnée à nos agents de nuit
Sept agents démarrent à 20h00 sur la même machine : SEO, produit, réseaux sociaux, un fixer, un documentaliste, un rapport CEO et un rapporteur qui envoie par e-mail la synthèse de la nuit à 22h00. Chacun produit beaucoup de matière intermédiaire : exports Search Console, JSON filtrés, scripts qui comptent des chaînes dans vingt locales. Tout ça va dans le scratchpad, volontairement, parce que rien de tout ça n'a sa place dans le dépôt et que rien ne doit déclencher une demande de permission à deux heures du matin.
La règle dans chaque prompt tient en une phrase : le scratchpad garde ce dont la prochaine commande a besoin, le dépôt garde ce dont la prochaine nuit a besoin. Tout ce qu'un agent voudra relire demain, son rapport, son repère de run, le fichier qu'il modifiait, est écrit sous reports/nuit/<date>/ et commité dès que c'est terminé, pas à la fin du run. Un agent coupé en pleine tâche laisse un rapport partiel dans git et 25 Mo de fichiers de travail que personne ne regrettera.
Le miroir de cette règle est celle que l'utilisateur Linux a apprise à ses dépens : ne jamais laisser un long travail accumuler sa seule copie dans le scratchpad. Si un pipeline tourne une journée, ses sorties vont dans un chemin que vous avez choisi, et le scratchpad garde les utilitaires.
Ouvrir le dossier sans quitter l'app
Si vous faites tourner Claude Code dans AgentsRoom, File > Open File (Cmd/Ctrl+O) ouvre n'importe quel fichier de ce dossier dans l'aperçu, marqué « Hors projet » pour que vous ne le preniez pas pour un fichier suivi. C'est le moyen le plus rapide qu'on ait trouvé pour lire un export que l'agent vient de produire, sans coller un chemin /private/tmp dans un terminal.
Et pour fermer la boucle sur le nom : le Scratchpad d'AgentsRoom est autre chose. C'est l'éditeur de prompt intégré au composer de l'agent, où un long prompt s'écrit et se garde comme brouillon par agent entre deux sessions. Même mot, choisi avant que Claude Code l'utilise pour un dossier. L'un est là où vous écrivez à l'agent ; l'autre est là où l'agent écrit pour lui-même.
Questions fréquentes
Où est le scratchpad de Claude Code sur macOS et Linux ?
Sous le dossier temporaire du système : /tmp/claude-<votre uid>/<chemin du projet, slashs remplacés par des tirets>/<id de session>/scratchpad. Sur macOS le même dossier apparaît sous /private/tmp/claude-501/… parce que /tmp est un lien vers /private/tmp. L'uid est ce qu'affiche id -u : 501 pour le premier utilisateur d'un Mac, 1000 sur la plupart des distributions Linux, 0 pour root. Les versions plus anciennes utilisaient /tmp/claude/ sans le suffixe d'uid.
Où est le scratchpad de Claude Code sur Windows ?
Sous le dossier TEMP : %TEMP%\claude\<slug du projet>\<id de session>\scratchpad, ce qui donne en général C:\Users\<vous>\AppData\Local\Temp\claude\…. Changer la variable d'environnement TEMP le déplace, parce que le chemin est dérivé de TEMP et non d'un réglage de Claude Code.
Pourquoi mon scratchpad Claude Code a-t-il disparu ?
Parce qu'il vit sous le dossier temporaire, et que tout système d'exploitation considère le dossier temporaire comme effaçable. Sur Linux, systemd-tmpfiles applique la règle écrite dans /usr/lib/tmpfiles.d/tmp.conf, souvent un vidage au démarrage ou après un certain nombre de jours. macOS vide /private/tmp au redémarrage et supprime les fichiers anciens. Sur Windows, l'Assistant de stockage et le Nettoyage de disque balaient %TEMP%. Rien dans Claude Code ne protège le dossier de tout ça.
Peut-on changer l'endroit où Claude Code met son scratchpad ?
Pas avec un réglage dédié, en Claude Code 2.1.278. Le dossier suit le dossier temporaire du système : déplacer TEMP sur Windows ou TMPDIR sur Unix le déplace. Les demandes d'une variable séparée ou d'un emplacement persistant sous ~/.claude ont été fermées comme non planifiées. L'option fiable est de demander à l'agent d'écrire dans le projet tout ce qui compte.
Le scratchpad, c'est la même chose que ~/.claude/projects ?
Non. ~/.claude/projects/<slug du projet>/ contient les transcriptions de session et, par session, un dossier tool-results où sont sauvegardées les sorties d'outils trop volumineuses. Cet emplacement est permanent. Le scratchpad sous le dossier temporaire est l'espace de travail que l'agent utilise pour ses scripts et ses fichiers intermédiaires, et celui-là est volatil.
C'est le Scratchpad d'AgentsRoom ?
Même mot, autre chose. Le Scratchpad d'AgentsRoom est l'éditeur de prompt intégré au composer de l'agent, où vous écrivez et gardez un brouillon par agent. Le scratchpad de Claude Code est un dossier que le CLI crée pour chaque session. AgentsRoom peut ouvrir n'importe quel fichier de ce dossier avec File > Open File, marqué « Hors projet ».
Télécharger AgentsRoom
Lancez tous vos agents IA, sur tous vos projets, depuis une seule fenêtre.
App companion : suivez vos agents en déplacement
Utilisez Claude, Codex, Antigravity CLI ou un autre fournisseur IA.
Remontez bugs et demandes directement dans votre backlog public.
Continuer la lecture
Le Remote Control de Claude Code consomme-t-il plus de tokens ? Et Codex en a-t-il un ?
Deux questions que les gens tapent dans Google depuis qu'Anthropic a sorti Remote Control : piloter une session Claude Code depuis son téléphone coûte-t-il plus de tokens, et existe-t-il un équivalent pour Codex. Réponses courtes : non, un tour est un tour où que vous le tapiez, et oui mais seulement la moitié existe. Voici ce qu'est vraiment Remote Control, comment mesurer la question des tokens vous-même en quatre commandes, ce que fait codex remote-control aujourd'hui, et comment une télécommande mobile qui ne parle jamais à un fournisseur change le calcul.
Lire l'articleUn agent de revue ne doit pas pouvoir écrire. Voici comment on l'impose, CLI par CLI.
Dans un run de 17 nœuds, l'agent de release a modifié un test pour faire passer une suite rouge, puis deux agents de revue ont écrit la même correction et se sont télescopés. Le prompt disait « revue seulement ». Ça n'a pas tenu. L'incident, pourquoi une consigne écrite ne peut pas porter cette règle, et les drapeaux exacts qui font refuser l'écriture à Claude Code, Codex, Grok, Antigravity et OpenCode.
Lire l'articleDix agents ont lancé le même typecheck en même temps. La solution était un dossier.
Dix-sept agents de code dans le même checkout, dix tsc en parallèle, load average 37 et 87 Mo de RAM libre. Un typecheck de quatre-vingt-dix secondes a mis 7 min 36. Voici la mesure, pourquoi la machine ne calculait pas, et le petit verrou partagé qui a réglé le problème. Recopiable dans n'importe quel dépôt.
Lire l'article