Zum Inhalt springen

6. Storage-Architektur

ZED verwendet mehrere Datenbanken und Dateiformate, je nach System:

WasPfadFormat
Text Threads~/.local/share/zed/conversations/*.zed.jsonJSON, unkomprimiert
Agent Threads~/.local/share/zed/threads/threads.dbSQLite + zstd-Komprimierung
UI-State, History-Index~/.local/share/zed/db/0-stable/db.sqliteSQLite, kv_store Tabelle
Globale Settings~/.local/share/zed/db/0-global/db.sqliteSQLite
Prompts Library~/.local/share/zed/prompts/prompts-library-db.0.mdbLMDB

In db/0-stable/db.sqlite gibt es eine kv_store Tabelle. Darin speichert ZED u.a.:

  • recent-agent-threads — Liste der letzten Agent Thread UUIDs (global)
  • recent-agent-threads-{workspace_id} — workspace-spezifische Liste
  • agent_panel — letzter Panel-Zustand

Das Format der Thread-Referenzen ist [{"AcpThread": "uuid"}, ...].

ZED nutzt SQLite im WAL-Modus (Write-Ahead Logging). Solange ZED läuft, können Änderungen in der -wal Datei stehen, nicht in der Hauptdatei. Nach dem Beenden von ZED wird der WAL automatisch committed.

Claude Code CLI speichert seine Daten unabhängig von ZED — im Home-Verzeichnis:

~/.claude/projects/<projekt-slug>/
├── <uuid>.jsonl ← Session-Transcript (eine Zeile = ein JSON-Objekt)
├── <uuid>/
│ └── subagents/
│ └── agent-<id>.jsonl ← Sub-Agenten-Transcripts
└── memory/
├── MEMORY.md ← auto-geladen beim nächsten Start (max. 200 Zeilen)
├── titles.json ← Custom-Titel für Sessions
└── <uuid>.md ← Session-spezifische Notizen

Der <projekt-slug> ist der absolute Pfad zum Working Directory, mit /- kodiert:

/mnt/8100-data/prog/ai/git/edikte/fb-data
→ -mnt-8100-data-prog-ai-git-edikte-fb-data

Jede Zeile ist ein JSON-Objekt mit type: "user" | "assistant", dem message-Content (Text oder strukturierte Tool-Calls), Timestamps und Session-Metadaten. Die Transkripte sind vollständig und maschinenlesbar — kein proprietäres Binärformat.

Aus diesem Format lässt sich ein vollständiger Session-Browser bauen:

Terminal-Fenster
# Terminal-Browser (mutt-artig)
python scripts/bin/xed-tui.py
# CLI
python scripts/claude_memory.py threads # Liste aller Sessions
python scripts/claude_memory.py read #7 # Session lesen
python scripts/claude_memory.py backup fb-data # Backup

→ Referenz: XED /TUI im fb-data Repo

Terminal-Fenster
# Einmalig: Backup-Verzeichnis anlegen
rsync -av ~/.local/share/zed/threads/ ~/backup/zed-threads/
rsync -av ~/.local/share/zed/conversations/ ~/backup/zed-conversations/

→ Weiter: Die wichtigste Lektion