Zum Inhalt springen
claudemods

Project Sentinel: Claude Code Kontext-Übergabe und Steuerung langer Läufe

Statusband, Kontext-Übergabe, Prompt-Cache-Tracking und Berechtigungsregeln für lange Claude Code Läufe.

Berechtigungen

  • Liest DateienKann Dateien lesen und Verzeichnisse auf deinem Rechner auflisten ($.fs.read / list / stat / exists).
  • Führt Befehle ausKann Shell-Programme auf deinem Rechner ausführen ($.process.run / spawn). Im Quellcode siehst du, welche genau.
  • 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.296
zuletzt getestet
erfordert
Claude Code ≥ 2.1.287
Oberflächen
über dem Prompt, Bereich, Spinner, Statuszeile, Toast

In Claude Code installieren:

/plugin install project-sentinel --marketplace Arjun0014/project-sentinel
Alle Installationswege ↓

Was macht diese Mod?

Project Sentinel ist eine Community-Mod der Project-Sentinel-Mitwirkenden (Arjun0014). Sie ist für lange Claude Code Läufe gebaut, und ihre bekannteste Funktion ist eine Claude Code Kontext-Übergabe: Wenn sich das Kontextfenster füllt, bittet Context Autopilot Claude, die aktuelle Arbeitseinheit abzuschließen und eine Notizdatei zu schreiben, leert dann den Kontext und startet einen frischen, der diese Notizen liest. Bis Version 1.4.0 hieß die Mod Control Room, deshalb tragen das Panel und das Statusband noch diesen Namen.

Drumherum kommt einiges hinzu. Ein Statusband über dem Prompt zeigt Kontextnutzung, Prompt-Cache und die Kosten des Laufs. Der Cache Guardian verfolgt, wie lange der Prompt-Cache warm bleibt, und fragt vor einem Modellwechsel nach, der 100k oder mehr Tokens erneut senden würde. Mit Berechtigungskategorien legst du fest, ob Paketinstallationen, Pushes, Deploys und ähnliche Aktionen nachfragen oder abgelehnt werden. Weitere Teile sind eine Mission Queue und eine Decision Inbox, Subagent-Limits, ein Modell-Router, ein Regler für die Maschinenlast und ein optionaler Pixel-Begleiter. Die README des Autors listet alles vollständig auf; diese Seite behandelt, was wir im Code geprüft haben.

Demo

Die Aufnahme startet Claude Code mit geladener Mod im kleinen Demo-Projekt und bittet Claude, README.md zu lesen und das Projekt in einem Satz zu beschreiben. Vor dem Prompt zeigt das Band über der Eingabe „Ready“ mit einem Control-Room-Badge und RUN $0.00. Während der Turn läuft, wechselt es zu „Thinking“ und zeigt dann, wie sich die Kontextanzeige auf 4 % füllt. Wenn der Turn endet, zeigt es „Read 1 file“, den Kontextbalken, CACHE 1h left und die Laufkosten von unter einem Cent.

Installation

Nutze eine beliebige Methode aus dem Installationsblock; alle installieren direkt aus dem eigenen Marketplace des Autors namens control-room. Das Band erscheint beim nächsten Sitzungsstart. Führe /control-room oder /cr aus, um das Panel zu öffnen.

$ install project-sentinel

Erfordert Claude Code ≥ 2.1.287

Wird aus dem Marketplace des Autors installiert: Arjun0014/project-sentinel

  1. 1.Eine Zeile, direkt in Claude Code

    /plugin install project-sentinel --marketplace Arjun0014/project-sentinel

    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 Arjun0014/project-sentinel
    claude plugin install project-sentinel@control-room

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

  3. 3.Ohne Installation ausprobieren

    git clone https://github.com/Arjun0014/project-sentinel
    claude --plugin-dir ./project-sentinel/plugins/project-sentinel

    Lädt die Mod nur für eine Sitzung. An deinen Einstellungen wird nichts geändert.

So funktioniert es

Das Plugin hat ein einziges Hooks-Modul, hooks/register.tsx, das einen einzigen Host-Adapter für alle Engine-Aufrufe baut und jeden Hook als wenige Zeilen registriert, die ein Runtime-Objekt aufrufen. Jeder steuernde Hook hat ein .catch, das auf das Standardverhalten von Claude Code zurückfällt. Der Tool-Call-Hook aus hooks/register.tsx:

on('tool.call', async ($, e, next) => {
  if (rt.isStandby) return next(e)
  if (rt.host === null) rt.bind(hostOf($))
  const tool = String(e.tool)
  const input: Record<string, unknown> = isRecord(e) ? { ...e } : {}
  const refusal = await rt.beforeTool(tool, input, e.tool_use_id, e.agentId)
  if (refusal !== null) return { deny: refusal }
  // ... then next(e), with afterTool in a finally block
})

