Wohin Claude-Code-Desktop-Sitzungen gehen, wenn du das Konto wechselst
Autorin: Anastasiia Butova, Ingenieurin für ComfyUI und Diffusionsmodelle, Belgrad · veröffentlicht 2026-04-30 · aktualisiert 2026-09-23
Übersetzung der englischen Fassung: English
Ich nutze mehrere Claude-Konten, weil es Wochenlimits gibt. Erreicht eins sein Limit, wechsle ich zum nächsten. Jeder Wechsel baut die Sitzungsliste in der Claude-Code-Desktop-App neu auf, und die Sitzungen des vorherigen Kontos verschwinden aus dem Fenster, nicht aber von der Festplatte. Im April lagen auf diesem Rechner rund 710 Sitzungen in sechs Kontoordnern, etwa 49 MB Verlauf, die App zeigte davon 69 an. Dieser Beitrag beschreibt, wo die Sitzungen physisch liegen, die vier Skripte, mit denen ich sie finde und wiederherstelle, was ich bewusst nicht automatisiert habe, und warum meine eigentliche langfristige Lösung eine Handoff-Datei in meinem eigenen Repository ist. Überarbeitet im September 2026 mit Korrekturen und mit dem, was seitdem mit diesen Sitzungen passiert ist.
Wo die Sitzungen liegen
Unter macOS legt die Desktop-App jede Sitzung in ~/Library/Application Support/Claude/claude-code-sessions/<accountId>/<orgId>/local_<sid>.json ab. Unter Windows liegt dieselbe Struktur unter %APPDATA%\Claude\claude-code-sessions\. Dokumentiert ist davon nichts. Die Desktop-Dokumentation sagte im April, jede Unterhaltung sei eine Sitzung mit eigenem Chatverlauf, Projektordner und Codeänderungen, aber kein Wort darüber, wo sie gespeichert wird.
Den Ordnernamen liefert das gebündelte JavaScript der App: In .vite/build/index.js, Zeile 771, steht const $6t="claude-code-sessions". Der Ersteller von Issue #29373 hatte dieselbe Zeile gefunden, und der Ordner existierte auch auf meinem Rechner. Die App lädt Sitzungen nur aus dem Ordner des aktiven Kontos. Alle Sitzungen der anderen Konten bleiben deshalb auf der Festplatte unversehrt und sind im Fenster unsichtbar. Ein kurzes Skript über die Ordner ergab Folgendes:
[372ac280…] sessions=4 size=2K last=2026-04-13 → a test account
[4d1f33a2…] sessions=330 size=44M last=2026-04-08 → the main archive (abandoned)
[a4ea2866…] sessions=83 size=4.5M last=2026-04-10 → archive
[a9e945b6…] sessions=83 size=252K last=2026-04-26 → recent parallel
[be2110e2…] sessions=69 size=203K last=2026-04-29 → ACTIVE RIGHT NOW
[c53acc1e…] sessions=141 size=244K last=2026-04-26 → recent parallel
Sechs Konten, nicht die vier, von denen ich überzeugt war. Ich hatte schlicht zwei alte vergessen, und das am gründlichsten vergessene davon, 4d1f33a2, enthielt das Hauptarchiv: 44 MB, 330 Sitzungen, fünf Monate Arbeit.
Korrektur, September 2026. Im Apriltext standen 715 Sitzungen und 48 MB. Die Tabelle oben ergibt zusammen 710 Sitzungen und etwa 49 MB, deshalb gelten hier diese Zahlen.
Offiziell antwortete niemand
Zu diesem Thema zählte ich mindestens zehn GitHub-Issues, sieben davon waren am 30. April aktiv. #48511, am 15. April eröffnet, lautet wörtlich „session history lost when switching accounts“. #26452, seit Februar offen, hatte 40 Kommentare und keinen einzigen von einem Konto, das als Mitglied, Eigentümer oder Mitarbeiter des Repositorys markiert war. Ich habe jeden Kommentar von Hand geprüft: vierzig Beschwerden, die ins Leere liefen.
Update, September 2026. #48511 wurde am 24. Mai nach einer Phase ohne Aktivität als „not planned“ geschlossen. Auch nach dem Schließen wurde weiter kommentiert, und zwischen Juni und September wurden im Thread drei Community-Skripte zum Kontowechsel oder zur Wiederherstellung von Sitzungen verlinkt. #26452 ist weiterhin offen, inzwischen mit 53 Kommentaren, und immer noch ohne einen einzigen von einem Mitglied des Repositorys.
Vier Skripte, um Sitzungen zu finden und wiederherzustellen
Das Werkzeug besteht aus vier plattformübergreifenden Python-Skripten in meinem öffentlichen Repository claude-code-config, unter skills/operational/desktop-sessions-discovery/:
sessions_registry.py, der zentrale Einstiegspunkt. Es liest jede Sitzung aus jedem Konto ein und baut daraus ein in sich geschlossenes HTML-Dashboard mit Suche und Sortierung, das es im Browser öffnet. Jede Karte zeigt Titel, Datum, Anzahl der Turns, Projekt, Größe und eine auswählbare Sitzungs-ID. Das aktive Konto ist hervorgehoben, und bereits wiederhergestellte Sitzungen sind anhand eines Migrationsprotokolls,~/.claude/desktop-migrations.jsonl, markiert, mit einem Filter zum Ausblenden. Es liest sowohl das aktuelleclaude-code-sessions/als auch das älterelocal-agent-mode-sessions/, das im Februar 2026 umbenannt wurde.sessions_inventory.py, ein Textbericht, nach Konto gruppiert, mit einer Übersicht über Projekte, die in mehr als einem Konto vorkommen.sessions_find.py, Teilstringsuche über Titel und Arbeitsverzeichnisse, mit Filtern nach Konto und Zeitfenster.sessions_restore.py, kopiert eine Sitzung in das aktive Konto, prüft die Kopie Byte für Byte, schreibt einen Protokolleintrag und löscht nie das Original. Nach einem Neustart der Desktop-App ist die Sitzung im Fenster sichtbar.
In der Praxis sage ich zu Claude „show me all sessions on this machine for migration“, der Skill erkennt die Formulierung, und das Dashboard öffnet sich. Ich scrolle zu einer 392-Schritte-Sitzung aus dem aufgegebenen Archiv, kopiere ihre ID, sage Claude „restore these three“, starte die App neu, und die Sitzungen sind da. Auf dem Mac gibt es einen Bonus: mdfind -onlyin ~/Library/Application\ Support/Claude/ "colour checker" durchsucht den Text in den Sitzungsdateien über Spotlight. Unter Windows gibt es kein Gegenstück, und sessions_find.py erledigt dieselbe Aufgabe, indem es die Dateien in etwa einer halben Sekunde durchläuft.
Update, September 2026. Im Aprilteil stand, jede Karte habe einen Wiederherstellen-Button. Den hatte ich am Tag vor der Veröffentlichung in Version 3.6.4 entfernt, weil er nur einen Befehl in die Zwischenablage kopierte, dabei aber mehr zu tun schien. Jede Karte hat jetzt eine Sitzungs-ID, die man dreimal anklickt und kopiert. Mit derselben Version wurde auch die Suche korrigiert: Eine kurze Suchanfrage wie „26“ traf früher die Mitte fremder, nicht zugehöriger IDs, jetzt trifft nur noch der Anfang einer ID.
Zur Installation würde ich nichts von Hand kopieren. Öffne Claude Code in einem beliebigen Ordner und gib ihm das Repository:
Take https://github.com/AnastasiyaW/claude-code-config, find the
desktop-sessions-discovery skill in skills/operational/, install it into
~/.claude/skills/, then run sessions_registry.py and show me the dashboard.
Claude klont das Repository, liest SKILL.md, um zu lernen, wie der Skill verwendet wird, kopiert ihn und führt ihn aus. So funktionieren Skills normalerweise: Du gibst dem Agenten ein Werkzeug, und er lernt es so, wie ein Mensch eine README liest.
Was ich bewusst nicht getan habe
- Kein Massenzusammenführen aller 710 Sitzungen in das aktive Konto. Eine Seitenleiste mit 700 Einträgen ist nicht lesbar, zumal darunter rund fünfzig leere geplante Läufe sind, etwa ein Morgen-Digest. Eine Massenkopie wäre außerdem genau das, was eine strengere Gültigkeitsprüfung ablehnen würde. Eine Sitzung für eine Aufgabe funktioniert besser.
- Keine automatische Migration beim Start. Ein Werkzeug, das auf das heutige Speicherformat festgenagelt ist, wird zum Kürbis, sobald sich das Format ändert. Suche und selektive Wiederherstellung sind sicherer als Automatisierung.
- Keine Symlinks zwischen Kontoordnern. Meine globalen Regeln verbieten sie: Sie brechen bei der ersten Pfadänderung, erzeugen unsichtbare Abhängigkeiten und bringen sechs Monate später seltsame Fehler hervor. Nur kopieren.
- Originale werden nie gelöscht. Nach einer Wiederherstellung bleibt die Quelldatei als Sicherung in ihrem Kontoordner, falls eine spätere Prüfung die Kopie ablehnt oder die Wiederherstellung wiederholt werden muss.
Das Werkzeug hat ein Verfallsdatum
Der Speicher hat seine Form bereits einmal geändert: local-agent-mode-sessions/ wurde im Februar zu claude-code-sessions/ (#29373). Eine zweite Änderung zeichnete sich ab. In einem Bericht eines Nutzers unter macOS (#54428, 28. April) schrieb Claude Desktop 1.4758.0 ein Virtual-Machine-Bundle, ~/Library/Application Support/Claude/vm_bundles/claudevm.bundle/, mit rootfs.img (10 GB), sessiondata.img und efivars.fd, während dasselbe Log zeigt, dass Sitzungen weiterhin aus claude-code-sessions geladen werden. Ein Plattenabbild ist kein JSON. Wenn Sitzungen dorthin wandern, funktioniert das Kopieren von local_*.json-Dateien nicht mehr.
Zwei weitere Risse waren im April schon sichtbar. Installationen aus dem Microsoft Store sind separat kaputt (#48362): Innerhalb der MSIX-Sandbox schlägt das atomare Umbenennen von local_<sid>.json.tmp in local_<sid>.json mit EXDEV fehl, weil das virtuelle Dateisystem Quelle und Ziel als verschiedene Geräte sieht, sodass Sitzungen gar nicht gespeichert werden. Und in #18645 berichtete ein CLI-Nutzer, dass zwischen Rechnern kopierte Sitzungen, die auf Version 2.1.5 fortgesetzt wurden, unter 2.1.9 nicht mehr erkannt wurden; er vermutete, dass eine Prüfung jetzt Sitzungen blockiert, die nicht auf dem aktuellen Rechner erstellt wurden. Das betrifft die CLI, nicht die Desktop-App, es ist also ein Warnzeichen und kein Beweis. Die Migration zwischen Konten auf einem Rechner funktionierte weiterhin.
Update, September 2026. Das MSIX-Issue wurde im Juni als „not planned“ geschlossen. Sein Titel empfiehlt den Wechsel zum normalen Win32-Installer, doch Kommentare vom 24. April und 18. Mai sagen, dieser Weg sei weg: Der Download-Button liefert jetzt ein MSIX-Paket hinter dem, was wie ein Win32-Installer aussieht. Auch #54428 wurde im Juni als „not planned“ geschlossen. Von den acht Issues, die ich im April zitiert habe, wurde nur eines als erledigt geschlossen: #53717, Sitzungen, deren Inhalt nach einem automatischen Update unter Windows verschwunden war. Es wurde im August ohne Kommentar geschlossen, und eine Woche später bat ein Nutzer darum, es wieder zu öffnen.
Warum ein Handoff meine eigentliche Strategie ist (and use 'Handoff' in every later 'Übergabe' too)
Das Migrationswerkzeug löst das heutige Problem, und ich habe nicht erwartet, dass es ein oder zwei Releases übersteht. Anthropic kann Sitzungen in SQLite, ein verschlüsseltes Plattenabbild oder die Cloud verschieben; jedes Mal brechen selbstgebaute Wiederherstellungswerkzeuge. Deshalb ist die langfristige Strategie eine andere: nach jeder wichtigen Sitzung eine Übergabe.
Memory und CLAUDE.md enthalten die Fakten und Regeln des Projekts. Sie beantworten nicht die Frage „Was habe ich in der letzten Sitzung gemacht, welche Hypothesen habe ich geprüft, auf welche Sackgassen bin ich gestoßen“. Am Ende jeder langen Sitzung schreibt Claude eine Datei .claude/handoffs/YYYY-MM-DD_HH-MM_<session-id>.md in das Projekt, mit sechs Feldern:
- das Ziel der Sitzung, in einem Satz;
- was getan wurde, konkret: Dateien, Tests, Zahlen;
- was nicht funktioniert hat, mit Gründen, das ist der wertvollste Teil;
- der aktuelle Stand: funktioniert, kaputt, blockiert;
- ein nächster Schritt;
- eine Checkliste nur zum Lesen für die nächste Sitzung.
Eine Datei pro Sitzung, nie überschrieben, daneben eine INDEX.md, in die nur angehängt wird. Eine neue Sitzung liest etwa 1.500 Token Übergabe statt 50.000 Token Verlauf und wiederholt keine Sackgassen der vorherigen Sitzung.
Die beiden Werkzeuge lösen unterschiedliche Probleme. Die Wiederherstellung greift in fremden Speicher ein und hängt davon ab. Eine Übergabe schreibt den Stand in meinen eigenen Bereich, in dem Moment, in dem ich den Kontext noch im Kopf habe. Die alte Sitzung kann vollständig verloren gehen, und die neue kennt trotzdem das Ziel, die Arbeit, die Fehlschläge und den nächsten Schritt.
Die Koordination dafür, wenn mehrere Sitzungen gleichzeitig arbeiten, behandeln der Beitrag über viele Claudes in einem Repository und mclaude.
Das Speicherlayout entscheidet noch über etwas anderes. Die Desktop-App teilt Sitzungen nach <accountId>/<orgId>/ auf, daher ist eine Übergabe neben einer Desktop-Sitzung für eine Sitzung in einem anderen Konto unsichtbar. Die CLI hält alles unabhängig vom Konto in ~/.claude/projects/<slug>/: Wechselst du das Konto, ändert sich nur .credentials.json. Das ist der stille Grund, warum meine Arbeit immer mehr zur CLI wandert.
Update, September 2026. Das Übergabeprotokoll ist seit April gewachsen. Übergaben landen jetzt in einem Unterordner pro Projekt,
.claude/handoffs/<project-slug>/, damit ein stark genutztes Projekt das nicht verdrängt, zu dem man zurückgekehrt ist. Ein Hook weist eine Übergabe ohne Abschlussprüfung zurück: Ist die Anfrage vollständig, was wurde verifiziert, welche verwandten Aufgaben wurden geprüft, wo werden offene Punkte festgehalten und warum endet die Arbeit hier. Und eine neue Sitzung beginnt nicht mehr mit der Frage „fortsetzen oder neu starten“: Zuerst zählt die aktuelle Anfrage des Nutzers, eine passende Übergabe wird im Hintergrund gelesen. Die aktuelle Regel istrules/session-handoff.md.
Was mit diesen Sitzungen passiert ist
Im September 2026 ergänzt, am 23. September auf demselben Rechner gemessen.
| April 2026 | September 2026 | |
|---|---|---|
Kontoordner in claude-code-sessions |
6 | 4 |
| Sitzungsdateien | 710 | 522 |
| Größe | etwa 49 MB | etwa 10 MB |
| Älteste Sitzung im aktiven Ordner | nicht erfasst | 6. Juni 2026 |
Bis zum 6. Juni war der gesamte Sitzungsspeicher in eine Wiederherstellungssicherung auf einem anderen Laufwerk kopiert worden: 1.003 Dateien, 49,9 MB, dieselben sechs Kontoordner. Im aktiven Ordner ist heute nichts älter als das: Keine der 522 Sitzungen darin wurde vor dem 6. Juni angelegt. Die App kann also keine einzige Sitzung aus der Aprilliste zeigen. Ihre Dateien liegen in der Sicherung, nicht in einem Ordner, den die App liest.
Erhalten geblieben ist, was in meinen eigenen Projektordnern lag. Die Übergabe vom 12. Mai in meinem Kachel-Memory-Projekt ist noch in diesem Projekt und öffnet sich heute, mit Ziel, Fehlschlägen und nächstem Schritt (das Projekt selbst ist hier). Das ist das Argument dieses Beitrags, zufällig getestet. Eine ehrliche Fußnote: Diese Übergabe wurde nie committet, nur ihr Index. Sie blieb erhalten, weil der Ordner kopiert wurde. Nach meiner eigenen Regel hätte sie in Git liegen müssen.
Quellen
- #48511: Verlauf verloren beim Kontowechsel; im Mai 2026 als not planned geschlossen.
- #26452: Sitzungen nach Abmeldung oder Neustart verschwunden; offen, bis September 2026 keine Antwort von Mitgliedern des Repositorys.
- #48362: MSIX EXDEV.
- #18645: Sitzungsexport und -import zwischen Rechnern; die Hypothese zu 2.1.9.
- #54428: VM-Bundle unter macOS 1.4758.0.
- #29373: die Umbenennung in
claude-code-sessions. - #53717: Inhalte nach einem Update unter Windows verschwunden.
- #54723: Sitzungen verschwinden mitten im Gespräch unter macOS; der Melder hat es später als nutzerseitig geschlossen, eine Einstellung zur automatischen Archivierung kombiniert mit einer auf aktive Sitzungen gefilterten Seitenleiste.
- Claude-Code-Desktop-Dokumentation (ohne Speicherpfade) und die Dokumentation des
.claude-Verzeichnisses (die CLI-Seite ist dokumentiert). - claude-sync: Synchronisation der CLI über mehrere Rechner, über R2.
- Das Werkzeug: desktop-sessions-discovery. Hintergrund zu Übergaben:
principles/18-multi-session-coordination.mdundalternatives/session-handoff.mdim selben Repository.
Das russische Original erschien auf Habr.