Waar Claude Code zijn scratchpad bewaart, en waarom die verdwijnt
Elke Claude Code-sessie kondigt een scratchpad-map aan en laat die daarna nooit meer zien. Hier is het exacte pad op macOS, Linux en Windows, wat ernaast staat, waarom een herstart of een opschoning van tijdelijke bestanden hem wist, wat je wel en niet kunt instellen, en de ene regel die we de zeven agents gaven die er elke nacht in schrijven.
Elke Claude Code-sessie begint met een regel waar je waarschijnlijk overheen leest. De onze, vanavond, ziet er zo uit:
Scratchpad directory: /private/tmp/claude-501/-Users-jbchauvin-Projets-AgentsRoom/5a506305-…/scratchpad
Daarna noemt de CLI hem nooit meer. Geen commando somt hem op, geen paneel opent hem, en op de dag dat je de CSV gaat zoeken die de agent zei daar te hebben geschreven, is de map misschien al weg.
Wij draaien elke nacht zeven geplande agents op een Mac mini, en elk daarvan schrijft in die map. Dus zijn we gaan kijken wat het is, waar hij op elk systeem staat, wat hem verwijdert, en wat we de agents zeggen ermee te doen. Alles hieronder is gecontroleerd op Claude Code 2.1.278 op 19 september 2026, en op de GitHub-issues die mensen openden toen ze er werk in kwijtraakten. Wat je kunt instellen is sindsdien veranderd, dus dat deel is opnieuw gecontroleerd op Claude Code 2.1.314 op 3 november 2026.
Wat Claude Code tegen de agent zegt
De regel maakt deel uit van de systeemprompt. De instructie die erop volgt zegt, in de huidige versie, dat de agent die map altijd moet gebruiken voor tijdelijke bestanden, dus tussenresultaten, scripts en uitvoer die niet in het project thuishoren, in plaats van /tmp of een andere tijdelijke systeemmap; dat hij sessiespecifiek is en geïsoleerd van het project; dat hij doorgaans zonder toestemmingsvragen gebruikt kan worden; en dat /tmp alleen gebruikt hoort te worden als jij daar expliciet om vraagt.
Dat laatste deel is het nuttige voor jou. Bestanden die in de scratchpad worden geschreven, lokken de dialoog voor schrijftoestemming niet uit, en daarom zet de agent zijn hulpscripts en zijn exports daar neer in plaats van het je elke keer te vragen. Het is ook de reden dat je nooit gevraagd wordt, en nooit te horen krijgt, waar ze heen zijn gegaan.
Wil je het pad in een lopende sessie, vraag het dan aan de agent. “Print je scratchpad-map” wordt beantwoord vanuit de systeemprompt, zonder iets uit te voeren.
Het pad, systeem per systeem
De map staat onder de tijdelijke map van het besturingssysteem, en zijn naam codeert wie je bent, in welk project je zat, en welke sessie het was.
Op macOS en Linux:
/tmp/claude-<uid>/<projectpad met schuine strepen vervangen door streepjes>/<sessie-id>/scratchpad
Op een Mac is /tmp een link naar /private/tmp, dus dezelfde map wordt getoond als /private/tmp/claude-501/…. Het getal is je gebruikers-id, wat id -u print: 501 voor het eerste account op een Mac, 1000 op de meeste Linux-distributies, 0 voor root. Het Linux-rapport dat we hieronder aanhalen toont /tmp/claude-0/, omdat de pipeline als root draaide in een container. Issues die eerder in 2026 zijn geopend tonen /tmp/claude/<project-slug>/… zonder enige uid, dus het achtervoegsel is onderweg toegevoegd. Zit je op een oudere build, laat het dan weg.
Op Windows, zoals gemeld op Windows 11 in juli 2026:
%TEMP%\claude\<project-slug>\<sessie-id>\scratchpad
wat meestal uitkomt op C:\Users\<jij>\AppData\Local\Temp\claude\…. Het pad wordt afgeleid van de variabele TEMP, dus als je TEMP ergens anders heen laat wijzen, volgt de scratchpad, tenzij CLAUDE_CODE_TMPDIR is ingesteld: die wint.
De project-slug is je werkmap met elke schuine streep vervangen door een streepje. Onze repository staat op /Users/jbchauvin/Projets/AgentsRoom, dus de slug is -Users-jbchauvin-Projets-AgentsRoom. Eén map per project, en daarin één map per sessie.
Om elke sessiemap op te sommen die je nog hebt voor de huidige gebruiker op een Mac of Linux-machine:
ls /tmp/claude-$(id -u)/
Wat ernaast staat
De sessiemap is niet alleen de scratchpad. Op de machine die onze nachtelijke agents draait, bevatten zeven van de negen sessiemappen van de dag twee items: scratchpad en tasks. De map tasks is waar de uitvoer van achtergrondtaken belandt, de commando's die de agent losgekoppeld draait en later leest.
Er is een derde plek die je moet kennen, en die staat helemaal niet onder de tijdelijke map: ~/.claude/projects/<project-slug>/<sessie-id>/tool-results/. Wanneer een tool meer teruggeeft dan de context aankan, slaat Claude Code de volledige uitvoer daar op en geeft de agent het pad. Vanavond ging een Search Console-export van 68 KB daarheen in plaats van naar de scratchpad. Die locatie is blijvend, naast de sessietranscriptie. De verdeling is dus: transcripties en te grote tooluitvoer onder ~/.claude, wat blijft; scripts, tussenbestanden en uitvoer van achtergrondtaken onder de tijdelijke map, wat niet blijft.
Waarom hij verdwijnt
Omdat de tijdelijke map voor elk besturingssysteem “veilig om te verwijderen” betekent, en niets in Claude Code daartegenin gaat.
Op Linux past systemd-tmpfiles toe wat /usr/lib/tmpfiles.d/tmp.conf zegt. Eén melder verloor de volledige uitvoer van een datageneratie-pipeline van 24 uur, reviewoordelen, scripts en een Python-virtualenv inbegrepen, toen de host herstartte: de regel op die Debian-container was D /tmp 1777 root root 30d, die /tmp bij elke boot leeg opnieuw aanmaakt. Dat was Claude Code 2.1.260, en de systeemprompt had niets gezegd over vluchtigheid. Controleer je eigen regel met cat /usr/lib/tmpfiles.d/tmp.conf: een D-regel wist bij het opstarten, een leeftijd als 10d ruimt op met een timer.
Op Windows staat de map onder %TEMP%, die Opslaginzicht en Schijfopruiming leegvegen. In juli 2026 draaide iemand een schijfopruiming terwijl twee sessies live waren en verloor de git worktrees waarin beide agents werkten, niet-gecommitte wijzigingen inbegrepen. De wijzigingen konden alleen worden teruggehaald omdat ze nog in de context van het gesprek bestonden.
Op macOS wordt /private/tmp geleegd bij een herstart en worden oude bestanden opgeruimd door het systeem. Op onze Mac mini bevat /private/tmp/claude-501 vanavond negen sessiemappen voor dit project, 452 bestanden en 25 MB, en niets ouder dan de dag. Wat de agents van de vorige nachten daar achterlieten, is weg.
Niets hiervan is een bug in de zin dat er iets verkeerd deed. De map staat precies waar de CLI zegt dat hij staat, en het besturingssysteem deed precies wat het met tijdelijke mappen doet. Het gat is dat de prompt hem een scratchpad noemt en een scratchpad klinkt als iets dat je bewaart.
Wat je kunt instellen, en wat niet
Sinds Claude Code 2.1.314, gecontroleerd op 3 november 2026, verplaatst één variabele de scratchpad: CLAUDE_CODE_TMPDIR. Claude Code bouwt de map op als <CLAUDE_CODE_TMPDIR>/claude-<uid>/<project-slug>/<sessie-id>/scratchpad, met claude in plaats van claude-<uid> op Windows. Zonder de variabele is de basismap /tmp op macOS, wat TMPDIR ook zegt, en de tijdelijke map van het systeem op Linux en Windows, dus TMPDIR op Linux en TEMP op Windows verplaatsen hem nog steeds. Zet de variabele in je shell of in het env-blok van ~/.claude/settings.json: Claude Code negeert hem in project- en lokale instellingen. Laat hem wijzen naar een map van jezelf buiten de tijdelijke map, en de scratchpad overleeft herstarts en opruimacties.
Toen we dit artikel voor het eerst schreven, op 2.1.278, was dat anders: de variabele bestond voor andere tijdelijke bestanden en verplaatste volgens meldingen de scratchpad niet, en de verzoeken om een variabele CLAUDE_CODE_SCRATCHPAD_DIR en om een standaard onder ~/.claude/scratchpad/ waren gesloten als niet gepland.
Claude Code controleert ook van wie die map is. Als /tmp/claude-<uid> door een ander account is aangemaakt, weigert het hem te gebruiken met Temp directory /tmp/claude-1000 is owned by uid 0, expected 1000, gevolgd door Set CLAUDE_CODE_TMPDIR to a directory you control, or ask an administrator to remove it. Verwijder de map als de eigenaar ervan zodra geen sessie hem nog gebruikt, of zet de variabele.
Twee andere dingen werken zonder enige instelling. Een hervatte sessie (claude --resume) behoudt haar sessie-id, dus zoekt ze dezelfde map, en vindt die als niets hem in de tussentijd heeft verwijderd. En je kunt de agent in gewone woorden vragen een bepaald bestand ergens blijvends te schrijven. Dat is onze hele oplossing.
De regel die we onze nachtelijke agents gaven
Zeven agents starten om 20:00 op dezelfde machine: SEO, product, social, een fixer, een documentalist, een CEO-rapport en een rapporteur die om 22:00 de samenvatting van de nacht mailt. Elk produceert een hoop tussenmateriaal: Search Console-exports, gefilterde JSON, scripts die strings tellen over twintig locales. Dat gaat allemaal naar de scratchpad, met opzet, omdat niets ervan in de repository thuishoort en niets ervan om twee uur 's nachts een toestemmingsvraag hoort uit te lokken.
De regel in elke prompt is één zin: de scratchpad bevat wat het volgende commando nodig heeft, de repository bevat wat de volgende nacht nodig heeft. Alles wat een agent morgen wil teruglezen, zijn rapport, zijn run-markering, het bestand dat hij aan het bewerken was, wordt geschreven onder reports/nuit/<datum>/ en gecommit zodra het klaar is, niet aan het einde van de run. Een agent die halverwege een taak wordt afgebroken, laat een gedeeltelijk rapport achter in git en 25 MB aan scratch-bestanden die niemand zal missen.
Het spiegelbeeld van die regel is degene die de Linux-melder op de harde manier leerde: laat een lange job nooit zijn enige kopie in de scratchpad opbouwen. Als een pipeline een dag draait, gaat de uitvoer naar een pad dat jij hebt gekozen, en houdt de scratchpad de hulpbestanden.
De map openen zonder de app te verlaten
Als je Claude Code binnen AgentsRoom draait, opent File > Open File (Cmd/Ctrl+O) elk bestand uit die map in de preview, gemarkeerd als “Buiten het project” zodat je het niet aanziet voor iets dat wordt bijgehouden. Het is de snelste manier die we hebben gevonden om een export te lezen die de agent net heeft gemaakt, zonder een /private/tmp-pad in een terminal te plakken.
En om de cirkel rond te maken wat de naam betreft: de AgentsRoom Scratchpad is iets anders. Het is de prompteditor ingebouwd in de agentcomposer, waar een lange prompt wordt geschreven en tussen sessies als concept per agent wordt bewaard. Zelfde woord, gekozen voordat Claude Code het voor een map gebruikte. De ene is waar jij aan de agent schrijft; de andere is waar de agent voor zichzelf schrijft.
Veelgestelde vragen
Waar staat de Claude Code scratchpad op macOS en Linux?
Onder de tijdelijke map van het systeem: /tmp/claude-<je uid>/<projectpad met schuine strepen vervangen door streepjes>/<sessie-id>/scratchpad. Op macOS verschijnt dezelfde map als /private/tmp/claude-501/… omdat /tmp een link is naar /private/tmp. Je uid is wat id -u print: 501 voor de eerste gebruiker op een Mac, 1000 op de meeste Linux-distributies, 0 voor root. Oudere versies gebruikten /tmp/claude/ zonder het uid-achtervoegsel.
Waar staat de Claude Code scratchpad op Windows?
Onder de TEMP-map: %TEMP%\claude\<project-slug>\<sessie-id>\scratchpad, wat meestal uitkomt op C:\Users\<jij>\AppData\Local\Temp\claude\…. De omgevingsvariabele TEMP wijzigen verplaatst hem, en CLAUDE_CODE_TMPDIR ook, die voorrang heeft op TEMP.
Waarom is mijn Claude Code scratchpad verdwenen?
Omdat hij onder de tijdelijke map staat, en elk besturingssysteem de tijdelijke map beschouwt als veilig om te verwijderen. Op Linux past systemd-tmpfiles de regel toe uit /usr/lib/tmpfiles.d/tmp.conf, vaak een wissing bij het opstarten of na een aantal dagen. macOS leegt /private/tmp bij een herstart en ruimt oude bestanden op. Op Windows vegen Opslaginzicht en Schijfopruiming %TEMP% leeg. Niets in Claude Code beschermt de map tegen een van deze.
Kan ik veranderen waar Claude Code zijn scratchpad zet?
Ja, met de omgevingsvariabele CLAUDE_CODE_TMPDIR. Claude Code voegt er claude-<je uid> aan toe (claude op Windows), en de scratchpad volgt: gecontroleerd in Claude Code 2.1.314 op 3 november 2026, terwijl de variabele hem in 2.1.278 niet verplaatste. Zet hem in je shell of in het env-blok van ~/.claude/settings.json, want Claude Code negeert hem in project- en lokale instellingen. Zonder de variabele is de basismap /tmp op macOS, wat TMPDIR ook zegt, en de tijdelijke map van het systeem op Linux (TMPDIR) en Windows (TEMP). Laat hem wijzen naar een map van jezelf buiten de tijdelijke map, en de scratchpad overleeft herstarts en opruimacties.
Waarom zegt Claude Code dat zijn tijdelijke map van een andere uid is?
Claude Code weigert een tijdelijke map te gebruiken die van een ander account is. De melding luidt: Temp directory /tmp/claude-1000 is owned by uid 0, expected 1000, daarna Set CLAUDE_CODE_TMPDIR to a directory you control, or ask an administrator to remove it. De map /tmp/claude-<je uid> bestaat, maar een proces dat onder een andere gebruiker draaide heeft hem eerder aangemaakt, hier root, met uid 0. Twee oplossingen: zodra geen enkele Claude Code-sessie hem nog gebruikt, verwijder je die map als de eigenaar ervan (sudo rm -rf /tmp/claude-1000), of je zet CLAUDE_CODE_TMPDIR op een map van jezelf. Gecontroleerd in Claude Code 2.1.314.
Is de scratchpad hetzelfde als ~/.claude/projects?
Nee. ~/.claude/projects/<project-slug>/ bevat de sessietranscripties en, per sessie, een map tool-results waar te grote tooluitvoer wordt opgeslagen. Die locatie is blijvend. De scratchpad onder de tijdelijke map is de werkruimte die de agent gebruikt voor scripts en tussenbestanden, en die is vluchtig.
Is dit de AgentsRoom Scratchpad?
Zelfde woord, iets anders. De AgentsRoom Scratchpad is de prompteditor ingebouwd in de agentcomposer, waar je per agent een concept schrijft en bewaart. De scratchpad van Claude Code is een map die de CLI voor elke sessie aanmaakt. AgentsRoom kan elk bestand uit die map openen met File > Open File, gemarkeerd als “Buiten het project”.
Download AgentsRoom
Draai al je AI-agenten, op al je projecten, vanuit één enkel venster.
Companion-app: houd je agents onderweg in de gaten
Breng je eigen: Claude, Codex, Antigravity CLI of andere AI-provider.
Stuur bugs en verzoeken direct naar je openbare backlog.
Verder lezen
MCP-tokengebruik verminderen: zo hebben we onze tooldefinities 60% kleiner gemaakt
Elke MCP-tool die je agent kan aanroepen is een blok JSON dat het model bij elk verzoek kan lezen. De onze wogen ongeveer 95.000 tokens. Zo meet je de jouwe in twee minuten, dit hebben we ingekort zonder één tool te verwijderen, en zo voorkomt een budgetcontrole dat ze weer groeien.
Lees het artikelZien wat je AI-codeeragent op je servers uitvoert
Je agent werkt op een productieserver en zijn terminal zegt alleen dat hij een tool aanroept. Welk commando heeft hij uitgevoerd, en wat antwoordde de machine? Het transcript vertelt het je achteraf. Zo hebben we het zichtbaar gemaakt terwijl het gebeurt, dit probeerden we eerst, en zo krijg je hetzelfde zonder onze app.
Lees het artikelGebruikt Remote Control van Claude Code meer tokens? En heeft Codex er ook een?
Twee vragen die mensen in Google typen sinds Anthropic Remote Control heeft uitgebracht: kost het meer tokens om een Claude Code-sessie vanaf je telefoon aan te sturen, en bestaat er een tegenhanger voor Codex. Korte antwoorden: nee, een beurt is een beurt waar je hem ook typt, en ja, maar alleen de helft ervan bestaat. Hier lees je wat Remote Control werkelijk is, hoe je de tokenvraag zelf meet in vier commando's, wat codex remote-control vandaag doet, en hoe een mobiele afstandsbediening die nooit met een provider praat de rekensom verandert.
Lees het artikel