Zum Inhalt springen
claudemods

Compact Adviser: Wissen, wann /compact in Claude Code sinnvoll ist

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

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).
  • NetzwerkKann HTTP-Anfragen senden oder mit MCP-Servern kommunizieren ($.http.fetch / $.mcp.*).
  • 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.291
zuletzt getestet
erfordert
Claude Code ≥ 2.1.287
Oberflächen
Statuszeile, Bereich, Toast

In Claude Code installieren:

/plugin install compact-adviser --marketplace kunchenguid/compact-adviser
Alle Installationswege ↓

Was macht diese Mod?

Compact Adviser beantwortet eine Frage, nämlich wann /compact in Claude Code fällig ist: Sollte ich /compact jetzt ausführen? Geschrieben hat sie Kun Chen (kunchenguid), und sie erscheint aus einem einzigen Repository für Claude Code, Pi, Codex CLI und Grok. Diese Seite behandelt die Claude Code Mod in packages/claude-mod.

Zu frühes Komprimieren wirft Kontext weg, den du noch brauchst; zu spätes Komprimieren bedeutet, dass jeder Turn eine lange Historie mitschleppt. Nach jedem abgeschlossenen Turn prüft die Mod ein paar günstige lokale Bedingungen und stellt, wenn sie erfüllt sind, dem Jev-Modell von TypeSafe zwei kurze Fragen zum Gespräch: Ist die letzte Arbeitseinheit des Assistenten fertig, und hat der Assistent die Arbeit selbst erledigt oder vor allem koordiniert? Die beiden Antworten werden zu einem Wert kombiniert. Überschreitet der Wert eine Schwelle, erscheint eine Statuszeile: „work appears completed or recorded. Run /compact to save tokens.“

Die Schwelle ist streng (0,90), solange der Kontext größtenteils leer ist, und lockert sich in Richtung 0,50, je näher der Kontext dem Auto-Compact-Punkt von Claude Code kommt, denn ein falscher Hinweis kostet am meisten, solange noch Platz ist. Wenn du dich für den automatischen Modus entscheidest, führt die Mod die Komprimierung an einem solchen Checkpoint selbst aus, statt nur einen Hinweis zu geben.

Sie braucht einen TypeSafe-API-Schlüssel, den du selbst bereitstellst.

Demo

Ein echter Hinweis braucht mehr als 40.000 Tokens Kontext und einen TypeSafe-Schlüssel, was nicht in einen kurzen Clip passt. Die Aufnahme startet Claude Code mit geladener Mod, führt /compact-adviser status aus (Modus, Minimum, Budget und Schlüsselstatus), öffnet dann den Einstellungsbereich /compact-adviser und springt zur Zeile für den TypeSafe-API-Schlüssel, die missing zeigt.

Installation

Nutze eine der beiden Methoden aus dem Installationsblock; beide installieren direkt aus dem Marketplace des Autors. Die Mod tut gar nichts, wenn Claude Code nicht mit CLAUDE_CODE_ENABLE_FUNCTION_HOOKS=1 startet. Starte es also mit dieser Variable und führe dann /compact-adviser aus, um deinen TypeSafe-Schlüssel hinzuzufügen.

$ install compact-adviser

Erfordert Claude Code ≥ 2.1.287

Wird aus dem Marketplace des Autors installiert: kunchenguid/compact-adviser

  1. 1.Eine Zeile, direkt in Claude Code

    /plugin install compact-adviser --marketplace kunchenguid/compact-adviser

    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 kunchenguid/compact-adviser
    claude plugin install compact-adviser@compact-adviser

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

  3. 3.Ohne Installation ausprobieren

    git clone https://github.com/kunchenguid/compact-adviser
    claude --plugin-dir ./compact-adviser/packages/claude-mod

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

So funktioniert es

Alles beginnt im turn.complete-Hook in hooks/register.ts:

