CommunitySchreiben & Editierengithub.com

janole/session-bandit

Offline CLI und Agent-Skill zum Durchsuchen, Stöbern und Zusammenfassen lokaler Claude Code- und Codex-Sitzungstranskripte.

Was ist session-bandit?

Session Bandit ist ein CLI-Tool und Agent-Skill, das Sitzungstranskripte von Coding-Agenten wie Claude Code, Codex und BotBandit indexiert – vollständig offline, ohne API-Aufrufe, Authentifizierung oder Netzwerkzugriff. Es durchsucht standardmäßig die Verzeichnisse `~/.claude/projects/`, `~/.codex/sessions/` und `~/.botbandit/sessions/` und arbeitet mit JSONL-Dateien. Der Skill ermöglicht die Auflistung von Sitzungen, die Suche über mehrere Sitzungen hinweg, die Anzeige von Transkripten sowie die Extraktion strukturierter Zusammenfassungen (Digests) für Übergaben und Gedächtnisnotizen. Nützlich ist Session Bandit vor allem für Entwickler und Agenten, die aus vorherigen Sitzungen Kontext wiederherstellen, Handoff-Notizen schreiben oder redigierte Sitzungen veröffentlichen möchten. Es unterstützt verschiedene Ausgabemodi (JSON, Pretty-Print, Markdown) und bietet Gesundheitschecks, Redaktionsprüfungen und eine GitHub Pages-Vorlage für die Veröffentlichung.

Funktioniert mit✓Claude Code✓Codex CLI~Cursor
npx skills add janole/session-bandit

Installed? Explore more Schreiben & Editieren skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Voraussetzungen

Session Bandit ist ein CLI-Tool, das auf dem System installiert sein muss. Prüfe, ob es verfügbar ist:

command -v session-bandit

Wenn nicht installiert, installiere es global:

npm install -g session-bandit

Wenn das Paket noch nicht auf npm ist, installiere aus dem Quellcode:

git clone https://github.com/janole/session-bandit.git
cd session-bandit
pnpm install
pnpm -r build
npm install -g packages/cli

Erfordert Node.js 22+ und pnpm 10+ (nur für die Installation aus dem Quellcode; die npm-Installation benötigt nur Node.js).

Überprüfe die Installation:

session-bandit --version

Was Session Bandit macht

Session Bandit indexiert die Sitzungstranskripte, die Coding-Agenten (Claude Code, Codex, BotBandit) als JSONL auf die Festplatte schreiben. Es funktioniert vollständig offline – keine API-Aufrufe, keine Authentifizierung, kein Netzwerk. Es durchsucht standardmäßig ~/.claude/projects/, ~/.codex/sessions/ und ~/.botbandit/sessions/.

Ausgabemodi

Bevorzuge die standardmäßige maschinenlesbare Ausgabe, wenn Session Bandit als Agent-Tool verwendet wird:

  • list und search geben standardmäßig JSON-Zeilen aus.
  • extract, redact-check und doctor geben standardmäßig JSON aus.
  • show gibt ein menschenlesbares Transkript aus.

Verwende --pretty nur, wenn eine menschenlesbare Terminalansicht zum Durchstöbern oder für Berichte an den Benutzer nützlich ist. Füge --pretty nicht zu Befehlen hinzu, deren Ausgabe du parsen oder als strukturierte Eingabe für eine Übergabe oder eine Gedächtnisnotiz verwenden möchtest.

Befehle

Sitzungen auflisten

# Alle Sitzungen auflisten, neueste zuerst (JSON-Zeilen)
session-bandit list

# Menschenlesbare Tabelle mit Wichtigkeitsstufe
session-bandit list --pretty

# Nach Agent oder Projekt filtern
session-bandit list --agent codex --project botbandit

# Nach Substanz/Wichtigkeit sortieren (schwere Sitzungen zuerst)
session-bandit list --sort importance

# Triviale Sitzungen auslassen
session-bandit list --min-importance moderate

# Auf einen Zeitraum begrenzen: relativ (7d, 24h, 2w, 3m) oder absolutes Datum
session-bandit list --since 7d
session-bandit list --since 2026-06-01 --until 2026-06-15

