CLAUDE GUIDE 01 · WERKSTREAM
Input- und Output-Tokens sparen
Wo gehen die Tokens in Claude Code eigentlich wirklich hin? Ich habe die einzelnen Stellschrauben getestet – hier sind die wirksamsten Hebel, sortiert nach echter Ersparnis.
Auf einen Blick (Kurzfassung):
- Prompt Caching ist King: Wechselst du mitten in der Session Modell oder Effort, wird der Cache ungültig und kostet dich teure Repetitions-Tokens.
- Context schlank halten: Lange Sessions erzeugen hohe Input-Kosten pro Nachricht. Nutze
/clearzwischen neuen Aufgaben. - Subagenten & Hooks nutzen: Lagere verbose Testläufe oder Log-Dateien an Subagenten oder Vorfilter-Hooks aus.
Das Grundprinzip: jede Nachricht schickt alles mit
Claude Code ist zustandslos gegenüber der API. Bei jedem Turn wird der komplette Kontext neu gesendet: System-Prompt, Projekt-Kontext (CLAUDE.md, Memory), die gesamte bisherige Konversation inklusive aller Datei-Inhalte und Tool-Outputs — plus deine neue Nachricht.
Daraus folgt die wichtigste Konsequenz: eine Einzeiler-Frage in einer Session, die seit sechs Stunden offen ist, kostet nicht einen Einzeiler, sondern die ganze Session. Input-Tokens dominieren deshalb bei Claude Code fast immer über Output-Tokens.
Erst messen. /usage zeigt den Session-Block mit Input, Output, Cache-Read und Cache-Write. Auf Pro/Max/Team/Enterprise zeigt es zusätzlich eine Aufschlüsselung nach Skills, Subagents, Plugins und einzelnen MCP-Servern — jeweils als Prozentanteil. Verhaltensmuster wie long context oder cache misses werden markiert, sobald sie 10 % oder mehr der jüngsten Nutzung ausmachen. d / w schaltet zwischen 24 Stunden und 7 Tagen um.
Hebel 1: Prompt Caching nicht kaputt machen
Prompt Caching läuft in Claude Code automatisch und ist der mit Abstand größte Kostenfaktor, den man versehentlich zerstören kann. Die Ökonomie:
| Vorgang | Preis relativ zu normalem Input |
|---|---|
| Cache-Read | ≈ 10 % |
| Cache-Write, 5-Minuten-TTL | 1,25 × |
| Cache-Write, 1-Stunden-TTL | 2 × |
Der Cache ist ein Präfix-Match: die API vergleicht den Anfang jedes Requests byte-genau mit dem, was sie zuletzt verarbeitet hat. Eine Änderung an irgendeiner Stelle im Präfix macht alles danach ungültig. Es gibt kein Caching pro Datei oder pro Segment.
Claude Code sortiert den Request deshalb nach Änderungshäufigkeit:
| Schicht | Inhalt | Ändert sich bei |
|---|---|---|
| System-Prompt | Kern-Instruktionen, Tool-Definitionen, Output-Style | Änderung der geladenen Tools, Claude-Code-Upgrade |
| Projekt-Kontext | CLAUDE.md, Auto-Memory, ungescopte Rules | Session-Start, /clear, /compact |
| Konversation | Nachrichten, Antworten, Tool-Ergebnisse | jedem Turn |
Was den Cache zerstört
- Modellwechsel (
/model) — jedes Modell hat seinen eigenen Cache. Der nächste Request liest die gesamte Historie ohne einen einzigen Treffer, obwohl der Inhalt identisch ist. Die Einstellungopusplanlöst bei jedem Plan-Mode-Wechsel einen Modellwechsel aus. - Effort-Wechsel (
/effort) — der Cache ist auch nach Effort-Level geschlüsselt. Claude Code fragt vor dem Anwenden nach. - Fast Mode einschalten — setzt einen Header, der Teil des Cache-Keys ist. Kostet einmal pro Konversation; früh in der Session einschalten ist deutlich billiger als spät.
- MCP-Server verbinden/trennen — aber nur, wenn dessen Tools im Präfix liegen. Standardmäßig sind MCP-Tools deferred, dann passiert nichts.
- Deny-Regel auf einen ganzen Tool-Namen (
Bash,WebFetch) — entfernt das Tool aus dem System-Prompt. Gescopte Regeln wieBash(rm *)sind harmlos. /compact— ersetzt die Historie durch eine Zusammenfassung, das Präfix ist danach ein anderes.- Claude-Code-Upgrade — neue Version, neuer System-Prompt. Eine lange Session nach einem Upgrade fortzusetzen ist häufig der teuerste Request, den man senden kann.
Was den Cache erhält
- Dateien im Repo bearbeiten (Claude bekommt nur einen angehängten Hinweis)
- CLAUDE.md mitten in der Session bearbeiten — greift allerdings auch erst nach
/clear,/compactoder Neustart - Output-Style und Permission-Mode ändern
- Skills und Commands aufrufen (werden als User-Nachricht angehängt)
/recap— hängt an, statt zu ersetzen/rewind— kürzt auf einen bereits gecachten Präfix zurück, statt einen neuen zu bauen- Subagents spawnen (eigener Kontext, Parent bleibt unberührt)
Praxisregel: Modell und Effort am Anfang der Session festlegen, /compact für natürliche Pausen zwischen Aufgaben aufheben. Wer einen Weg komplett verwerfen will, nimmt /rewind statt /compact.
Cache-Lebensdauer
Auf einem Claude-Abo fordert Claude Code automatisch die 1-Stunden-TTL an — die Nutzung ist im Abo enthalten, der längere TTL kostet also nichts extra. Jeder Cache-Treffer setzt den Timer zurück. Wer Usage Credits verbraucht, fällt automatisch auf 5 Minuten zurück, weil dann pro Token abgerechnet wird. Mit API-Key oder Cloud-Provider gilt standardmäßig 5 Minuten; ENABLE_PROMPT_CACHING_1H=1 schaltet um.
Kontrolle: Die API meldet pro Response cache_creation_input_tokens und cache_read_input_tokens. Ein hohes Read-zu-Creation-Verhältnis heißt, dass Caching funktioniert. Bleibt Creation Turn für Turn hoch, ändert sich etwas im Präfix.
Hebel 2: Modell und Effort zur Aufgabe passend wählen
Sonnet erledigt die meisten Coding-Aufgaben und kostet deutlich weniger als Opus. Opus lohnt sich für schwierige Architekturentscheidungen und mehrstufiges Reasoning. Für einfache Subagent-Aufgaben lässt sich model: haiku in der Subagent-Konfiguration setzen.
Anthropics eigene Empfehlung im Blog-Artikel zu Modell und Effort ist diagnostisch statt pauschal:
- Claude hatte den vollen Kontext, hat es klar versucht und lag trotzdem falsch → größeres Modell.
- Claude hat Dateien übersprungen, Tests nicht ausgeführt oder eine mehrstufige Aufgabe abgebrochen → höherer Effort.
- Vorher prüfen: war der Prompt klar, waren die Tools da, war die Aufgabe sauber abgegrenzt? Höherer Effort soll fehlenden Kontext nicht kompensieren.
Thinking-Tokens
Extended Thinking ist standardmäßig an, weil es bei Planung und Reasoning deutlich hilft. Thinking-Tokens werden zum Output-Tarif abgerechnet, nicht zum Input-Tarif — bei Opus 5 also 25 $/M — und das Standard-Budget kann je nach Modell zehntausende Tokens pro Request betragen.
Für einfachere Aufgaben:
/effortoder/modelsenken (bevorzugt)- Thinking in
/configabschalten - Bei Modellen mit festem Thinking-Budget:
MAX_THINKING_TOKENS=8000als Environment-Variable. Modelle mit adaptivem Reasoning ignorieren Budgets ungleich null — dort ist der Effort-Level der einzige Hebel.
Achtung bei Opus 5: Thinking ist dort per Default an, und thinking: disabled ist nur bis Effort-Level high erlaubt. Abschalten hat außerdem zwei bekannte Fehlermodi — Details in Artikel 5. Effort senken ist der bessere Hebel.
Hebel 3: Verbose Operationen auslagern
Tests ausführen, Doku abrufen, Logfiles verarbeiten — das erzeugt viel Output, der einmal gebraucht und danach für immer mitgeschleppt wird.
Subagents
Ein Subagent bekommt einen eigenen Kontext. Der verbose Output bleibt dort, nur eine Zusammenfassung kommt zurück. Der Parent-Cache bleibt intakt, weil Aufruf und Ergebnis nur angehängt werden.
Nutze Subagents, um zu untersuchen, wie unser Auth-System
Token-Refresh handhabt und ob es OAuth-Utilities gibt,
die ich wiederverwenden sollte.
Ein Subagent nutzt allerdings 5-Minuten-TTL, auch im Abo — die automatische 1-Stunden-TTL gilt nur für die Hauptkonversation.
Hooks als Vorfilter
Ein Hook kann Daten vorverarbeiten, bevor Claude sie sieht. Statt 10.000 Zeilen Log zu lesen, grept ein Hook nach ERROR und liefert nur die Treffer — Zehntausende Tokens werden zu Hunderten. Beispiel: ein PreToolUse-Hook, der Test-Kommandos umschreibt, sodass nur Failures durchkommen.
CLI-Tools statt MCP
MCP-Tool-Definitionen sind standardmäßig deferred — nur die Namen landen im Kontext, das Schema erst bei Bedarf. Trotzdem sind gh, aws, gcloud oder sentry-cli weiterhin effizienter, weil sie gar keine Auflistung erzeugen. /mcp zeigt die konfigurierten Server; nicht genutzte abschalten.
Hebel 4: Weniger Rework produzieren
Die teuersten Tokens sind die für den falschen Weg.
- Plan Mode (Shift+Tab) bei unklarem Vorgehen: Claude erkundet und schlägt einen Ansatz vor, bevor implementiert wird. Bei klar umrissenen Kleinigkeiten — Typo, Log-Zeile, Rename — ist Plan Mode reiner Overhead.
- Früh korrigieren: Escape stoppt sofort,
/rewindoder Doppel-Escape setzt Konversation und Code auf einen Checkpoint zurück. - Verifizierbares Ziel mitgeben: Testfälle, Screenshot, erwarteter Output. Wenn Claude selbst prüfen kann, fängt es Fehler ab, bevor du sie meldest.
- Präzise formulieren: „verbessere diese Codebase" löst breites Scannen aus. „Füge Input-Validierung zur Login-Funktion in auth.ts hinzu" nicht.
- Nach zwei erfolglosen Korrekturen:
/clearund mit besserem Prompt neu starten. Der Kontext ist sonst voller gescheiterter Ansätze.
Hebel 5: teure Betriebsarten kennen
| Sache | Kostenwirkung |
|---|---|
| Agent Teams | ≈ 7 × mehr Tokens als eine normale Session, wenn Teammates im Plan Mode laufen — jeder Teammate hat ein eigenes Kontextfenster. Standardmäßig deaktiviert (CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1). |
| Scheduled Tasks | Feuern in ihrem Intervall, auch wenn die Session idle ist — und senden dabei den vollen Kontext. |
| Aktive Teammates | Verbrauchen Tokens, bis sie beendet werden oder die Session endet. |
/compact | Liest die Konversation, die es zusammenfasst — ist also selbst ein großer Request. /clear kostet nichts. |
| Hintergrundprozesse | Zusammenfassungen für claude --resume, Statusabfragen: typischerweise unter 0,04 $ pro Session. |
Checkliste
- Modell und Effort zu Beginn setzen, danach nicht mehr wechseln
/clearzwischen unzusammenhängenden Aufgaben — kostet nichts, spart alles- CLAUDE.md unter ~200 Zeilen; Spezialwissen in Skills auslagern
- Verbose Operationen an Subagents delegieren, Log-Output per Hook vorfiltern
- CLI-Tools statt MCP-Server, ungenutzte Server per
/mcpabschalten - Effort senken statt Thinking abschalten
- Plan Mode nur bei echter Unsicherheit
/rewindstatt/compact, wenn ein Weg verworfen wird/usageregelmäßig lesen — es benennt die Ursache selbst