sessionhub ist ein Tool, das über mehrere Maschinen verteilte Claude-Code- und Codex-Sitzungen an einem Ort sammelt und durchsuchbar macht.
Ich wechsle zwischen Desktop und Laptop und entwickle gelegentlich auch auf Servern. Dabei habe ich oft gedacht: „Das habe ich doch schon mal gemacht“ — und dann war unklar, auf welcher Maschine diese Arbeit lag. Claude-Code- und Codex-Sitzungen sammeln sich zwar als JSONL in ~/.claude/projects bzw. ~/.codex/sessions auf jeder Maschine an, aber auch wenn alle Dateien vorhanden sind, lassen sie sich nicht durchsuchen. Am Ende musste ich mich per SSH auf mehrere Maschinen einloggen und alles einzeln durchsuchen.
Zum Finden suche ich per Keyword. Mit sessionhub search "connection pool" suche ich danach, und mit sessionhub raw <id> sehe ich mir die damalige Unterhaltung an.
Am bequemsten nutze ich derzeit die Agent-Integration. Nach der Installation werden Skills für Claude Code und Codex mitinstalliert. Wenn man während der Arbeit an den Punkt kommt, an dem man sich fragt „Wie habe ich das damals noch mal gelöst?“, findet der Agent die passende Sitzung und holt sie als Kontext dazu.
# Claude Code
/sessionhub 저번에 커넥션 풀 터지던거 어떻게 고쳤더라
# Codex
$sessionhub 저번에 커넥션 풀 터지던거 어떻게 고쳤더라
Die Funktionsweise ist simpel. Man legt einen Hub fest, dann werden die Sitzungen der übrigen Maschinen alle 15 Minuten per SSH eingesammelt. Sucht man auf einer Maschine, die nicht der Hub ist, übernimmt der Hub die Suche. Schwere Logs müssen also nicht überallhin kopiert werden.
Auch beim Speicherbedarf ist es leichtgewichtig. Als ich meine Logs analysiert habe, stellte sich heraus, dass 99,7 % aus maschinenbezogenen Daten wie Tool-Aufrufen, Streaming-Frames und Token-Berechnungen bestehen, während die Unterhaltungen, die ich später tatsächlich wieder nachschlage, nur etwa 0,3 % ausmachen. Deshalb werden nur die Unterhaltungen extrahiert, komprimiert und in den Index aufgenommen. In meinem Fall schrumpften die ursprünglichen ~10 GB auf einige hundert MB. Die vollständigen Originaldaten bleiben auf der jeweiligen Maschine unverändert erhalten und können bei Bedarf dort geöffnet werden.
Nach der Installation führt setup auch durch die Hub-Konfiguration und die Installation der Skills.
uv tool install git+https://github.com/esc5221/sessionhub
sessionhub setup
In letzter Zeit gibt es viele Versuche, Agenten mit Langzeitspeicher auszustatten. Dabei werden vergangene Unterhaltungen zusammengefasst oder relevante Teile extrahiert, in einem separaten Speicher abgelegt und in späteren Sitzungen wieder referenziert. Ich mag diesen Ansatz grundsätzlich, aber zwei Punkte haben mich immer gestört: In dem Moment, in dem man zusammenfasst, geht ein Teil des ursprünglichen Kontexts verloren, und angesammelte Erinnerungen werden mit der Zeit stale und müssen laufend gepflegt werden, was ich umständlich finde.
Deshalb erstelle ich keine separaten Zusammenfassungen, sondern lasse die Originale unverändert liegen und hole die damalige Unterhaltung nur dann wieder hervor, wenn sie gebraucht wird. Der Ansatz ist eher compute-centric als memory-centric.
Mich würde interessieren, ob andere dieses Problem — wie man Agenten früheren Kontext ohne Veralten und ohne Informationsverlust gibt — auf andere Weise lösen oder bessere Methoden kennen. Ich freue mich auch über viele Meinungen in den Kommentaren.
Noch keine Kommentare.