beforeTool zerlegt Shell-Befehle in Tokens, ordnet jedes Segment einer Berechtigungskategorie zu und wendet die strengste Einstellung an. Stürzt diese Prüfung ab, lehnt das .catch offensichtlich gefährliche Befehle trotzdem ab. Der Zustand liegt im $.store des Plugins (Einstellungen, Laufaufzeichnungen, Cache-Gedächtnis) und in $.state-Atomen, die die Render-Hooks lesen.

Anpassen

Alles wird im Panel (/cr) oder über den Befehl /cr eingestellt: Profile, die Autopilot-Schwelle (standardmäßig 70 % des Fensters oder eine Token-Zahl), der Name der Übergabedatei, Berechtigungszustände pro Kategorie, Antwortstil, Router-Strategie, Subagent-Modus und -Limit, Ressourcengrenzen, Keep warm und der Begleiter. /cr reset confirm stellt die Standardwerte wieder her. Die docs/CONFIGURATION.md des Autors listet jede Option auf.

Berechtigungen & Sicherheit

Wir haben das Manifest, hooks/hooks.json, hooks/register.tsx, den Host-Adapter, core/settings.ts, features/prompts.ts, features/permissions/decide.ts, app/formerStore.ts und die SECURITY.md des Autors gelesen. Das Plugin umfasst rund 60 TypeScript-Dateien (etwa 7.800 Zeilen in den vier größten). Nicht jede Zeile haben wir in der UI, dem Panel und dem 3.000 Zeilen langen Begleiter-Modul (kit.client.tsx) gelesen; diese und alle übrigen Dateien haben wir nach Netzwerkaufrufen, eval, dynamischen Imports, Prozessaufrufen, Dateischreibvorgängen, Secrets und verstecktem Unicode durchsucht und nichts über das hier Aufgeführte hinaus gefunden. Im Plugin gibt es keine package.json, kein Installationsskript, keine Binärdatei und keinen minifizierten Code.

Ergebnisse:

  • Netzwerk: keins. Kein fetch, keine Sockets oder Hosts. Modellanfragen laufen über den eigenen Client von Claude Code (die optionale Guard-Prüfung und Keep warm, das standardmäßig aus ist und die letzte Anfrage mit einer kurzen „reply ok“-Nachricht erneut sendet).
  • Prozesse: top -l 0 -s 2 -n 0 (ein langlebiger CPU- und Speicher-Sampler, der läuft, solange „Live CPU and memory“ an ist, was der Standard ist) und sysctl -n kern.memorystatus_level unter macOS; typeperf und systeminfo unter Windows; git status --porcelain=v1 --branch in Git-Repositories. Alle nutzen feste Argumente und keine Shell. Der Sampler stoppt, wenn die Sitzung endet.
  • Dateischreibvorgänge: keine durch das Plugin selbst, nur seine eigene $.store-Datei. Die Übergabe-Notizdatei (standardmäßig NEXT_SESSION_PROMPT.md) schreibt Claude mit seinen normalen, berechtigungsgeprüften Tools. Die alte Control-Room-Store-Datei unter ~/.claude/plugins/store/ liest es einmal, um Einstellungen zu übernehmen; diese Datei wird nie verändert.
  • Daemons: keine. Die Timer für Watcher leben im Claude-Code-Prozess.
  • Umgebung: Es liest HOME, USERPROFILE und CLAUDE_CONFIG_DIR (um den alten Store zu finden) sowie die Prompt-Cache-Einstellungen CLAUDE_CODE_PROMPT_CACHE_TTL, ENABLE_PROMPT_CACHING_1H und FORCE_PROMPT_CACHING_5M. Die Zusammenfassung in der SECURITY.md des Autors sagt, es lese nie Umgebungsvariablen, doch die eigene Tabelle dort führt diesen Lesezugriff auf. Nichts wird irgendwohin gesendet.
  • Telemetrie: keine.
  • Einfluss auf das Modell: Es fügt dem System-Prompt einen Richtlinienabschnitt hinzu, wenn Funktionen wie Autopilot oder Frontier Max an sind, hängt kurze Hinweise an Tool-Ergebnisse, bietet zwei Tools an (milestones und decision_request) und sendet eigene Prompts (Übergabe, Fortsetzung, Arbeit aus der Warteschlange). Die Formulierungen stehen in features/prompts.ts. Frontier Max (standardmäßig aus) sagt Claude, die Sitzung „is being evaluated for frontier-level autonomous capability“, und es solle nicht vorzeitig aufhören. Wir haben keinen versteckten Text oder Text mit Nullbreite und keine an einen Prüfer gerichteten Anweisungen gefunden.
  • Steuernde Hooks: Es kann Tool-Aufrufe ablehnen (Standard: Force-Pushes, Resets und gefährliche Befehle werden abgelehnt; Installationen, Downloads, Pushes, Deploys, Löschungen und Bearbeitungen außerhalb des Projekts fragen nach), vor einem Modellwechsel oder dem Fortsetzen eines großen kalten Kontexts nachfragen, Subagents ausblenden oder ablehnen und einen vorzeitig beendeten Turn fortsetzen (Guard, standardmäßig aus). Es beantwortet nie selbst eine Berechtigungsabfrage und lockert nie eine Ablehnung. Das entspricht der README.
  • Externe Voraussetzungen: keine außer Claude Code 2.1.287 oder neuer. top und sysctl sind in macOS enthalten.
  • Lizenz: MIT, mit einer LICENSE-Datei im Repository und im Plugin-Ordner.

