EN

Claude Code löscht deine Sessions nach 30 Tagen — und (fast) niemand weiß es

Claude Code räumt deinen lokalen Session-Verlauf nach 30 Tagen automatisch weg — die Einstellung heißt cleanupPeriodDays und steht in einer Datei, die es auf deinem Rechner wahrscheinlich noch gar nicht gibt. Wie du das abstellst, warum ein DSGVO-Antrag die Dateien nicht zurückholt, und warum Codex sich genau andersherum verhält.

Kurzfassung

Claude Code löscht deinen kompletten lokalen Session-Verlauf nach 30 Tagen automatisch — die Standard-Einstellung heißt cleanupPeriodDays und steht auf 30. Nach diesem Post weißt du, ob du betroffen bist, wie du die Löschung mit einer Zeile dauerhaft abschaltest, und warum du diese Dateien von Anthropic auch über die DSGVO nicht zurückbekommst.

Was das macht

Jedes Mal wenn du mit Claude Code arbeitest, schreibt das Tool den kompletten Verlauf eurer Session als Datei auf deine Festplatte — jede Nachricht, jeder Befehl, jede Datei-Änderung. Diese Dateien liegen unter ~/.claude/projects/ und sind im JSONL-Format. JSONL heißt einfach: jede Zeile ist ein eigenes JSON-Objekt, also eine Liste, bei der jeder Eintrag in seiner eigenen Zeile steht. (Die Tilde ~ ist die Kurzschreibweise für deinen Benutzerordner, auf dem Mac also /Users/deinname.)

Das ist praktisch, denn genau aus diesen Dateien kann Claude Code eine alte Session wieder aufmachen — du tippst claude --resume und bist zurück in einem Gespräch von letzter Woche. Dein ganzes Arbeitsgedächtnis mit dem Agenten liegt da.

Der Haken: Claude Code räumt diese Dateien standardmäßig nach 30 Tagen weg. Nicht weil etwas kaputt ist — das ist die eingebaute Voreinstellung. Es gibt eine Einstellung namens cleanupPeriodDays, und wenn du sie nie angefasst hast, steht sie auf 30. Alles, was älter ist, wird beim Start automatisch gelöscht.

Und gelöscht ist hier wörtlich gemeint. Bei mir waren dadurch rund neun Monate an Claude-Code-Sessions weg, bevor ich überhaupt gemerkt habe, dass es diese Einstellung gibt. Kein Papierkorb, kein Backup, keine Wiederherstellung. Dieser Post ist die Anleitung, die ich mir vorher gewünscht hätte.

Achtung

Die Löschung betrifft nicht nur die Chat-Verläufe. Laut der offiziellen Doku räumt derselbe Lauf auch die Transcripts der Subagenten, ausgelagerte Tool-Ergebnisse, die Datei-Snapshots für den Checkpoint-Restore (~/.claude/file-history/), Plan-Dateien, Debug-Logs, Paste- und Bild-Cache, Task-Dateien (~/.claude/tasks/), Shell-Snapshots und interne Backups mit weg. Seit neuerem hängen auch verwaiste Git-Worktrees an derselben Altersgrenze. Es ist ein kompletter 30-Tage-Schnitt durch deinen lokalen Claude-Code-Zustand.

Praktische Folge, die viele überrascht: Mit dem Transcript verschwindet auch die Möglichkeit, in dieser Session einen Checkpoint zurückzurollen.

Was du brauchst

  1. Claude Code installiert — die Einstellung gibt es in jeder halbwegs aktuellen Version
  2. Ein Terminal — Terminal ist einfach das Programm, in das du Befehle tippst (auf dem Mac: "Terminal" oder iTerm)
  3. 2 Minuten — Prüfen und Abschalten dauert zusammen keine fünf Minuten

Schritt 1: Prüfen, ob du schon betroffen bist

Zuerst die unangenehme Frage: Hat dich der Cleanup schon erwischt? Schau dir an, ab wann deine Sessions überhaupt noch existieren. Dieser Befehl zeigt dir die fünf ältesten Session-Dateien mit Datum:

