Zum Inhalt springen
claudemods

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

In Claude Code installieren:

/plugin install ctx-handoff --marketplace cablate/ctx-handoff-mod
Alle Installationswege ↓

Was 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. 1.Eine Zeile, direkt in Claude Code

    /plugin install ctx-handoff --marketplace cablate/ctx-handoff-mod

    In eine laufende Sitzung einfügen (v2.1.275+). Claude Code fragt zuerst, ob der Marketplace hinzugefügt werden soll.

  2. 2.Aus deiner Shell

    claude plugin marketplace add cablate/ctx-handoff-mod
    claude plugin install ctx-handoff@ctx-handoff-mod

    Führe danach in jeder bereits geöffneten Sitzung /reload-plugins aus.

  3. 3.Ohne Installation ausprobieren

    git clone https://github.com/cablate/ctx-handoff-mod
    claude --plugin-dir ./ctx-handoff-mod

    Lä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 fetch noch Prozessaufrufe oder Netzwerkcode. Die Mod ruft $.model.fork und $.model.complete auf 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.write legt <Claude-Konfigurationsordner>/projects/<Arbeitsbereich>/memory/ctx-handoff.md an 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 werden HOME, USERPROFILE und CLAUDE_CONFIG_DIR.
  • Sie fügt dem Modell Text hinzu. prompt.context ergä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.call kann einen Aufruf nur für einen von dir freigegebenen Guard ablehnen. classic.Stop kann pro Zug einmal eine „fertig“-Antwort blockieren, wenn Dateien geändert wurden und keine Prüfung lief (done_check, standardmäßig an). prompt.submit hält deine Nachrichten zurück, während eine Übergabe läuft. Schaltest du die automatische Übergabe ein, führt die Mod selbst /clear aus 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 validate laufen prompt.context- und classic.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 --version ist 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 off aus.
  • Mit /handoff siehst 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.
Project Sentinel in Claude CodeEmpfohlen

Project 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

Cache Clock in Claude CodeEmpfohlen

Cache 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

Where Am I in Claude CodeEmpfohlen

Where 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.