on("turn.complete", async ($, e, next) => {
  const result = await next(e);
  if (!(await isActivated($)) || !interactive) return result;
  if (e.agentId !== undefined || e.reason !== "answer" || e.isAborted || !e.answer.trim()) {
    return result;
  }
  try {
    await settle($);
  } catch {
    notice($, "Compact adviser could not inspect this checkpoint; context left unchanged.");
  }
  return result;
});

Es zählt nur ein Turn der Hauptschleife, der mit einer echten Antwort endete; Subagent-Turns und abgebrochene Turns werden übersprungen. settle zählt den Austausch und prüft die günstigen Hürden: Modus nicht aus, ein Schlüssel vorhanden, Kontext bei oder über minContextTokens und keine Abklingzeit oder Snooze. Sind sie erfüllt, plant es judgeCheckpoint mit $.clock.after(0, …) ein, damit der Turn nicht aufgehalten wird.

judgeCheckpoint baut einen begrenzten Schnappschuss aus $.session.messages() (siehe lib/snapshot.ts), überspringt die Anfrage, wenn das Gespräch unter 20.000 Tokens liegt oder derselbe Checkpoint bereits bewertet wurde, und sendet ihn mit $.http.fetch an https://api.typesafe.ai/v1/systemone. Die Anfrage bricht nach 2 Sekunden ab, und ein Fehler, ein Timeout oder eine fehlerhafte Antwort zählt nie als Ja: Die Mod hält sich dann zurück und zeigt stattdessen einen Toast. Erfüllt der Wert die Schwelle, ruft der Hinweis-Modus $.ui.status mit dem Hinweis auf, und der automatische Modus ruft $.session.compact mit der Anweisung auf, die aktuelle Arbeit, offene Aufgaben und den nächsten Schritt exakt zu erhalten.

Jede Komprimierung, ob deine oder die von Claude Code, setzt über den session.compact-Hook die Abklingzeit der Sitzung zurück.

Anpassen

Führe /compact-adviser aus, um den Einstellungsbereich zu öffnen, oder nutze die Unterbefehle: auto, hint und off wechseln den Modus; threshold 60000 setzt den Mindestkontext; budget 450000 setzt ein Kontextbudget, an dem die Schwelle statt am Auto-Compact-Punkt gemessen wird; snooze überspringt die nächsten drei Austausche; dismiss entfernt den aktuellen Hinweis; status gibt den aktuellen Zustand aus. Modus, Minimum, Budget und Anfrageprotokollierung sind auch Zeilen in /config. Ein Bewertungsprofil (JSON in der Einstellung profile) kann die Fragen, die Gewichtung des Werts oder den Verlauf der Schwelle ändern.

Berechtigungen & Sicherheit

Wir haben register.ts, jede Datei unter lib/, plugin.json, hooks.json, package.json und die Test-Helfer gelesen, bevor wir irgendetwas ausgeführt haben.

  • Netzwerk: Die Mod sendet pro qualifizierendem Checkpoint eine Anfrage an https://api.typesafe.ai/v1/systemone, einen Drittanbieterdienst, mit deinem Schlüssel im Header Authorization. Der Inhalt ist ein Schnappschuss des jüngsten Gesprächs, gedeckelt auf 32.000 Bytes, nach bestmöglicher Schwärzung von Schlüsselmustern sowie .env-, auth.json-, id_rsa/id_ed25519-, .pem- und .key-Dateien. TYPESAFE_BASE kann auf eine andere https-Basis oder eine Loopback-http-Adresse zeigen. Die Installation des Plugins gilt als Einwilligung, dies zu senden, sobald ein Schlüssel vorhanden ist; stelle den Modus also auf off für Arbeit, die deinen Rechner nicht verlassen darf.
  • Dateien: Sie liest .env im Sitzungsordner, um nach TYPESAFE_API_KEY zu suchen. Sie schreibt nur, wenn du die Anfrageprotokollierung einschaltest: ~/.claude/compact-adviser-requests-<session-id>.jsonl, das den Schlüssel nie enthält.
  • Einstellungen: Speichern aus dem Bereich schreibt die eigenen userConfig-Zeilen des Plugins über $.config.set. Der gespeicherte Schlüssel ist in /config verborgen.
  • Komprimierung: nur im automatischen Modus, nach einem einmaligen Bestätigungsdialog.