find ~/.claude/projects/ -name "*.jsonl" -printf "%TY-%Tm-%Td  %p\n" 2>/dev/null | sort | head -5

Hinweis

Das find … -printf mit %TY-%Tm-%Td funktioniert so auf Linux. Auf dem Mac hat das eingebaute find kein -printf — wenn du eine Fehlermeldung bekommst, nimm stattdessen ls -ltU ~/.claude/projects/**/*.jsonl | tail -5 oder lass es dir einfach von Claude Code selbst auflisten.

Vergleich das mit dem Tag, an dem du Claude Code installiert hast. Wann dein Claude-Ordner angelegt wurde, verrät dir:

stat -f "%SB  %N" ~/.claude

Klafft da eine Lücke — Ordner seit einem halben Jahr da, aber die älteste Session ist nur ein paar Wochen alt — dann hat der Cleanup zugeschlagen. Den letzten Aufräum-Lauf kannst du sogar direkt nachsehen, Claude Code schreibt einen Zeitstempel mit:

cat ~/.claude/.last-cleanup

Steht da ein Datum, ist der 30-Tage-Cleanup bei dir aktiv und schon gelaufen.

Schritt 2: Die Auto-Löschung abschalten

Jetzt der eigentliche Fix. Du setzt cleanupPeriodDays auf einen absurd großen Wert, dann wird praktisch nie wieder etwas gelöscht.

Zwei Dinge vorweg, weil sie die meisten Leute an dieser Stelle stolpern lassen:

Die Datei existiert wahrscheinlich noch gar nicht. ~/.claude/settings.json wird von Claude Code nicht automatisch angelegt — eine frische Installation legt nur .claude.json und einen backups/-Ordner an. Genau deshalb ist praktisch jeder betroffen: Steht cleanupPeriodDays nirgends, greift stillschweigend der eingebaute Standardwert von 30 Tagen. Du musst die Datei also unter Umständen selbst erstellen.

Es gibt dafür keinen Befehl und keinen Schalter im Menü. cleanupPeriodDays taucht in der /config-Oberfläche nicht auf, und ein claude config-Unterbefehl existiert in der CLI nicht mehr. Versuchst du es über die Kurzform, sagt dir Claude Code das direkt ins Gesicht:

$ claude -p "/config cleanupPeriodDays=999999"
cleanupPeriodDays isn't a /config setting. Run /config to see what's available.

Heißt: Es führt kein Weg an der Datei vorbei. Öffne ~/.claude/settings.json (oder leg sie an) und füge die Zeile hinzu:

{
  "cleanupPeriodDays": 999999
}

Wenn die Datei schon Inhalt hat, hängst du das Feld einfach zu den anderen oben dazu — achte nur darauf, dass nach jeder Zeile außer der letzten ein Komma steht. 999999 Tage sind über 2700 Jahre, also faktisch "nie".

0 funktioniert nicht — und der Grund ist die eigentliche Geschichte

Es liegt nahe, 0 für "gar nicht löschen" zu probieren. Genau das haben viele getan, und es hat das Gegenteil bewirkt: 0 hat früher still das Mitschreiben komplett abgeschaltet, es entstanden also gar keine Verläufe mehr. Heute wird der Wert deshalb abgewiesen, der kleinste erlaubte ist 1.

Wenn du Transcripts bewusst gar nicht auf die Platte schreiben willst, ist der richtige Hebel die Umgebungsvariable CLAUDE_CODE_SKIP_PROMPT_HISTORY. Im Skript-Betrieb geht auch --no-session-persistence zusammen mit -p, im Agent SDK persistSession: false.

Claude Code nennt den Grund selbst, wenn man es probiert:

cleanupPeriodDays: Number must be greater than or equal to 0
Suggested fix: cleanupPeriodDays must be at least 1. To keep transcripts for a
long time, set a large number (e.g. 3650 for ~10 years). [...] (0 is rejected
because it previously silently disabled all transcript writes, which users
setting it to mean "never clean up" did not expect.)

