Dein KI-Coding-Agent vergisst nach Plan
Claude Code und Gemini CLI löschen Sessions ab Werk nach 30 Tagen. Was dabei verloren geht, und welche Einstellungen und Backups deinen Verlauf retten.
Vor sechs Wochen hast du mit deinem Agenten einen Nachmittag an einem fiesen Bug gesessen. Eine Race Condition im Importer, zwei falsche Theorien und eine Logzeile, die alles verraten hat. Heute taucht ein ähnlicher Bug auf. Du erinnerst dich an die Session. Du weißt, dass die Antwort darin stand. Du öffnest den Verlauf, und sie ist weg.
An deinem Gedächtnis liegt es nicht. Das Tool hat die Session gelöscht, nach Plan, und der Plan steht in der Doku.
Die Voreinstellungen
So gehen die Agent-CLIs ab Werk mit deinen Sessions um.
| Tool | Voreinstellung | Was passiert |
|---|---|---|
| Claude Code | 30 Tage | Ein Aufräumlauf löscht Transkripte und die zugehörigen Dateien (docs) |
| Gemini CLI | 30 Tage | Das Aufräumen von Sessions ist ab Werk an, maxAge: "30d" (docs) |
| OpenCode | bleibt | Die Session-Auswahl zeigte nur die letzten 30 Tage; das Issue wurde als „not planned“ geschlossen (#16733) |
| Codex | bleibt | Kein dokumentiertes Aufräumen; codex archive blendet eine Session aus, codex delete entfernt sie (reference) |
| Cursor | bleibt, aber wackelig | Lokale Chats können nach einer fehlgeschlagenen Migration oder mit einer geänderten Workspace-ID unsichtbar werden (forum) |
| GitHub Copilot CLI | hochgeladen | Sessions werden ab Werk auf GitHub.com hochgeladen (GitHub Docs) |
Wie lange jedes Tool Sessions ab Werk aufbewahrt, laut seiner eigenen Doku.
Claude Code nutzen die meisten, deshalb hier die Details.
Was der Aufräumlauf von Claude Code mitnimmt
Claude Code löscht Dateien, die älter sind als cleanupPeriodDays. „The default is 30 days and the minimum is 1; setting 0 fails with a validation error.“ (Claude Code docs) Dabei verschwindet viel mehr als der Chat:
- das Transkript des Gesprächs,
~/.claude/projects/<project>/<session>.jsonl - die Transkripte der Subagenten
- große Tool-Ausgaben und Bilder, die Tools zurückgegeben haben
file-history/, die Snapshots, mit denen du zu einem Checkpoint zurückspringstplans/, die Plan-Dateien aus dem Plan-Modus- das Scratchpad der Session
Die Doku sagt auch, was du verlierst, wenn die Transkripte weg sind: „Resume, continue, and rewind for past sessions.“ Was bleibt, ist history.jsonl mit den Prompts, die du getippt hast. Deine Hälfte des Gesprächs überlebt. Die Hälfte des Agenten, mit seinen Funden und Tool-Ergebnissen, nicht.
Eine Ausnahme solltest du kennen. Seit v2.1.248 behält Claude Code die Transkripte von Sessions, die du in Claude Desktop oder Cowork gestartet oder zuletzt fortgesetzt hast, unabhängig vom Alter. Für Sessions im Terminal gilt diese Ausnahme nicht.
Auch innerhalb der 30 Tage findest du Sessions nicht immer wieder. claude --resume listet die Sessions aus dem aktuellen Ordner. Sessions aus anderen Ordnern bleiben verborgen, bis du Ctrl+A drückst oder die ID kennst (sessions docs).
Warum dein Session-Verlauf eine Wissensbasis ist
Git hält fest, was sich geändert hat. Warum, steht selten drin. Das Warum steht in der Session:
- Entscheidungen und ihre Gründe. „Wir behalten den alten Endpoint, weil die iOS-App vom März ihn noch aufruft.“
- Sackgassen. Die zwei Theorien, die falsch waren, und wie du sie ausgeschlossen hast. Ohne sie probiert der nächste Agent sie noch einmal, mit deinen Tokens.
- Befehle, die funktioniert haben. Das genaue Migrations-Flag, der curl-Aufruf mit dem richtigen Header, der eine Test, der den Bug nachstellt.
- Was der Agent gefunden hat. Dateipfade, Zeilennummern, die Logzeile. Das ist der teure Teil einer Session, und genau den löscht der Aufräumlauf.
Eine gute Commit-Message enthält eins oder zwei davon. Eine Session enthält alles. Und wenn der Verlauf bleibt, können auch Agenten darin suchen. Dann musst du nicht jeder neuen Session denselben Hintergrund einfügen.
So behältst du ihn
Das alles ist praktisch machbar, und das meiste dauert fünf Minuten.
1. Die Einstellung von Claude Code ändern
Setz cleanupPeriodDays in ~/.claude/settings.json auf eine große Zahl. Weil 0 abgelehnt wird, heißt „behalten“ hier „sehr lange behalten“:
{
"cleanupPeriodDays": 36500
}
Damit meine anderen Einstellungen unangetastet bleiben, nehme ich jq und behalte eine Kopie der alten Datei (gibt es die Datei noch nicht, leg sie vorher mit {} an):
cp ~/.claude/settings.json ~/.claude/settings.json.bak
jq '.cleanupPeriodDays = 36500' ~/.claude/settings.json.bak > ~/.claude/settings.json
Zwei Dinge solltest du wissen. Verteilt deine Firma Managed Settings mit cleanupPeriodDays, gewinnt deren Wert gegen deinen. Und Transkripte sind Klartext. Die Doku warnt: Alles, was ein Tool liest, auch eine .env-Datei, kann in einem Transkript landen. Wer Transkripte länger aufhebt, hebt auch das länger auf. Schütz also den Ordner und seine Backups.
2. Die Einstellung der Gemini CLI ändern
Schalte in der settings.json der Gemini CLI das Aufräumen ab:
{
"general": {
"sessionRetention": {
"enabled": false
}
}
}
Du kannst es auch eingeschaltet lassen und stattdessen ein längeres maxAge oder ein maxCount setzen (docs).
3. Wissen, wie die anderen Dinge verstecken
OpenCode behält alles. opencode session list listet deine Sessions, opencode export exportiert eine (CLI docs). In Codex sind archivierte Sessions nur ausgeblendet, entfernt werden sie erst mit codex delete. Bei Cursor machst du ein Backup, bevor du neu installierst, migrierst oder dich neu anmeldest.
4. Die Rohdateien sichern
Eine Einstellung schützt dich vor dem Aufräumlauf. Vor einer kaputten Festplatte, einer Neuinstallation oder einem schlechten Update schützt sie dich nicht. Kopier die Ordner regelmäßig an einen anderen Ort. Ein einfaches rsync ohne --delete reicht, denn dann bleibt eine Datei, die an der Quelle gelöscht wurde, im Backup:
rsync -a ~/.claude/projects/ /Volumes/Backup/agent-history/claude/
rsync -a ~/.gemini/tmp/ /Volumes/Backup/agent-history/gemini/
Damit es jede Nacht läuft, trag es in deine Crontab ein (crontab -e):
0 3 * * * rsync -a ~/.claude/projects/ /Volumes/Backup/agent-history/claude/
Sichere die Rohdateien und verlass dich nicht auf einen Konverter. Laut Anthropics Doku ist das Transkriptformat intern und ändert sich zwischen Versionen. Ein Skript, das Transkripte in Markdown umwandelt, kann also mit jedem Update aufhören zu funktionieren. Rohdateien kannst du später immer neu einlesen. Und weil Transkripte Geheimnisse enthalten können, gehört das Backup auf ein verschlüsseltes Ziel.
5. Erst suchen, dann neu fragen
Bevor du einer frischen Session ein Problem erklärst, such nach der alten. In Claude Code zeigt claude --resume und dann Ctrl+A die Sessions aus allen Ordnern. Noch besser: Bewahr deinen Verlauf dort auf, wo du über alle Projekte hinweg suchen kannst.
Wie Splitkick seine eigene Kopie behält
Jetzt rede ich über mein eigenes Produkt. Ich baue Splitkick, eine kostenlose Open-Source-App für den Mac, die Agent-CLIs nebeneinander laufen lässt, mit einem Git-Worktree pro Aufgabe. Den Verlauf zu behalten gehört zu den Dingen, um die herum es gebaut ist.

Splitkick schreibt jede Session in einen eigenen Ordner auf deiner Festplatte: ~/Library/Application Support/app.splitkick.desktop/sessions/data/<session id>/, mit den Metadaten der Session, dem Gespräch und dem Verlauf der Läufe (Files on disk, englisch). Splitkick schreibt atomar, ein Absturz hinterlässt also keine halb geschriebene Datei. Splitkick hat keine Datenbank und kein Konto.
- Ab Werk läuft nichts ab. Wenn du eine Session schließt, wird sie archiviert. Bei einer neuen Installation bleiben archivierte Einträge für immer. Willst du eine Grenze, findest du sie unter Settings → General → Auto-delete archives (Archived items, englisch).
- Ein Backup, das nie löscht. Settings → General → Session backup kopiert deine Session-Daten in einen synchronisierten Ordner, zum Beispiel iCloud Drive, Syncthing oder Nextcloud. Nach dem ersten Lauf kopiert es nur neue und geänderte Dateien. Die Doku nennt rund 136 MB pro Tag bei normaler Nutzung auf einem Mac. Eine Session, die du auf deinem Mac löschst, bleibt im Backup (Session backup, englisch).
- Suche über Projekte und Geräte. ⌘K durchsucht Namen und Nachrichten in allen Projekten. Ist ein Backup eingerichtet, durchsucht der Tab Other devices die Sessions deiner anderen Rechner.
- Auch Agenten können suchen. Der eingebaute MCP-Server hat ein Werkzeug
search_sessions. Ein Agent findet so frühere Arbeit zum selben Thema, bevor er loslegt (MCP server, englisch).
Zwei ehrliche Hinweise. Erstens: Jede Agent-CLI legt ihre Daten an ihrem eigenen Ort ab, zum Beispiel in ~/.claude, und Splitkick kopiert sie nicht. Splitkick führt seine eigene Aufzeichnung. Willst du ein Gespräch von vor Monaten in der Claude Code CLI selbst fortsetzen, setz cleanupPeriodDays wie oben gezeigt. Zweitens: Splitkick speichert deinen Verlauf auf deiner Festplatte, aber die Agenten schicken deine Prompts und die Dateien, die sie lesen, trotzdem an ihre Modellanbieter. Was das Modell sieht, entscheiden der Agent und sein Anbieter.
Die längere Liste, mit Chat-Apps wie ChatGPT und Claude.ai, habe ich im Oktober aufgeschrieben: Deine KI-App ist dein zweites Gehirn. Und sie hat Alzheimer.
Mach das heute
- Setz
cleanupPeriodDaysin~/.claude/settings.json. - Schalte
sessionRetentionder Gemini CLI ab oder verlängere es, wenn du sie nutzt. - Nimm
~/.claude/projects/und deine anderen Agent-Ordner in ein verschlüsseltes Backup auf. - Probier Splitkick aus, wenn du Verlauf, Suche und Backup an einem Ort haben willst: Download-Seite.
Wenn dir das hilft: Ein Stern auf GitHub hilft anderen, das Projekt zu finden.
Andreas Zeitler baut Splitkick bei Planetfall Software in Regensburg.