Es gibt keine Installationsskripte, keinen gebündelten oder minifizierten Code und keine Telemetrie außer der TypeSafe-Anfrage selbst.

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).
Netzwerk
Kann HTTP-Anfragen senden oder mit MCP-Servern kommunizieren ($.http.fetch / $.mcp.*).
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

Validiert mit Claude Code 2.1.291: claude plugin validate besteht ohne Warnungen, und claude plugin test führt 114 Tests aus, die alle bestehen. Der Autor nennt Claude Code 2.1.274 oder neuer. Wenn nichts passiert, prüfe Folgendes der Reihe nach:

  • /compact-adviser fehlt: CLAUDE_CODE_ENABLE_FUNCTION_HOOKS ist nicht genau 1, oder COMPACT_ADVISER_DISABLE ist gesetzt.
  • /compact-adviser status meldet Key: missing: Füge einen Schlüssel im Bereich, in der Umgebung oder in ./.env hinzu.
  • Der Befehl funktioniert, aber kein Hinweis erscheint: Der Kontext liegt unter dem Minimum, oder der letzte Turn endete nicht mit einer abgeschlossenen Antwort.
  • Ein Toast erwähnt „nonessential network traffic“: CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC blockiert die Anfrage an TypeSafe.
  • Sitzungen mit claude -p sind absichtlich immer inaktiv.

FAQ

Brauche ich für Compact Adviser einen API-Schlüssel?
Ja. Die Bewertungen gehen mit deinem eigenen Schlüssel an die Jev-API von TypeSafe. Setze TYPESAFE_API_KEY in der Umgebung, lege ihn in eine .env-Datei im Sitzungsordner oder speichere ihn im Bereich /compact-adviser. Ohne Schlüssel gibt die Mod keine Ratschläge.
Was wird an TypeSafe gesendet?
Ein begrenzter Schnappschuss des jüngsten Gesprächs, gedeckelt auf 32.000 Bytes. Er enthält Vorgaben des Nutzers, bis zu den letzten 64 Nachrichten mit gekürzten Tool-Ergebnissen, eine vorhandene Zusammenfassung und die Namen gespeicherter Dateien. Bekannte Schlüsselmuster und sensible Dateien wie .env und private Schlüssel werden nach bestem Bemühen geschwärzt.
Komprimiert sie meine Sitzung, ohne zu fragen?
Standardmäßig nicht. Der Standardmodus zeigt nur einen Hinweis. Den automatischen Modus musst du mit /compact-adviser auto wählen und in einem Dialog bestätigen, und auch dann handelt er nur an einem Checkpoint, der dieselbe Bewertung besteht.
Warum erscheint der Befehl /compact-adviser nicht?
Die Mod wird nur aktiv, wenn CLAUDE_CODE_ENABLE_FUNCTION_HOOKS genau 1 ist und COMPACT_ADVISER_DISABLE nicht auf einen wahren Wert gesetzt ist. In nicht interaktiven Sitzungen wie claude -p bleibt sie ebenfalls inaktiv.
Warum sehe ich nie einen Hinweis?
Der Kontext muss mindestens 40.000 Tokens umfassen (das Standardminimum), und der letzte Turn muss mit einer abgeschlossenen Antwort enden. Außerdem gelten Abklingzeiten und Snooze, und für einen Hinweis muss der Bewertungswert eine Schwelle zwischen 0,90 und 0,50 überschreiten, die sich lockert, je voller der Kontext wird.
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, Kontext, Kontingent, Kosten.