Zwei Dinge stecken da drin. Erstens schlägt Anthropic für "lange behalten" selbst 3650 vor, also rund zehn Jahre — ein ebenso gültiger Wert wie das 999999 von oben. Zweitens die Gegenprobe mit Claude Code 2.1.233: Liegt ein ungültiges cleanupPeriodDays: 0 in der Settings-Datei, pausiert der Cleanup, und eine 60 Tage alte Testdatei überlebt. Der frühere Rückfall auf die 30-Tage-Voreinstellung passiert seit 2.1.203 nicht mehr.

Halt Claude Code aktuell — sonst greift die Einstellung nicht zuverlässig

Bis Version 2.1.203 gab es einen Fehler, der genau diese Einstellung ausgehebelt hat: Konnte Claude Code eine settings.json nicht lesen oder parsen (ein fehlendes Komma reicht), fiel der Cleanup stillschweigend auf die 30-Tage-Voreinstellung zurück — und löschte damit exakt die Transcripts, die dein hoher cleanupPeriodDays schützen sollte. Ab 2.1.203 pausiert der Cleanup in dem Fall stattdessen und zeigt eine Warnung in /status. Prüf deine Version mit claude --version.

Du musst die Datei nicht von Hand bearbeiten. Der einfachste Weg ist, Claude Code selbst ranzulassen — öffne eine Session und gib das hier ein:

Füge "cleanupPeriodDays": 999999 zu meiner ~/.claude/settings.json hinzu,
damit meine Sessions nie automatisch gelöscht werden. Zeig mir danach, dass es drinsteht.

Prüfen, ob es sitzt:

grep cleanupPeriodDays ~/.claude/settings.json

Kommt die Zeile zurück, bist du durch. Ab jetzt sammelt Claude Code deinen Verlauf, statt ihn wegzuwerfen.

Einmal global reicht — nicht pro Projekt

Wichtig, damit du es nicht falsch machst: Diese eine Zeile in ~/.claude/settings.json gilt für alle deine Projekte. Claude Code speichert zwar pro Projekt einen eigenen Ordner unter ~/.claude/projects/<projekt>/, aber der Cleanup räumt den ganzen Baum auf einmal auf und liest dafür deine globale Einstellung. Du musst cleanupPeriodDays also nicht in jedem Projekt einzeln setzen — einmal global, fertig.

Hinweis

Es ist trotzdem eine scoped Einstellung: Ein Projekt darf den globalen Wert mit einer eigenen .claude/settings.json überschreiben, und der Projekt-Wert gewinnt. Die Rangfolge (hoch → niedrig): Managed/Enterprise → Command-Line → .claude/settings.local.json (Projekt, lokal) → .claude/settings.json (Projekt, geteilt) → ~/.claude/settings.json (global). Heißt konkret: liegt in einem geclonten Repo eine eingecheckte .claude/settings.json mit einem niedrigeren cleanupPeriodDays, folgen die Transcripts dieses Projekts diesem Wert — nicht deinem globalen. Wenn du ganz sichergehen willst, prüf das einmal kurz:

grep -rl --include=settings.json cleanupPeriodDays ~/dein-code-ordner 2&gt;/dev/null

Schritt 3: Trotzdem ein eigenes Backup einrichten

Die Einstellung schützt dich vor dem automatischen Löschen. Sie schützt dich nicht vor einem Festplatten-Crash, einem versehentlichen rm, oder einem Tool-Update das sich anders verhält als gedacht. Die Sessions liegen nur an einer einzigen Stelle auf deiner Maschine — und genau das ist das eigentliche Risiko.

Ein simpler periodischer Sync auf eine externe Platte oder in ein privates Git-Repo reicht völlig:

rsync -aH ~/.claude/projects/ /Volumes/DeineBackupPlatte/claude-sessions/

Tipp