Ein Sitzungstranskript anzeigen

# Vollständige ID oder Präfix-Übereinstimmung
session-bandit show 342647fa-5bf
session-bandit show 342647fa --agent claude

Über mehrere Sitzungen suchen

session-bandit search "tool approval"
session-bandit search "apply_patch" --agent codex
session-bandit search "adapter" --since 3d --pretty

Eine Sitzungszusammenfassung extrahieren (die Schlüsselfunktion für Übergaben/Gedächtnisnotizen)

# Strukturierte Zusammenfassung (JSON) — Substanzwert, Dateien, Befehle, Fehler, wichtige Wendepunkte
session-bandit extract 342647fa-5bf

# Die Zusammenfassung in einen gebrauchsfertigen Synthese-Prompt verpacken
session-bandit extract 342647fa-5bf --prompt handoff
session-bandit extract 342647fa-5bf --prompt memory

# Das vollständige Transkript in die Zusammenfassung aufnehmen
session-bandit extract 342647fa-5bf --full --prompt handoff

Die Parse-Gesundheit überprüfen

session-bandit doctor
session-bandit doctor --agent codex
session-bandit doctor --agent botbandit

Die Redaktion vor der Veröffentlichung überprüfen

# JSON-Bericht standardmäßig
session-bandit redact-check 342647fa-5bf

# Menschenlesbarer Bericht zur Überprüfung mit dem Benutzer
session-bandit redact-check 342647fa-5bf --pretty

# Konservativere Vorschau
session-bandit redact-check 342647fa-5bf --redact strict

Markdown zur Überprüfung/Veröffentlichung exportieren

session-bandit export-md 342647fa-5bf --out ./session.md
session-bandit export-md 342647fa-5bf --out ./session.md --report-out ./redaction-report.json
session-bandit export-md 342647fa-5bf --out ./session.md --title "Apple Watch interface"

export-md verwendet standardmäßig --redact cautious. Verwende --redact none nicht für ein öffentliches Artefakt, es sei denn, der Benutzer fordert dies ausdrücklich an und akzeptiert das Risiko; die CLI erfordert --yes für diesen Modus.

Veröffentlichen einer Sitzung

Wenn du gebeten wirst, eine Coding-Sitzung zu veröffentlichen, halte Session Bandit deterministisch und offline. Verwende die CLI, um das redigierte Markdown-Artefakt und den Redaktionsbericht zu erstellen; verwende dein Agentenurteil nur für die Sitzungsauswahl, die Titel-/Slug-Wahl, optionale Textüberarbeitung und die Risikomeldung an den Benutzer.

  1. Finde die Quellsitzung. Wenn der Benutzer eine Sitzungs-ID angibt, verwende sie direkt. Andernfalls durchsuche oder liste mögliche Sitzungen auf:

    session-bandit list --sort importance
    session-bandit search "das Thema"
    

    Verwende --agent oder --project, wenn der Benutzer das Ziel eingrenzt.

  2. Wähle Titel, Slug und Ausgabepfade. Für ein GitHub Pages-ähnliches Repository bevorzuge einen Ordner pro Sitzung:

    sessions/<slug>/index.md
    sessions/<slug>/redaction-report.json
    

    Halte Slugs kurz, kleingeschrieben und stabil. Wenn der Titel unsicher ist, schlage ihn dem Benutzer vor dem Export vor.

  3. Vorschau der Redaktion vor dem Erstellen des Artefakts:

    session-bandit redact-check <sessionId> --pretty
    

    Melde die Anzahl und etwaige nennenswerte Risiken. Verwende --redact strict, wenn die Sitzung private Kundendaten, Anmeldeinformationen, proprietäre Ausgaben oder ungewöhnlich sensible lokale Kontexte zu enthalten scheint.

  4. Exportiere Markdown und den Bericht:

    session-bandit export-md <sessionId> \
      --out sessions/<slug>/index.md \
      --report-out sessions/<slug>/redaction-report.json \
      --title "Menschenlesbarer Titel"
    

    Verwende --redact none nicht für die öffentliche Veröffentlichung, es sei denn, der Benutzer fordert dies ausdrücklich an und akzeptiert das Risiko.

  5. Überprüfe vor der Veröffentlichung. Untersuche das Markdown und den Redaktionsbericht. Stelle sicher, dass Zusammenfassungsabschnitte, verwandte Sitzungen, Befehle, Toolausgaben und lokale Pfade angemessen sind. Die automatische Redaktion ist eine Bemühung nach bestem Wissen und Gewissen, kein Sicherheitsnachweis.

  6. Optionales Texten des Markdowns. Du kannst eine kurze Einleitung, Abschnittsüberschriften oder eine Schlussbemerkung außerhalb der CLI-Ausgabe hinzufügen oder bearbeiten. Erfinde keine Tatsachen; halte das Transkript, die Zusammenfassung, die Herkunft und den Redaktionsbericht intakt.

  7. Frage, bevor du es öffentlich machst. Vor git add, git commit, git push oder einer Bereitstellungsaktion fasse das Redaktionsrisiko zusammen und bitte um ausdrückliche Zustimmung des Benutzers, es sei denn, der Benutzer hat diese Zustimmung bereits in der aktuellen Runde gegeben.

