SSD Nodes Learn 🎉 VPS vanaf $5.50/mnd
Gidsen Matt ConnorDoor Matt Connor

Claude Code-sessie hervatten en sessiegeschiedenis vinden

Lees hoe u een Claude Code-sessie hervat via naam, ID of keuzelijst en waar de volledige plaintext-transcripten op uw machine worden opgeslagen.

Een Claude Code-sessie hervatten

Voer claude --continue uit om het meest recente gesprek in de huidige directory te hervatten, of claude --resume om een ouder gesprek uit een lijst te selecteren. Vanuit een sessie die al actief is, schakelt u met de opdracht /resume naar een ander gesprek zonder de sessie af te sluiten. De verkorte vormen zijn -c en -r.

claude --continue
claude --resume
claude --resume auth-refactor

Als u de sessienaam of sessie-ID al kent, geeft u deze als argument op. Claude Code gaat dan rechtstreeks naar die sessie zonder de keuzelijst weer te geven.

Alles hieronder komt overeen met de officiële sessiedocumentatie van augustus 2026. Claude Code brengt regelmatig releases uit. Namen van flags en sneltoetsen veranderen daarom tussen versies. Gebruik claude --help en die pagina als autoriteit wanneer de informatie hier niet overeenkomt met wat uw terminal toont.

Wat een sessie daadwerkelijk is

Een sessie is één opgeslagen gesprek dat aan een projectdirectory is gekoppeld. De sessie bevat de volledige berichtgeschiedenis, inclusief de toolaanroepen die Claude heeft uitgevoerd en de resultaten daarvan. Claude Code schrijft deze gegevens tijdens het werken voortdurend naar schijf, niet pas aan het einde. Daardoor blijft een gesprek beschikbaar nadat u de terminal hebt gesloten of de SSH-verbinding is verbroken.

Hervatten herstelt meer dan alleen de tekst. De volledige gesprekgeschiedenis wordt teruggezet, samen met het model dat de sessie gebruikte en de subagent waarmee de sessie is gestart als u --agent hebt gebruikt. Ook de permissiemodus wordt hersteld, met uitzonderingen voor de veiligheid: de planmodus en de bypass-permissions-modus worden nooit hersteld. Een sessie die zich in een van deze modi bevond, wordt daarom hervat in de modus waarin een nieuwe sessie zou starten.

Sommige zaken worden niet hersteld, omdat het flags waren die bij het starten zijn opgegeven en geen opgeslagen status vormen. Directory's die met --add-dir zijn toegevoegd en opties zoals --mcp-config, --settings en --plugin-dir moeten opnieuw worden opgegeven wanneer u de sessie hervat. Instellingenbestanden zoals settings.json worden bij het starten opnieuw ingelezen. Alles wat daarin staat, hoeft u dus niet opnieuw op te geven.

Waarom sessiegeschiedenis op een VPS belangrijker is

Dit is het feit dat veel mensen verrast. Het transcript wordt geschreven op de machine waarop de agent is uitgevoerd. Het wordt niet in uw account bewaard en niet met de cloud gesynchroniseerd. Het is een bestand op de schijf van die machine.

Een sessie die u in een tmux-venster op uw VPS hebt achtergelaten, verschijnt dus niet in de kiezer op uw laptop. Een sessie vanaf uw laptop verschijnt niet op de VPS. Er wordt niets tussen beide machines verplaatst. Als u werkt zoals de meeste mensen bij het uitvoeren van Claude Code in tmux op een VPS, verzamelt de server uw volledige gesprekshistorie. De kiezer die u lokaal ziet, bevat dan een andere en veel kleinere verzameling.

Dezelfde scheiding geldt voor verschillende interfaces. De desktopapp en de VS Code-extensie houden elk hun eigen sessiegeschiedenis bij. Geen van beide gebruikt de geschiedenis van de CLI. Claude Code op het web heeft eveneens een eigen geschiedenis.

Op één machine zoekt de functie uitgebreider dan u misschien verwacht. claude --resume <session-id> zoekt eerst in de huidige projectmap en de bijbehorende git-worktrees. Daarna zoekt de functie in elk ander project op die machine. De belangrijkste formulering is: "op die machine". Een sessie-ID van een andere host levert niets op. Claude Code meldt dat met No conversation found with session ID: <session-id>.

Waar slaat Claude Code de sessiegeschiedenis op

Transcripties staan standaard in de configuratiemap van Claude Code, op een pad van de vorm ~/.claude/projects/<project>/<session-id>.jsonl.