Wenn du Codex CLI auch nutzt, sichere ~/.codex/sessions/ gleich mit — dort sammelt sich noch viel mehr an (dazu unten mehr).

Die Kehrseite: eine Datei wird nie aufgeräumt

Der Cleanup ist streng bei den Verläufen und komplett gleichgültig bei einer Datei, die datenschutzrechtlich fast heikler ist: ~/.claude/history.jsonl. Da steht jeder Prompt, den du je getippt hast drin, mit Zeitstempel und Projektpfad — das ist die Liste, durch die du mit der Pfeil-nach-oben-Taste blätterst. Diese Datei fällt ausdrücklich nicht unter die automatische Aufräumung und bleibt, bis du sie selbst löschst.

Das ist die eigentliche Ironie der Voreinstellung: Der nützliche Teil (dein Arbeitsgedächtnis mit dem Agenten) fliegt nach 30 Tagen raus, die Protokollspur deiner Tastatureingaben bleibt für immer. Beides liegt unverschlüsselt im Klartext auf der Platte — Dateirechte sind der einzige Schutz. Liest ein Tool mal eine .env, steht das Passwort damit im Transcript.

Wenn du für ein einzelnes Projekt sauber machen willst, gibt es dafür seit Version 2.1.124 einen eigenen Befehl statt Handarbeit im Finder:

claude project purge

Der wichtigste Punkt: Diese Dateien liegen NUR bei dir

Hier kommt die Sache, die die meisten überrascht. Es liegt nahe zu denken: "Anthropic hat die Gespräche doch eh auf ihren Servern, ich frag die einfach." Stimmt so nicht.

Die .jsonl-Dateien sind ein rein lokales Artefakt von Claude Code. Sie verlassen deine Maschine nie als Datei. Was an Anthropic geht, sind die einzelnen Nachrichten über die API — also die Prompts und die Antworten, die nötig sind, um eine Antwort zu erzeugen. Die fertige Verlaufsdatei auf deiner Platte hat Anthropic nie gesehen. Die offizielle Doku sagt es deutlich: "Claude Code clients store session transcripts locally in plaintext under ~/.claude/projects/ for 30 days by default." Lokal. Auf deinem Rechner.

Heißt für die Wiederherstellung: Wenn du kein eigenes Backup hast (Time Machine, externe Platte, Cloud-Sync, Git), sind gelöschte Sessions weg. Nicht "schwer wiederherzustellen" — weg.

"Aber die DSGVO?" — warum das hier nicht hilft

Als EU-Bürger hast du ein Auskunftsrecht (Artikel 15 DSGVO) und ein Recht auf Datenübertragbarkeit (Artikel 20 DSGVO). Du kannst bei Anthropic also einen Antrag stellen und alle personenbezogenen Daten anfordern, die sie über dich haben. Klingt nach der Rettung. Ist es aber aus zwei voneinander unabhängigen Gründen nicht.

Erstens: Anthropic hatte die Dateien nie. Die DSGVO zwingt einen Anbieter dazu, dir die Daten herauszugeben, die er hat. Die .jsonl-Verlaufsdateien hatte Anthropic nie — die kann dir niemand zurückgeben. Bestenfalls bekämst du den Inhalt der Gespräche, falls er serverseitig noch existiert.

Zweitens: Der Inhalt ist nach der Aufbewahrungsfrist ohnehin gelöscht. Anthropic speichert Inhalte nur für ein begrenztes Zeitfenster und löscht sie dann planmäßig. Wie lang das Fenster ist, hängt an deinem Konto und einem einzigen Schalter:

  • Free / Pro / Max ohne Trainings-Einwilligung — 30 Tage
  • Free / Pro / Max mit Trainings-Einwilligung — 5 Jahre (de-identifiziert, in der Trainings-Pipeline)
  • Team / Enterprise / API — 30 Tage (Zero Data Retention auf Anfrage für qualifizierte Enterprise-Konten)
  • Bei Verstoß gegen die Nutzungsrichtlinien — bis 2 Jahre Inhalte, bis 7 Jahre Trust-&-Safety-Scores