GitHub Pages-Vorlage

Dieser Skill enthält eine standardmäßige Veröffentlichungsvorlage unter templates/github-pages-default/ neben dieser SKILL.md. Verwende sie, wenn der Benutzer ein GitHub Pages-Repository, eine polierte statische Website oder eine standardmäßige öffentliche Präsentation für exportierte Sitzungen wünscht.

Verhalten der Vorlage:

  • Es ist eine Jekyll/GitHub Pages-Website mit benutzerdefinierten Layouts und CSS.
  • Sie erwartet generierte Sitzungen unter sessions/<slug>/index.md.
  • Sie erwartet Redaktionsberichte neben den Sitzungen als sessions/<slug>/redaction-report.json.
  • Sie verwendet _config.yml-Standardeinstellungen, sodass exportiertes Session Bandit-Markdown automatisch das Sitzungslayout erhält.
  • Sie enthält eine lokale sessions/.design/session-page.html-Testvorlage für Layoutprüfungen ohne Jekyll oder einen Pages-Bereitstellung.
  • Sie ist statisch und in sich geschlossen; füge keine externen Assets, Tracker, Schriftarten oder Remote-Skripte hinzu, es sei denn, der Benutzer fordert dies ausdrücklich an.

Beim Initialisieren eines leeren Veröffentlichungs-Repositorys:

cp -R <skill-verzeichnis>/templates/github-pages-default/. <ziel-repo>/

Wenn das Repository bereits existiert, überschreibe _config.yml, _layouts/, assets/session.css, index.md oder README.md nicht ohne Nachfrage. Füge nur sessions/<slug>/index.md, sessions/<slug>/redaction-report.json und ggf. einen Indexeintrag hinzu oder aktualisiere sie, wenn der Benutzer einen manuellen Index wünscht.

Bei visuellen Vorlagenänderungen überprüfe vor der Veröffentlichung bevorzugt templates/github-pages-default/.design/session-page.html lokal. Es wurde absichtlich aus einfachem HTML erstellt und benötigt daher kein Jekyll.

Schreiben einer Übergabenotiz

Wenn du gebeten wirst, eine Übergabenotiz aus einer früheren Sitzung zu schreiben:

  1. Finde die Sitzung. Wenn der Benutzer eine Sitzungs-ID angibt, verwende sie direkt. Andernfalls liste die letzten Sitzungen auf und wähle die relevante aus:

    session-bandit list --sort importance
    

    Oder suche nach einem Thema:

    session-bandit search "das Thema"
    

    Füge --pretty nur hinzu, wenn du eine Tabelle/Auszüge für die manuelle Durchsicht benötigst.

  2. Generiere die Zusammenfassung mit einem Übergabe-Prompt:

    session-bandit extract <sessionId> --prompt handoff
    

    Dies gibt eine strukturierte Zusammenfassung (Substanzwert, geschriebene Dateien, Fehler, Zusammenfassungen/Rückblicke, Ziel, Endzustand) aus, die in einen Synthese-Prompt verpackt ist, der dir sagt, was du schreiben sollst.

  3. Schreibe die Übergabe. Der Prompt fordert dich auf, Folgendes zu behandeln: das Ziel, was getan wurde, den aktuellen Zustand und was noch zu tun ist. Verwende die strukturierten Daten der Zusammenfassung (geschriebene Dateien, Fehler, wichtige Wendepunkte) als faktische Grundlage. Halte es prägnant – ein zurückkehrender Agent braucht den Zustand, nicht die vollständige Geschichte.

  4. Speichere die Übergabe dort, wo der Benutzer sie haben möchte (Dokumentenspeicher, Markdown-Datei usw.).