claude plugin validate meldete keine Fehler und keine Warnungen. Der Befehl claude plugin test fand keine *.test.ts-Dateien im Plugin-Ordner, weil der Autor die Test-Umgebung in einem separaten Ordner tools/test des Repositorys hält; die Tests des Autors konnten wir daher nicht ausführen. Betrachte die Mod als umfassend und tief eingreifend: Sie kann Prompts umschreiben, Tools ablehnen und deinen Kontext leeren, wenn du diese Funktionen aktivierst.

Liest Dateien
Kann Dateien lesen und Verzeichnisse auf deinem Rechner auflisten ($.fs.read / list / stat / exists).
Führt Befehle aus
Kann Shell-Programme auf deinem Rechner ausführen ($.process.run / spawn). Im Quellcode siehst du, welche genau.
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.296 unter macOS (validate und eine aufgezeichnete Sitzung). Wenn etwas nicht stimmt:

  • Führe /cr aus, um das Panel und die aktuellen Einstellungen zu sehen.
  • Fehlt das Band, prüfe unter Setup den Bandstil; er kann auf „aus“ stehen.
  • Lehnt Claude einen Befehl ab, sieh unter Guardrails nach: Die Standard-Berechtigungszustände lehnen Force-Pushes und gefährliche Befehle ab.
  • Ist auch das alte Plugin control-room geladen, bleibt Project Sentinel im Standby und weist einmal darauf hin.
  • Unter Windows brauchen die CPU- und Speicherzähler ein englischsprachiges Windows.

FAQ

Macht Project Sentinel etwas, ohne dass ich es einschalte?
Die Mod zeichnet das Statusband, kompakte Tool-Zeilen und das Control-Room-Panel, lässt für das Band einen CPU- und Speicher-Sampler laufen und wendet die Standard-Berechtigungsregeln an (Installationen, Downloads, Pushes und Deploys fragen nach; Force-Pushes und gefährliche Befehle werden abgelehnt). Context Autopilot, Frontier Max, der Router, Keep warm und der Begleiter bleiben aus, bis du sie aktivierst.
Sendet die Mod Daten irgendwohin?
Eigene Netzwerkanfragen stellt sie nicht, und Telemetrie gibt es keine. Zwei Funktionen lassen Claude Code Modellanfragen senden, die du im Panel sehen kannst: die optionale intelligente Prüfung des Guards und Keep warm (standardmäßig aus).
Kann die Mod meinen Kontext selbstständig leeren?
Nur wenn Context Autopilot eingeschaltet ist oder du eine Übergabe anforderst. Sie bittet Claude zuerst, eine Notizdatei zu schreiben, prüft, dass die Datei frisch geschrieben wurde, führt dann /clear aus und sendet einen Fortsetzungs-Prompt.
Worin unterscheidet sie sich von Context Bar oder Compact Adviser?
Diese zeigen die Kontextnutzung an oder geben Ratschläge dazu. Project Sentinel ist eine größere Suite: Neben dem Kontext deckt sie den Prompt-Cache, Berechtigungskategorien, Subagent-Limits, Arbeit in der Warteschlange und Watcher ab, und sie kann in die Sitzung eingreifen.
Wie öffne ich das Panel?
Führe /control-room aus, kurz /cr. Das Panel hat Tabs für Aktivität, Kontext, Cache, Guardrails, Verhalten und Einrichtung.
Context Bar in Claude CodeEmpfohlen

Context Bar

Das Kontextfenster von Claude Code als gestapelter Balken über dem Prompt, eine Farbe pro Kategorie, mit Token-Zahlen.

  • über dem Prompt
  • Verändert die Oberfläche
  • Fügt Befehle/Tools hinzu
  • Speichert Daten

getestet mit v2.1.291

Compact Adviser in Claude CodeEmpfohlen

Compact Adviser

Erkennt abgeschlossene Arbeitseinheiten und zeigt einen Hinweis, wann sich /compact in Claude Code lohnt.

  • Statuszeile
  • Bereich
  • Toast
  • Liest Dateien
  • Schreibt Dateien
  • Netzwerk
  • Liest deine Prompts
  • Verändert die Oberfläche
  • Fügt Befehle/Tools hinzu
  • Speichert Daten

getestet mit v2.1.291

Kontext-Meter in Claude CodeEmpfohlen

Kontext-Meter

Kontextfüllstand, 5-Stunden- und 7-Tage-Plannutzung und Sitzungskosten in der Statuszeile, plus Warnung vor dem Limit.

  • Statuszeile
  • Toast
  • Verändert die Oberfläche

getestet mit v2.1.310

Mehr in Timer, Todos, Standups, Sicherheits-Guards, Kontext, Kontingent, Kosten.