Gelöschte Gespräche verschwinden laut Privacy Center sofort aus dem Verlauf und "innerhalb von 30 Tagen" aus den Backend-Systemen. Die DSGVO verlangt nicht, dass ein Anbieter planmäßig gelöschte Daten wiederherstellt — im Gegenteil, das fristgerechte Löschen ist selbst eine DSGVO-Pflicht (Artikel 5 Absatz 1 lit. e: nicht länger speichern als nötig).

Nebenbei die praktische Erkenntnis aus der Tabelle: Der Schalter, der deine Daten fünf Jahre statt dreißig Tage auf fremden Servern liegen lässt, ist die Trainings-Einwilligung — und die ändert nichts daran, dass deine lokalen Verlaufsdateien trotzdem nach 30 Tagen weggeräumt werden. Umstellen kannst du das jederzeit unter claude.ai/settings/data-privacy-controls.

Hinweis

Ein Versuch kostet trotzdem nur fünf Minuten: eine Mail an privacy@anthropic.com mit Betreff "GDPR Data Subject Access Request", deiner Konto-Mail und der konkreten Frage, ob noch Gesprächsdaten aus dem fraglichen Zeitraum existieren. Antwortfrist sind 30 Tage. Erwarte aber realistisch: Die alten Sessions kommen so nicht zurück.

Codex und ChatGPT: das genaue Gegenteil

Damit du den Unterschied einordnen kannst — die OpenAI-Seite verhält sich anders:

  • Claude Code — Speicherort: Lokal (~/.claude/projects/) — Automatische Löschung?: Ja — nach 30 Tagen (cleanupPeriodDays, abschaltbar)
  • Claude Code — Prompt-History — Speicherort: Lokal (~/.claude/history.jsonl) — Automatische Löschung?: Nein — bleibt unbegrenzt
  • Codex CLI — Speicherort: Lokal (~/.codex/sessions/) — Automatische Löschung?: Nein — keine Cleanup-Einstellung, sammelt alles
  • claude.ai (Cloud) — Speicherort: Anthropic-Server — Automatische Löschung?: Gelöschte Chats nach ~30 Tagen entfernt; sonst gespeichert
  • ChatGPT (Cloud) — Speicherort: OpenAI-Server — Automatische Löschung?: Nein — bleibt unbegrenzt, bis du löschst (dann ~30-Tage-Purge)

Codex CLI hat schlicht keinen Mechanismus, der die Session-Dateien altersbasiert wegräumt — in der offiziellen Konfigurations-Referenz gibt es keine Retention- oder Cleanup-Option für ~/.codex/sessions/. Das ist bequem, wird aber mit der Zeit groß: Auf meiner Maschine liegen dort inzwischen 1,3 GB an Sessions, an die nie jemand rangeht. Sicher, aber irgendwann ein Fall fürs manuelle Aufräumen.

Manuell heißt bei Codex mittlerweile nicht mehr "Ordner im Finder löschen", es gibt eigene Befehle dafür:

codex archive      # Session ins Archiv schieben (~/.codex/archived_sessions/)
codex unarchive    # wieder zurückholen
codex delete       # endgültig löschen
codex exec --ephemeral   # Lauf, der gar nichts auf die Platte schreibt

Zwei Konfigurationsschlüssel gibt es trotzdem, sie betreffen aber nur die Prompt-History (~/.codex/history.jsonl), nicht die Session-Dateien: [history] persistence = "none" schaltet das Mitschreiben ab, [history] max_bytes deckelt die Dateigröße und wirft beim Überlauf die ältesten Einträge weg.

Hinweis

Das ist genau spiegelverkehrt zu Claude Code: Bei Claude Code werden die Verläufe automatisch gelöscht und die Prompt-History bleibt ewig, bei Codex bleiben die Verläufe ewig und nur für die Prompt-History gibt es überhaupt eine Deckelung.