<project> is het pad van uw werkmap waarbij elk niet-alfanumeriek teken is vervangen door een afbreekstreepje. Een sessie die wordt gestart in /home/deploy/apps/api, wordt daarom opgeslagen in een map met de naam -home-deploy-apps-api. Als deze omgezette naam langer zou worden dan 200 tekens, kort Claude Code de naam in en voegt het een hash van het volledige pad toe. Zo blijft de mapnaam binnen de limieten van het bestandssysteem.

Het bestand gebruikt JSONL: elke regel bevat één JSON-object. Elke regel bevat een bericht, een toolgebruik of een metagegevensvermelding. Het bestand bevat leesbare tekst. Het is geen probleem om het te lezen.

Het is niet verstandig om hiervoor een parser te schrijven. De indeling van de vermeldingen is intern voor Claude Code en verandert tussen versies. Een script dat deze bestanden rechtstreeks leest, kan daarom na elke update defect raken. In de eigen documentatie van Anthropic staat dat u in plaats daarvan /export of de gedocumenteerde scriptinterfaces moet gebruiken. Dat advies is precies om deze reden verstandig.

Twee instellingen wijzigen deze standaardlocatie. CLAUDE_CONFIG_DIR verplaatst de volledige configuratiemap. Daarmee kunt u transcripties op een afzonderlijk of versleuteld volume plaatsen. cleanupPeriodDays in settings.json bepaalt hoe lang ze worden bewaard. De standaardwaarde is 30 dagen, met een minimum van 1 dag.

Wat staat er daadwerkelijk in die transcriptiebestanden

Elk toolresultaat wordt vastgelegd. Dat betekent dat een transcript de inhoud bevat van bestanden die Claude heeft gelezen en de uitvoer van opdrachten die Claude heeft uitgevoerd. De pagina over datagebruik van Anthropic vermeldt dit expliciet: Claude Code slaat sessietranscripten lokaal op als platte tekst onder ~/.claude/projects/.

Bedenk wat dit op een server betekent. Als Claude een .env-bestand heeft gelezen om vast te stellen waarom een service niet wilde starten, staat de inhoud van dat bestand nu in een JSONL-bestand in uw home-directory. Als een opdracht een connection string heeft weergegeven, staat die daar ook in. Er is niets gelekt. Het transcript heeft vastgelegd wat er is gebeurd. Dat is precies het doel ervan en daarom hoort dit in uw threat model.

  • Back-ups: een gewone back-up van /home of /root kopieert uw transcripten naar de locatie waar back-ups worden opgeslagen. Voeg een uitsluiting toe, of accepteer dat kopieën van uw prompts en bestandsinhoud nu in uw back-upopslag staan.
  • Snapshots en images: een VPS-snapshot dat om welke reden dan ook wordt gemaakt, bevat de volledige directory. Dat geldt ook voor een image die u kloont om een tweede server te bouwen.
  • Andere accounts op de machine: controleer de modes zelf met ls -ld ~/.claude ~/.claude/projects in plaats van ervan uit te gaan dat deze correct zijn ingesteld.
  • Expliciete uploads: de opdracht /feedback stuurt de gespreksgeschiedenis bewust naar Anthropic, en /bug en /share rapporteren via hetzelfde pad. Dit zijn handelingen die u zelf kiest. Zorg daarom dat u weet waarmee u instemt voordat u bevestigt.

Als u liever geen transcript wilt laten aanmaken, onderdrukt CLAUDE_CODE_SKIP_PROMPT_HISTORY het schrijven van transcripten. --no-session-persistence onderdrukt dit voor één niet-interactieve uitvoering van claude -p. Zorg dat u de afweging begrijpt voordat u een van beide instelt. Transcripten zijn nodig voor resume. Zonder transcript is resume niet mogelijk.

Een oude conversatie vinden

Open de kiezer met claude --resume, of met /resume vanuit een actieve sessie. Elke rij toont de sessienaam als u die hebt ingesteld, of een gegenereerde titel als u dat niet hebt gedaan. Daarnaast ziet u de tijd sinds de laatste activiteit, de git-branch en de bestandsgrootte.

De kiezer ondersteunt zoeken. Druk op /, of begin gewoon met typen, om de lijst te filteren. De belangrijkste sneltoetsen zijn de sneltoetsen waarmee u de zoekopdracht uitbreidt: Ctrl+A toont sessies uit elk project op deze machine, Ctrl+W toont alle worktrees van de huidige repository en Ctrl+B beperkt de resultaten tot de huidige git-branch. Druk op Space om de inhoud van een sessie vooraf te bekijken voordat u deze hervat, en op Ctrl+R om de gemarkeerde sessie een nieuwe naam te geven.

Door sessies een naam te geven wordt dit veel eenvoudiger. Start een sessie met claude -n auth-refactor, of voer /rename auth-refactor halverwege uit, zodra u merkt dat de conversatie is uitgegroeid tot een concreet werkonderdeel. Een sessie met een naam kunt u daarna rechtstreeks vanuit de shell op naam hervatten.

