ctx-handoff: Claude Code lange Sitzungen im Griff
Hält den Prompt-Cache warm, macht aus deinen Anweisungen Projektnotizen und kann einen vollen Kontext übergeben.
Berechtigungen
- Liest DateienKann Dateien lesen und Verzeichnisse auf deinem Rechner auflisten ($.fs.read / list / stat / exists).
- Schreibt DateienKann Dateien auf deinem Rechner anlegen oder überschreiben ($.fs.write).
- Ruft das Modell auf (nutzt dein Kontingent)Kann eigene Anfragen an Claude senden, die auf die Nutzung deines Plans angerechnet werden ($.model.* / $.agent.spawn).
- Fängt Tool-Aufrufe abSieht jeden Tool-Aufruf von Claude (tool.call / tool.check) und könnte ihn blockieren oder verändern.
- Liest deine PromptsKann sehen, was du eingibst, und den Gesprächsverlauf lesen (prompt.* / session.append / session.messages).
- Verändert die OberflächeZeichnet in die Oberfläche von Claude Code: Leisten, Bereiche, Statustext, Toasts (ui.render / $.ui.*).
- Fügt Befehle/Tools hinzuRegistriert neue Slash-Befehle oder Tools, die du oder Claude aufrufen können ($.command.register / $.tool.register).
- Speichert DatenBehält Daten zwischen Sitzungen im privaten Speicher des Plugins ($.store.*).
- getestet mit
- v2.1.303
- zuletzt getestet
- erfordert
- Claude Code ≥ 2.1.287
- Oberflächen
- über dem Prompt, Statuszeile, Toast
- Quelle
- CabLate (cablate) (MIT)
In Claude Code installieren:
/plugin install ctx-handoff --marketplace cablate/ctx-handoff-modWas macht diese Mod?
ctx-handoff ist eine Community-Mod von CabLate (cablate) für Claude Code lange Sitzungen, also Gespräche, die über Stunden laufen. Sie bündelt mehrere Aufgaben, die dabei anfallen: Während du weg bist, sendet sie eine winzige Anfrage, damit der Prompt-Cache nicht verfällt. Wiederholte Anweisungen macht sie zu Notizen pro Projekt, die in neue Gespräche geladen werden. Und sie gibt Claude einen Hinweis, wenn es ein fehlschlagendes Tool erneut versucht oder „fertig“ sagt, ohne etwas geprüft zu haben.
Zwei größere Funktionen laufen weniger automatisch. Eine optionale Übergabe schreibt eine Zusammenfassung der Arbeit, leert das Gespräch und macht in einem frischen weiter, sobald der Kontext eine Schwelle erreicht; sie ist standardmäßig aus. Guards sind Prüfungen für Tool-Aufrufe, die die Mod aus Regeln entwirft, die du immer wieder nennst, und sie gelten erst nach deiner Freigabe. Ein Panel über dem Prompt (/handoff panel) listet Guards, Erinnerungen, Regeln, das letzte Notizen-Update und alle Einstellungen.
Das README des Autors zielt auf Claude-Abonnements und lange Sitzungen mit großem Kontext. Bei API-Schlüssel, Bedrock oder Vertex hält der Cache nur fünf Minuten, deshalb empfiehlt der Autor /handoff refresh off.
Demo
Die Aufnahme startet Claude Code mit der geladenen Mod im kleinen Demo-Projekt. Die Fußzeile zeigt sofort ctx-handoff: 30 more messages until notes update, den Countdown bis zum nächsten Notizen-Update im Hintergrund. Danach läuft /handoff guard, das Guards: none und die Bedingungen ausgibt, unter denen Guards entworfen werden, und /handoff refresh, das Currently on. Usage: /handoff refresh on|off ausgibt. Der Clip löst keine Modellanfrage aus und öffnet das Panel nicht, weil es den vollständigen Pfad der Notizdatei zeigt.
Installation
Nutze eine der Methoden im Installationsblock; sie installieren direkt aus dem eigenen Marketplace des Autors. Starte eine neue Sitzung und führe /handoff aus. Der Countdown in der Fußzeile erscheint, sobald die Sitzung läuft.
$ install ctx-handoff
Erfordert Claude Code ≥ 2.1.287
Wird aus dem Marketplace des Autors installiert: cablate/ctx-handoff-mod
1.Eine Zeile, direkt in Claude Code
/plugin install ctx-handoff --marketplace cablate/ctx-handoff-modIn eine laufende Sitzung einfügen (v2.1.275+). Claude Code fragt zuerst, ob der Marketplace hinzugefügt werden soll.
2.Aus deiner Shell
claude plugin marketplace add cablate/ctx-handoff-mod claude plugin install ctx-handoff@ctx-handoff-modFühre danach in jeder bereits geöffneten Sitzung /reload-plugins aus.
3.Ohne Installation ausprobieren
git clone https://github.com/cablate/ctx-handoff-mod claude --plugin-dir ./ctx-handoff-modLädt die Mod nur für eine Sitzung. An deinen Einstellungen wird nichts geändert.
So funktioniert es
Alles wird aus einem Modul registriert, hooks/register.ts. Jeder abgeschlossene Zug startet einen Leerlauf-Timer neu. Löst er aus und liegt der Kontext über min_tokens, sendet die Mod eine minimale Fork-Anfrage, um das gecachte Gespräch zu lesen, und plant die nächste ein. Das ist die Planungsfunktion aus hooks/register.ts:
async function schedule($: EngineInterface, delay = cfg.idleMs) {
rt.idle?.cancel()
if (await awayPaused($)) { rt.idle = undefined; await update($, idleState, () => null); return }
rt.idle = $.clock.after(delay, () => void onIdle($))
const due = (await $.clock.now()) + delay
await update($, idleState, () => ({ due, refreshes: rt.refreshes }))
}Standardmäßig beträgt die Leerlaufzeit 50 Minuten, es gibt höchstens 3 Auffrischungen, danach wird eine Abwesenheits-Übergabe ohne Leeren gespeichert. Alle 30 Nutzernachrichten oder vor einer Übergabe schickt eine eigene Anfrage ohne Verlauf nur den neuen Teil des Gesprächs an ein Notizmodell (claude-sonnet-5-5, niedriger Aufwand). Dessen JSON-Aktionen werden im Code geprüft, Zitate müssen in deinen tatsächlichen Nachrichten vorkommen, und Zeilen, die wie Geheimnisse aussehen, werden vor dem Schreiben verworfen. Die Notizen werden über prompt.context in neue Gespräche eingefügt.
Anpassen
Die Mod deklariert kein userConfig. Die Einstellungen liegen im Tab Einstellungen des Panels (/handoff panel, dann Taste 5); zusätzlich liest die Mod pluginConfigs["ctx-handoff@<marketplace>"].options aus settings.json, wobei der Panel-Wert gewinnt. Dazu gehören auto_handoff (standardmäßig aus), threshold (600000 Token), idle_minutes (50), max_refresh (3), min_tokens (30000), distill_every (30), notes_model, retry_nudge, done_check, reply_language und language. Der Rest läuft über Slash-Befehle: /handoff now, dry, distill on|off, refresh on|off, away pause|resume, guard, resume, continue und resend.
Berechtigungen & Sicherheit
Wir haben das Manifest, hooks/hooks.json, hooks/register.ts vollständig sowie die Module für Einstellungen, Notizen, Übergabe, Guards, Schleifen, Sprache, Übernahme und den Distill-Prompt gelesen. Die übrigen Dateien, vor allem die i18n-Texte, die Panel-Ansicht und kleine Hilfen für Aufzeichnungen, haben wir per Suche auf Nebenwirkungen geprüft, nicht Zeile für Zeile gelesen. Das Repo enthält keine package.json, kein Installationsskript, keine Binärdatei und keinen minifizierten Code. tools/ enthält Skripte für den Autor, die das Plugin nicht lädt und die wir nicht ausgeführt haben. Es gibt keine versteckten Unicode-Zeichen.
Das solltest du wissen:
- Modellanfragen, sonst kein Netzwerk. Es gibt weder
fetchnoch Prozessaufrufe oder Netzwerkcode. Die Mod ruft$.model.forkund$.model.completeauf und nutzt dein Claude-Kontingent. Gesprächstext wird für Notizen und Übergabe-Zusammenfassungen gesendet, so wie das Gespräch selbst. - Schreibzugriffe außerhalb des eigenen Speichers.
$.fs.writelegt<Claude-Konfigurationsordner>/projects/<Arbeitsbereich>/memory/ctx-handoff.mdan und aktualisiert sie, und schreibt vor dem Löschen einer Notiz im Panel ein Backup nach.ctx-handoff-backup/. Notizen-Updates im Hintergrund sind standardmäßig an, werden aber übersprungen, wenn die Sitzung in deinem Home-Ordner startet. Settings.json, Shell-Dateien und LaunchAgents bleiben unberührt; gelesen werdenHOME,USERPROFILEundCLAUDE_CONFIG_DIR. - Sie fügt dem Modell Text hinzu.
prompt.contextergänzt neue Gespräche um deine Notizen, ein optionales Fortschrittsmemo und Guard-Rückfragen, markiert mit[ctx-handoff]. Tool-Ergebnisse können Hinweise tragen. Wurde eine Regel in einem Git-Repo dreimal wiederholt, weist der eingefügte Text Claude an, sie ohne Rückfrage ins Repo zu schreiben (CLAUDE.md,.claude/skills, Hooks), aber nicht zu committen. Die Notizen sind vom Modell geschriebene Zusammenfassungen deiner Gespräche, schau also hin und wieder in die Datei. - Blockierende Hooks.
tool.callkann einen Aufruf nur für einen von dir freigegebenen Guard ablehnen.classic.Stopkann pro Zug einmal eine „fertig“-Antwort blockieren, wenn Dateien geändert wurden und keine Prüfung lief (done_check, standardmäßig an).prompt.submithält deine Nachrichten zurück, während eine Übergabe läuft. Schaltest du die automatische Übergabe ein, führt die Mod selbst/clearaus und sendet die Zusammenfassung. - Kein Daemon, keine Telemetrie. Timer existieren nur im Claude-Code-Prozess. Nutzungsstatistiken bleiben im Speicher des Plugins.
- Verwaltete Umgebungen. Laut
claude plugin validatelaufenprompt.context- undclassic.Stop-Hooks in einem vom Nutzer installierten Plugin nicht, wenn eine Organisation Claude Code verwaltet. - Lizenz. MIT, mit LICENSE-Datei.
claude plugin validate meldete keine Fehler. Die einzige Warnung: Die CLAUDE.md im Repo-Stamm wird nicht als Plugin-Kontext geladen. Die 290 Tests des Autors in 15 Dateien bestanden unter Claude Code 2.1.303.
- Liest Dateien
- Kann Dateien lesen und Verzeichnisse auf deinem Rechner auflisten ($.fs.read / list / stat / exists).
- Schreibt Dateien
- Kann Dateien auf deinem Rechner anlegen oder überschreiben ($.fs.write).
- Ruft das Modell auf (nutzt dein Kontingent)
- Kann eigene Anfragen an Claude senden, die auf die Nutzung deines Plans angerechnet werden ($.model.* / $.agent.spawn).
- Fängt Tool-Aufrufe ab
- Sieht jeden Tool-Aufruf von Claude (tool.call / tool.check) und könnte ihn blockieren oder verändern.
- Liest deine Prompts
- Kann sehen, was du eingibst, und den Gesprächsverlauf lesen (prompt.* / session.append / session.messages).
- Verändert die Oberfläche
- Zeichnet in die Oberfläche von Claude Code: Leisten, Bereiche, Statustext, Toasts (ui.render / $.ui.*).
- Fügt Befehle/Tools hinzu
- Registriert neue Slash-Befehle oder Tools, die du oder Claude aufrufen können ($.command.register / $.tool.register).
- Speichert Daten
- Behält Daten zwischen Sitzungen im privaten Speicher des Plugins ($.store.*).
Kompatibilität & Fehlerbehebung
Geprüft mit Claude Code 2.1.303 unter macOS (validate, Tests und Aufnahme). Das README des Autors verlangt 2.1.287 oder neuer. Wenn /handoff nichts tut:
claude --versionist 2.1.287 oder neuer, und du hast nach der Installation eine neue Sitzung gestartet.- Möglicherweise gibt es schon einen anderen
/handoff-Befehl; dann registriert die Mod stattdessen/ctx-handoff. - Der Countdown in der Fußzeile fehlt, wenn Notizen-Updates aus sind oder du Claude Code im Home-Ordner gestartet hast.
- Cache-Auffrischungen helfen nur, wo der Cache eine Stunde hält; bei API-Schlüsseln schaltest du sie mit
/handoff refresh offaus. - Mit
/handoffsiehst du den aktuellen Stand, einschließlich des letzten Fehlers und des Pfads der Notizdatei.
FAQ
- Verbraucht ctx-handoff mein Claude-Kontingent?
- Ja. Die Mod hat keine eigenen Server, sendet aber über deine Claude-Code-Anmeldung Modellanfragen. Eine Cache-Auffrischung ist eine winzige Anfrage, ein Notizen-Update schickt nur den neuen Teil des Gesprächs mit niedrigem Aufwand an Sonnet 5.5. Eine vollständige Übergabe ist eine Anfrage.
- Wohin schreibt sie Dateien?
- Die Projektnotizen landen in ctx-handoff.md im memory-Ordner des Arbeitsbereichs unter ~/.claude/projects/ (oder CLAUDE_CONFIG_DIR). Alles andere liegt im eigenen Speicher des Plugins. Vor dem Löschen einer Notiz im Panel wird die alte Datei gesichert.
- Leert sie mein Gespräch von selbst?
- Nur wenn du auto_handoff einschaltest, was standardmäßig aus ist. Ist es aus, übernimmt bei vollem Kontext das eigene Compact von Claude Code. Abwesenheits-Übergaben werden ohne Leeren gespeichert, und du entscheidest, ob du von dort weitermachst.
- Kann sie Tool-Aufrufe von Claude blockieren?
- Nur über Guards. Die Mod entwirft sie aus Regeln, die du immer wieder nennst, und nichts gilt, bevor du einen Guard freigibst. Außerdem kann eine standardmäßig aktive Prüfung eine „fertig“-Antwort einmal zurückhalten, wenn Dateien geändert, aber nichts getestet wurde.
- Wie schalte ich die Hintergrundfunktionen aus?
- Mit /handoff distill off für Notizen, /handoff refresh off für Cache-Auffrischungen oder über /handoff panel im Tab Einstellungen für die Hinweise und die Antwortsprache.
# Ähnliche Mods
EmpfohlenProject Sentinel
Statusband, Kontext-Übergabe, Prompt-Cache-Tracking und Berechtigungsregeln für lange Claude Code Läufe.
- über dem Prompt
- Bereich
- Spinner
- Statuszeile
- Toast
- Liest Dateien
- Führt Befehle aus
- Ruft das Modell auf (nutzt dein Kontingent)
- Fängt Tool-Aufrufe ab
- Liest deine Prompts
- Verändert die Oberfläche
- Fügt Befehle/Tools hinzu
- Speichert Daten
getestet mit v2.1.296
EmpfohlenCache Clock
Eine Prompt-Cache-Zeile unter der Statuszeile: Restzeit, Trefferquote und Tokens, die kalt neu gecacht werden.
- Statuszeile
- Liest Dateien
- Schreibt Dateien
- Führt Befehle aus
- Fügt Befehle/Tools hinzu
getestet mit v2.1.296
EmpfohlenWhere Am I
Eine Übersicht über dem Claude-Code-Prompt: Ziel, aktuelle Arbeit, was auf dich wartet und der nächste Schritt.
- über dem Prompt
- Liest Dateien
- Ruft das Modell auf (nutzt dein Kontingent)
- Fängt Tool-Aufrufe ab
- Liest deine Prompts
- Verändert die Oberfläche
- Fügt Befehle/Tools hinzu
getestet mit v2.1.303
Mehr in Timer, Todos, Standups, Kontext, Kontingent, Kosten.