ChatGPT im Browser wiederum behält deine Unterhaltungen unbegrenzt, bis du sie selbst löschst — und erst nach dem Löschen greift ein 30-Tage-Purge auf den Servern. Die "30 Tage" tauchen also in beiden Welten auf, meinen aber komplett verschiedene Dinge: bei Claude Code das automatische Wegräumen lokaler Dateien, bei der Cloud das endgültige Entfernen nach einer von dir ausgelösten Löschung.

Schnellreferenz

  • Älteste noch vorhandene Sessions sehenfind ~/.claude/projects/ -name "*.jsonl" | sort | head
  • Letzten Cleanup-Lauf nachsehencat ~/.claude/.last-cleanup
  • Auto-Löschung abschalten"cleanupPeriodDays": 999999 in ~/.claude/settings.json
  • Prüfen, ob die Einstellung sitztgrep cleanupPeriodDays ~/.claude/settings.json
  • Auf Projekt-Overrides prüfengrep -rl --include=settings.json cleanupPeriodDays ~/dein-code-ordner
  • Version prüfen (muss ≥ 2.1.203 sein)claude --version
  • Transcripts gar nicht erst schreiben — Umgebungsvariable CLAUDE_CODE_SKIP_PROMPT_HISTORY setzen (nicht cleanupPeriodDays: 0 — das failt)
  • Ein Projekt komplett aufräumenclaude project purge
  • Backup ziehenrsync -aH ~/.claude/projects/ /Volumes/Backup/claude-sessions/
  • Codex-Session archivieren / löschencodex archive / codex delete

Selbst nachbauen

Wenn du Claude Code oder einen anderen AI-Coding-Assistenten nutzt, kopier diesen Prompt:

Read this guide and implement all the steps for my machine: https://cyp.dev/de/blog/claude-code-loescht-sessions-nach-30-tagen

Der Post enthält jeden Befehl und jeden Pfad, den der Agent braucht, um deine Sessions zu prüfen, die Auto-Löschung abzuschalten und ein Backup einzurichten.

Zum Selbst-Nachlesen: die Originalstellen

Weil dieser Post eine unbequeme Behauptung aufstellt, hier die Belege im Wortlaut — jeweils aus der offiziellen Dokumentation der Hersteller, nicht aus zweiter Hand.

Dass Claude Code lokal löscht

Anthropic sagt es in der Datenschutz-Doku selbst, im Abschnitt Data retention:

Claude Code — Data usage

"Local caching: Claude Code clients store session transcripts locally in plaintext under ~/.claude/projects/ for 30 days by default to enable session resumption. Adjust the period with cleanupPeriodDays."

Die Settings-Referenz nennt Standardwert, Untergrenze und das Verhalten bei 0:

Claude Code — Settings, Eintrag cleanupPeriodDays

"Default: 30 days, minimum 1. Claude Code deletes session files and other application data older than this period at startup. Setting 0 fails with a validation error. […] Before v2.1.203, cleanup ran at the 30-day default in that state and could delete transcripts a longer cleanupPeriodDays was meant to keep."

Und die Verzeichnis-Doku listet auf, was genau wegfliegt — und was ausdrücklich nicht:

Claude Code — Das .claude-Verzeichnis

Cleaned up automatically: "Files in the paths below are deleted on startup once they're older than cleanupPeriodDays. The default is 30 days." — betrifft projects/<project>/<session>.jsonl, subagents/, tool-results/, file-history/, plans/, debug/, paste-cache/, image-cache/, session-env/, tasks/, shell-snapshots/, backups/

Kept until you delete them: "The following paths are not covered by automatic cleanup and persist indefinitely." — darunter history.jsonl: "Every prompt you've typed, with timestamp and project path."

Dass es nur über die Datei geht

Die Settings-Doku markiert bei jeder Einstellung, die in der /config-Oberfläche auftaucht, ausdrücklich "Appears in /config". Rund 30 Einstellungen tragen diesen Vermerk — cleanupPeriodDays gehört nicht dazu. Gegenprobe im Terminal, mit Claude Code 2.1.223:

$ claude -p &quot;/config cleanupPeriodDays=999999&quot;
cleanupPeriodDays isn&#39;t a /config setting. Run /config to see what&#39;s available.

Ein claude config-Unterbefehl existiert ebenfalls nicht (claude --help listet unter Commands nur agents, auth, auto-mode, doctor, gateway, import, install, mcp, plugin, project, setup-token, ultrareview, update).

Dass die Datei anfangs fehlt, lässt sich mit einem frischen Konfigurationsverzeichnis nachstellen:

CLAUDE_CONFIG_DIR=/tmp/test-claude claude doctor
ls -a /tmp/test-claude
# .claude.json   backups
# → keine settings.json

Kein settings.json, also kein cleanupPeriodDays, also greift der Standardwert. Genau das ist der Grund, warum das Verhalten so vielen nie auffällt.

Dass Codex nichts löscht

Bei OpenAI ist es schwieriger zu belegen, weil eine fehlende Funktion selten dokumentiert wird. Drei Belege zusammen sind aber eindeutig.

Erstens beschreibt die offizielle Befehlsreferenz Archivieren ausdrücklich als Nicht-Löschen, und Löschen als etwas, das du selbst anstoßen musst:

Codex — Developer commands

codex archive / unarchive: "Archive or restore a saved interactive session by session ID or session name. Use these commands when you want to clean up the session picker without deleting the transcript."

codex delete: "Permanently delete a saved interactive session by session ID or session name."

codex exec --ephemeral: "Run without persisting session rollout files to disk."

Ein eigenes Flag dafür, nicht auf die Platte zu schreiben, ergibt nur Sinn, wenn Schreiben und Liegenbleiben der Normalfall ist.

Zweitens kennt die Konfigurations-Referenz nur eine Deckelung für die Prompt-History, keine für die Sessions:

Codex — Advanced configuration

"By default, Codex saves local session transcripts under CODEX_HOME (for example, ~/.codex/history.jsonl)." — abschaltbar mit [history] persistence = "none", deckelbar mit [history] max_bytes, wobei Codex beim Überlauf "drops the oldest entries and compacts the file while keeping the newest records".

Drittens — und am deutlichsten — liegt in OpenAIs eigenem Repository seit Oktober 2025 ein offener Feature-Wunsch, überhaupt erst eine Aufbewahrungsfrist einzubauen:

openai/codex Issue #6015 — "Customizable retention period for sessions" (Status: offen)

"Currently, Codex retains every conversation indefinitely, so the history folder grows larger over time even though many of those conversations are no longer useful."

Ein offener Wunsch nach einer Funktion ist der beste verfügbare Beweis, dass es sie nicht gibt. Bemerkenswert ist die Diskussion darunter: Mehrere Nutzer bitten darum, so etwas niemals als stillen Standard einzuführen — und führen als warnendes Beispiel ausgerechnet Claude Code an.

Quellen

Stand

Alle Angaben gegen die offiziellen Dokus geprüft am 6. August 2026, verifiziert mit Claude Code 2.1.223 und Codex CLI 0.146.0. Das Verhalten bei cleanupPeriodDays: 0 am 16. August 2026 mit Claude Code 2.1.233 in einem separaten Konfigurationsverzeichnis nachgestellt.

Zusammenfassung

Claude Code wirft deinen Session-Verlauf nach 30 Tagen weg, solange du cleanupPeriodDays nicht anfasst — und diese Dateien liegen nur bei dir, nicht bei Anthropic, also holt sie auch kein DSGVO-Antrag zurück. Eine Zeile in settings.json stoppt das Löschen, ein simpler rsync macht es krisensicher. Was dabei nicht gelöscht wird, ist die Prompt-History — die bleibt für immer, im Klartext. Codex und ChatGPT verhalten sich genau andersherum und räumen von sich aus gar nichts weg. Schalt die Auto-Löschung ab, bevor du merkst, dass sie existiert — bei mir war diese Erkenntnis neun Monate zu spät.