Een sessie zonder naam krijgt nog steeds een gegenereerde titel. Een achtergrondverzoek aan een klein, snel model maakt deze titel op basis van een samenvatting van uw eerste prompt. De titel helpt u de juiste rij in de kiezer te herkennen, maar is geen hervattingsnaam. claude --resume <name> zoekt alleen naar namen die u zelf hebt ingesteld.

In transcripties zoeken naar de juiste sessie

Soms herinnert u zich een zin, maar niets anders. De transcripties zijn tekst, dus u kunt erin zoeken.

grep -rl "nftables" ~/.claude/projects/

Dit geeft de paden van de overeenkomende transcripties weer. De bestandsnaam zonder de extensie .jsonl is de sessie-ID, en claude --resume <session-id> accepteert deze ID. Gebruik grep om te bepalen welke sessie u nodig hebt. Hervat die sessie vervolgens of exporteer deze om de inhoud daadwerkelijk te lezen.

Twee belangrijke kanttekeningen. De inhoud is JSON-escaped. Daarom wordt een zin met aanhalingstekens, of een zin die over een regeleinde is gesplitst, mogelijk niet als letterlijke tekenreeks gevonden. Een overeenkomst in een toolresultaat betekent bovendien dat Claude die tekst heeft gezien, niet dat iemand deze heeft getypt.

Een gesprek lezen en exporteren

/export geeft het huidige gesprek weer als platte tekst. Berichten en tooluitvoer worden leesbaar uitgeschreven in plaats van als JSON. Zonder argument wordt een menu geopend waarin u het klembord of een bestand kunt kiezen. Met een bestandsnaam schrijft /export handover.txt rechtstreeks naar dat pad. Dit is de juiste manier om een gesprek van een server naar uw laptop over te brengen of aan een ticket toe te voegen.

Gebruik voor geautomatiseerde taken de interfaces die bedoeld zijn om stabiel te blijven. Hooks en opdrachten voor de statusregel ontvangen een veld transcript_path als invoer. Een hook SessionEnd kan daardoor een transcript archiveren wanneer een sessie eindigt. U kunt een opgeslagen sessie ook een vraag stellen zonder deze te openen:

claude -p --resume <session-id> --output-format json "summarize what we changed" | jq -r '.result'

Hiermee wordt een vervolgvraag naar het oude gesprek gestuurd en ontvangt u gestructureerde JSON. Dit is een veel betere basis dan het parseren van een JSONL-indeling die in een volgende release kan veranderen.

Wanneer opnieuw beginnen beter is dan hervatten

Bij hervatten wordt de volledige geschiedenis teruggezet. Elke volgende aanvraag bevat daardoor ook die volledige geschiedenis. Een gesprek dat gisteren vier uur duurde, is vandaag duur om voort te zetten. Hoe het tokengebruik tijdens een lange sessie optelt legt uit waar die kosten precies vandaan komen.

Claude Code biedt soms een tussenoplossing. Op een Pro- of Max-abonnement opent een dialoog voordat u uw eerste bericht verstuurt wanneer u een sessie hervat die ongeveer een uur inactief is geweest en meer dan 100,000 tokens bevat. De promptcache is dan verlopen. De volgende aanvraag verwerkt daarom eenmalig de volledige geschiedenis opnieuw, ongeacht welke optie u kiest.

  • Resume from summary voert onmiddellijk een compaction uit. Latere aanvragen bevatten dan een samenvatting in plaats van de volledige geschiedenis. Dit is goedkoper per aanvraag, maar informatie die in de samenvatting ontbreekt, is daarna niet meer beschikbaar.
  • Resume full session as-is laadt het gesprek ongewijzigd. Alle details blijven behouden, maar de kosten per aanvraag nemen toe met de omvang van het gesprek.

Een derde optie hervat de sessie volledig en voorkomt dat deze dialoog bij latere hervattingen opnieuw verschijnt.

De keuze is eenvoudiger dan het lijkt. Hervat de sessie wanneer wat u hierna wilt typen afhankelijk is van wat al is gezegd. Begin een nieuwe sessie wanneer dat niet zo is. Verouderde context is gemakkelijk te herkennen als u erop let: Claude verwijst bijvoorbeeld naar een bestand dat u een uur geleden hebt verwijderd, of bespreekt opnieuw een beslissing die u aan het begin van de sessie al had genomen. Dat is verouderde context. Als u die meeneemt, kost dat tegelijk tokens en nauwkeurigheid.

Als het nuttige deel van een oud gesprek bestaat uit een beslissing of een feit dat u later opnieuw nodig hebt, vertrouw dan niet op hervatten om dit beschikbaar te houden. Leg het vast op een plaats die elke sessie kan raadplegen. Daarvoor dienen de geheugenbestanden van Claude Code.