Schreiben einer Gedächtnisnotiz

Wenn du gebeten wirst, eine Gedächtnisnotiz aus einer vergangenen Sitzung zu erstellen:

  1. Finde und extrahiere die Sitzung:

    session-bandit extract <sessionId> --prompt memory
    
  2. Schreibe die Gedächtnisnotiz. Der Prompt fordert 2–4 Sätze, die Folgendes abdecken: worum es in der Sitzung ging, das wichtigste Ergebnis und Dateien/Entscheidungen, die es wert sind, erinnert zu werden. Beende mit einer empfohlenen Wichtigkeitsstufe (trivial / leicht / moderat / substanziell / schwer).

  3. Speichere die Gedächtnisnotiz dort, wo der Benutzer sie haben möchte.

Tipps

  • Die Vorlagen --prompt handoff und --prompt memory sind erste Entwürfe. Passe das Ausgabeformat gerne an die Bedürfnisse des Benutzers an – die Zusammenfassungsdaten sind der wertvolle Teil, nicht der Vorlagentext.
  • Verwende --full, wenn du das vollständige Transkript für den Kontext benötigst (z. B. komplexe mehrstufige Arbeit). Ohne --full ist die Zusammenfassung kompakt und kann Details auslassen.
  • Claude-Rückblicke, Codex-Verdichtungen und BotBandit-Gedächtnis-/Verdichtungsereignisse werden als summary-Nachrichten angezeigt und in Extraktionen einbezogen. Behandle sie als nützlichen Synthesekontext, stütze Übergaben und Gedächtnisnotizen aber dennoch auf die Dateien, Fehler, Tests und letzten Wendepunkte der Zusammenfassung.
  • Führe vor der Hilfe bei der Veröffentlichung oder dem Export einer Sitzung session-bandit redact-check <sessionId> --pretty aus und melde das verbleibende Risiko. Die automatische Redaktion ist eine Bemühung nach bestem Wissen und Gewissen, kein Sicherheitsnachweis.
  • Für einen Markdown-Export bevorzuge session-bandit export-md <sessionId> --out <pfad> --report-out <berichtspfad> und überprüfe dann den Bericht, bevor du Commit/Veröffentlichung vorschlägst.
  • Markdown ist das kanonische Veröffentlichungsartefakt. Erstelle kein einfaches HTML-Transkript, es sei denn, der Benutzer fordert ausdrücklich HTML; qualitativ hochwertiges HTML sollte aus dem überprüften Markdown oder dem redigierten Paket generiert werden.
  • Bevorzuge die gebündelte Vorlage templates/github-pages-default/ für neue GitHub Pages-Veröffentlichungs-Repositorys. Sie ist die standardmäßige öffentliche Präsentation, es sei denn, der Benutzer wünscht einen anderen Stil.
  • Der Substanzwert misst die Aktivität (Toolaufrufe, Dateischreibvorgänge, Testläufe), nicht die Bedeutung. Eine kurze Sitzung kann eine kritische Entscheidung enthalten. Lies die wichtigen Wendepunkte, nicht nur den Wert.
  • Sitzungs-IDs können als Präfixe angegeben werden (z. B. 342647fa anstelle der vollständigen UUID).
  • Führe session-bandit doctor aus, wenn etwas seltsam erscheint – es überprüft, ob die Parse-Annahmen mit deinen tatsächlichen Sitzungsdateien übereinstimmen, einschließlich Formatabweichungen, Injektionsmarkierungen, nicht erkannten Typen und stillen Überspringungen. Verwende --agent claude, --agent codex oder --agent botbandit, um die Prüfung einzugrenzen.

Verwandte Skills