/branch is hier ook relevant. Deze opdracht kopieert het gesprek tot het huidige punt en schakelt u over naar de kopie. Het origineel blijft ongewijzigd en blijft beschikbaar in de keuzelijst. Gebruik dit om een tweede aanpak te proberen zonder de eerste kwijt te raken.

Waar hervatten verschilt van compaction en memory

Deze functies worden voortdurend door elkaar gehaald, maar ze lossen verschillende problemen op.

Resume gaat erover een gesprek opnieuw beschikbaar te maken nadat u het hebt afgesloten, opnieuw hebt opgestart of naar een andere taak bent overgestapt. Compaction gaat over het contextvenster binnen een actief gesprek: /compact vervangt de context die Claude bijhoudt door een samenvatting, zodat latere verzoeken minder tokens versturen. Als uw probleem is dat het contextvenster vol is, gebruikt u compaction. Het contextvenster van Claude Code beheren behandelt dit uitgebreid.

Memory werkt weer anders. CLAUDE.md-bestanden en automatische memory bevatten instructies en feiten die aan het begin van elke sessie worden geladen. Ze vormen dus geen gesprek waarnaar u terugkeert. U legt hierin informatie vast, zodat u niet naar een eerder gesprek hoeft terug te keren.

Als u twee gesprekken tegelijkertijd wilt uitvoeren en deze met elkaar wilt laten coördineren, is daarvoor een afzonderlijk mechanisme nodig. Claude Code-sessies kunnen elkaar berichten sturen terwijl beide actief zijn. Dat is een ander probleem dan de sessie van gisteren opnieuw van schijf laden.

FAQ

Waar slaat Claude Code mijn sessiegeschiedenis op?

Standaard in uw configuratiemap, op ~/.claude/projects/<project>/<session-id>.jsonl. Hierbij is <project> het pad naar de werkmap, waarbij niet-alfanumerieke tekens zijn vervangen door koppeltekens. Elk bestand gebruikt JSONL: één JSON-object per regel voor een bericht, een toolgebruik of een metadata-item. Met CLAUDE_CONFIG_DIR verplaatst u de configuratiemap. Met cleanupPeriodDays in settings.json stelt u in hoelang transcripties worden bewaard. De standaardwaarde is 30 dagen, met een minimum van 1.

Waarom zie ik mijn VPS-sessie niet in de keuzelijst op mijn laptop?

Omdat transcripties worden opgeslagen op de schijf van de machine waarop de agent actief was. Ze worden niet tussen machines gesynchroniseerd. Een gesprek dat u in tmux op uw VPS hebt gevoerd, bestaat alleen op de VPS. Hervat het daar via SSH. U kunt ook /export daarin uitvoeren en het tekstbestand kopiëren als u lokaal een kopie wilt bewaren.

Kan ik een sessie hervatten die ik in een andere map ben gestart?

Ja, als u de sessie-ID hebt. claude --resume <session-id> zoekt eerst in de huidige projectmap en de bijbehorende git-worktrees. Daarna zoekt het in elk ander project op dezelfde machine. In de keuzelijst maakt Ctrl+A de lijst breder zodat elk project op de machine wordt opgenomen. Met Ctrl+W neemt de lijst alle worktrees van de huidige repository op. Als niets overeenkomt, meldt Claude Code No conversation found with session ID: <session-id>.

Moet ik een oude sessie hervatten of een nieuwe starten?

Hervat de sessie wanneer uw volgende bericht afhankelijk is van wat in dat gesprek al is gezegd. Start een nieuwe sessie wanneer dat niet het geval is. Bij hervatten wordt de volledige geschiedenis opnieuw geladen en bevat elk later verzoek die geschiedenis. Let op contextvervuiling. Een sessie die blijft verwijzen naar bestanden die u al hebt verwijderd, bevat verouderde context. Die context kost u bij elke beurt tokens en vermindert de nauwkeurigheid.

Kan ik voorkomen dat Claude Code transcripties naar schijf schrijft?

Ja. CLAUDE_CODE_SKIP_PROMPT_HISTORY onderdrukt het schrijven van transcripties. --no-session-persistence doet dat voor één niet-interactieve uitvoering van claude -p. Weeg dit eerst af. Transcripties zijn namelijk de bron die resume gebruikt. Als u het schrijven uitschakelt, hebben --continue en --resume niets om te laden. Gaat het u alleen om de opslaglocatie en niet om het bestaan van de bestanden, wijs CLAUDE_CONFIG_DIR dan naar een versleuteld volume en verlaag cleanupPeriodDays in plaats daarvan.