Wo deine Tokens hin sind — und wann der Reset kommt.

Tokens sind nicht gratis und nicht endlos. Die Default-Statusline tut so. Diese hier zeigt dir, was vom 5-Stunden- und 7-Tage-Budget noch übrig ist, wie viele Tokens du schätzungsweise schon verbraucht hast, wann's resettet — und was die Session bisher gekostet hat. Eine Zeile, statt im Blindflug zu prompten.

Stand: Mai 2026 Aktualisiert: Juni 2026 Setup: ~2 Min Plattform: macOS · Linux · WSL Tools: Claude Code, jq, sh
Sonnet 4.6 | ctx 18% | feature/booking | morning-session[5h] [████░░░░░░░░░░░░░░░░] 20% (~40k/200k tokens) | reset in 2h15m @ 14:30 CEST | $1.23[7d] [██████░░░░░░░░░░░░░░] 30% (~600k/2M tokens) | resets Sun 09:00 CEST

↳ Sitzt fest unten im Terminal, in dem claude läuft. Bleibt dort, während du arbeitest. Mehr zu typischen Setups weiter unten.

01Was sie zeigt

Drei Zeilen, vier Sachen, die du sonst nicht siehst.

Die typische Frage nach zwei Stunden Arbeit: "Wo sind meine Tokens hin?" Default-Statusline beantwortet das nicht. Sie zeigt Modell und Kontext, das war's. Sobald du echt arbeitest, willst du wissen, wo dein Budget grade hingeht — vor dem Limit, vor dem Reset, vor der teuren Session.

Zeile 1
Modell · Kontext-Prozent · Git-Branch · Session-Name. Dimmt grau, weil es Status-Quo ist — wechselt nicht ständig, soll nicht ablenken.
Zeile 2 — [5h]
5-Stunden-Rate-Limit als Progress-Bar, plus geschätzter Token-Verbrauch gegen dein Plan-Budget, plus Countdown bis Reset mit Ortszeit, plus Session-Kosten. Akzentfarbe, weil das die Zeile ist, die dich rechtzeitig warnt.
Zeile 3 — [7d]
7-Tage-Rate-Limit als zweite Bar, gleicher Aufbau. Wichtig bei den Max-Plans, wo du nicht über den 5-Stunden-Reset wegkommst sondern über die Woche.
Heißt: du siehst in einer Zeile, ob's noch zwei Stunden geht oder ob du gerade in den Reset rasselst. Spart das blinde Weiterprompten kurz vor dem Limit.
Verwandt · Research Warum diese Limits eigentlich existieren. Wer sie gerade subventioniert und was passiert, wenn die Big Four ihre Investitionen zurückverdienen müssen: KI-Datenzentren-Ökonomie.
02Wo läuft das

Drei typische Setups. Egal welches du fährst — die Bar funktioniert.

Claude Code ist ein CLI-Tool — die Statusline lebt in der Shell, in der claude läuft. Die drei häufigsten Setups, die ich sehe:

Mein Setup
Editor mit integriertem Terminal
Antigravity, Cursor, VS Code, JetBrains-IDEs — Editor und Dateien oben, unten das Terminal-Panel, in dem claude läuft. Bar sitzt unten im Terminal-Panel, Chat und Code sieht man parallel.
Klassisch
Standalone-Terminal
iTerm2, Warp, Ghostty, macOS Terminal, Windows Terminal, gnome-terminal — eigenes Terminal-Fenster, sonst nichts. claude startet, Bar sitzt am Fenster-Boden. Minimaler Setup, häufigste Variante.
Power-User
tmux / screen-Panes
tmux oder GNU screen — eine Pane für claude, daneben Editor, Logs, weitere Shells. Bar sitzt am unteren Rand der claude-Pane, neben den tmux-Statusbars.
03Der Prompt

Den Block direkt ins Terminal pasten — fertig.

Du pastest den Prompt in das Terminal, in dem claude gerade läuft — also da, wo die Bar später auch erscheinen soll. Claude nimmt das wie einen normalen Auftrag entgegen, legt das Script unter ~/.claude/statusline-command.sh an, patcht deine ~/.claude/settings.json, und zeigt dir am Schluss einen Test-Run. Du musst nichts manuell anlegen. Clean-Variante ohne Emojis — wenn dir die Renn-Variante mehr Spaß macht, siehe Tweaks unten.

Prompt — Variante A (clean)
Bau mir eine Claude-Code-Statusline analog zu Max Fraunhofers Setup. Bevor du loslegst, drei Pre-Flight-Checks:

1. `jq` installiert? — `command -v jq` checken. Wenn nicht: zeig mir den passenden Install-Command (macOS: `brew install jq`, Debian/Ubuntu: `sudo apt install -y jq`, Fedora: `sudo dnf install jq`, Arch: `sudo pacman -S jq`, Windows: `scoop install jq`) und frag, ob du's für mich ausführen sollst.

2. Frag mich nach meinem Claude-Plan, um die Token-Budgets zu setzen. Schlag mir diese Werte vor und lass mich wählen (Default: Max 5x, weil das meistens stimmt):
   - Pro:    TOKEN_BUDGET=50000,  WEEKLY_TOKEN_BUDGET=null  (Pro hat kein Wochen-Limit, dann zweite Bar weglassen)
   - Max 5x: TOKEN_BUDGET=200000, WEEKLY_TOKEN_BUDGET=2000000
   - Max 20x: TOKEN_BUDGET=800000, WEEKLY_TOKEN_BUDGET=8000000
   Wenn ich's nicht weiss: Default setzen und einen Kommentar im Script lassen, wo ich's später anpasse.

3. Statusline-JSON-Schema checken: das aktuelle Doc-Beispiel unter `code.claude.com/docs/en/statusline` abrufen und schauen, ob die Felder `rate_limits.five_hour`/`seven_day` und `context_window` drin sind. Wenn nicht: kurz warnen, dass meine Claude-Code-Version eventuell zu alt ist — Script läuft trotzdem, zeigt nur weniger. (Hinweis: Anthropic empfiehlt inzwischen den `/statusline`-Befehl direkt in Claude Code, der das Script generiert und die settings.json patcht. Wir bauen hier bewusst von Hand, damit alles nachvollziehbar bleibt — `claude --print --output-format json …` funktioniert evtl. noch zum Schema-Inspizieren, ist aber nicht mehr der dokumentierte Weg.)

Dann zum Bau. Zwei Zeilen Output:

Zeile 1 (dim, grau): model | ctx XX% | git-branch | session-name
Zeile 2+3 (Akzentfarbe, RGB konfigurierbar): zwei Rate-Limit-Bars
  [5h] [████░░░░░░░░░░░░░░░░] 20% (~40k/200k tokens) | reset in 2h15m @ 14:30 CEST | $1.23
  [7d] [██████░░░░░░░░░░░░░░] 30% (~600k/2M tokens) | resets Sun 09:00 CEST

Spec:
- Datei: ~/.claude/statusline-command.sh, ausführbar, shebang /bin/sh (POSIX, kein bash-ismus).
- Liest JSON von stdin via jq. Felder: .model.display_name, .context_window.used_percentage,
  .workspace.current_dir, .worktree.branch, .session_name, .rate_limits.five_hour.{used_percentage,resets_at},
  .rate_limits.seven_day.{used_percentage,resets_at}, .cost.total_cost_usd.
- Konstanten am Datei-Anfang: TOKEN_BUDGET, WEEKLY_TOKEN_BUDGET (aus Pre-Flight 2), ACCENT_RGB="213;0;28".
- Progress-Bar: 20 Zellen breit, ausschliesslich █ und ░ (KEINE Emojis, KEINE Auto-Icons).
- Token-Schaetzung: pct/100 * Budget, mit k/M-Suffix.
- Reset-Strings in TZ=Europe/Berlin, mit `date -r` (macOS) UND `date -d "@ts"` (Linux) als Fallback.
- Labels [5h] und [7d] fix in eckigen Klammern, damit beide Bars vertikal aligned sind.
- ANSI: \033[2m fuer dim, \033[38;2;${ACCENT_RGB}m fuer Akzent, \033[0m reset.
- Wenn ein Wert fehlt: Zeile/Segment skippen, nicht crashen.

Danach patche ~/.claude/settings.json:
  "statusLine": { "type": "command", "command": "sh /Users/<user>/.claude/statusline-command.sh" }

(Pfad mit `echo $HOME` ermitteln, nicht hardcoden.)

Zeig mir am Schluss einen Test-Run mit Dummy-JSON, damit ich sehe wie es rendert.
Tipp: Wenn dein Editor den Prompt mit Smart-Quotes verbiegt, vorher in Plain-Text-Editor zwischenparken. Die `backticks` und ${...} müssen exakt stehen bleiben.
04Settings-Patch

Was Claude da in deine settings.json schreibt — kurz erklärt.

Der zweite Teil des Prompts patcht ~/.claude/settings.json. Falls du die schon hast und das selbst kontrollieren willst, ist das der Eintrag:

settings.json — der eine Block, der reinmuss
{
  "statusLine": {
    "type": "command",
    "command": "sh /Users/DEIN-USER/.claude/statusline-command.sh"
  }
}
Pfad: DEIN-USER ist dein Home-Verzeichnis-Name. Im Terminal echo $HOME tippen, das ist der Pfad bis zu /.claude/. Auf Windows-WSL liegt das unter /home/dein-user/.claude/.
Drei optionale Felder im selben Block Neben type und command kennt statusLine noch drei optionale Keys:
  • "refreshInterval": 10 — lässt das Script alle N Sekunden zusätzlich zu den Event-Updates laufen. Praktisch hier, weil unsere Bar zeitbasierte Sachen zeigt (Reset-Countdown, Ortszeit): ohne Timer friert die Countdown-Anzeige ein, solange du nichts promptest. Minimum ist 1. Weglassen = nur bei Events.
  • "padding": 2 — extra horizontaler Abstand in Zeichen, zusätzlich zum eingebauten. Default 0.
  • "hideVimModeIndicator": true — unterdrückt das eingebaute -- INSERT --, falls dein Script den Vim-Modus selbst rendert. Für diese Bar irrelevant.
Claude Code ruft dieses Script bei jedem Statusline-Refresh auf, pipet seinen State als JSON in stdin rein, und rendert was rauskommt. Erstes Erscheinen: in der Terminal-Session, in der du den Prompt abgesetzt hast, ist die Bar meist sofort da. In neuen Terminals einfach claude neu starten — dann sitzt sie unten und bleibt dort, während du arbeitest.
Eine Sache, die einen kurz wundern lässt: die Bars updaten primär event-getrieben, nicht laufend im Hintergrund. Claude Code refresht die Statusline nach jeder neuen Assistant-Antwort, nachdem /compact durchgelaufen ist, bei Modus-Wechseln (Permission-Mode) und beim Vim-Mode-Toggle (300 ms debounced). Heißt: solange du nichts tust, friert der Reset-Countdown ein. Wenn du sehen willst, ob ein Reset schon gegriffen hat oder dein letzter Prompt eingerechnet ist — kurz /status reinschreiben oder den nächsten Prompt absetzen. Dann zieht er den State neu. Wer den Countdown auch im Leerlauf live haben will, setzt "refreshInterval" (siehe oben) — dann läuft das Script zusätzlich auf festem Timer.
Verwandt: es gibt seit Kurzem auch subagentStatusLine — eine eigene Statusline für die Subagent-Zeilen im Agent-Panel unter dem Prompt. Funktioniert nach demselben Prinzip (JSON auf stdin, dein Script rendert die Zeile), bekommt aber pro Refresh alle sichtbaren Subagent-Tasks als Array übergeben. Falls du viel mit Background-Subagents arbeitest und deren Token-Verbrauch eigen formatieren willst, lohnt ein Blick in dieselben Docs.
05Was du tweaken kannst

Drei Konstanten oben im Script — der Rest ist Geschmack.

Wenn die Bars zum ersten Mal stehen, sind das die Sachen, die man am ehesten anfasst.

TOKEN_BUDGET=200000
Dein 5h-Token-Budget je nach Plan. Max 5× ~ 200000. Pro plan ~50000. Wenn du nicht weißt, was du hast — eine Stunde arbeiten, schauen wo die Bar landet, Wert kalibrieren.
WEEKLY_TOKEN_BUDGET=2000000
7-Tage-Budget. Max 5× ~ 2 Mio Tokens pro Woche. Falls Claude dir das 7-Tage-Limit gar nicht durchreicht, kommentier die zweite Zeile aus — passiert wenn dein Plan keinen wöchentlichen Cap hat.
ACCENT_RGB="213;0;28"
Akzentfarbe der Bars in RGB. Default hier ist Porsche-Rot (passt zu meinem Setup). Für andere Lookalikes: VS Code Blau "0;120;212", Solarized Magenta "211;54;130", GitHub Grün "35;134;54".
Renn-Variante
Wenn dir's zu nüchtern ist: Bar mit Auto + Staubwolke + Zielflagge. Im Script die build_bar()-Funktion austauschen — letzter Block 🏎 schiebt sich von links nach rechts, 💨 als Trail dahinter, bei 100% kommen 🏁🏆. Klingt albern, ist beim Arbeiten ehrlich nice — meine läuft so. Sag Claude einfach: "Bau die Bar wie die clean-Variante, aber mit Auto-Trail und Zielflagge."
Zu den Budget-Zahlen: die 200000/2000000 oben sind Beispielwerte für Max 5×. Mein eigenes Script läuft mit TOKEN_BUDGET=800000 und WEEKLY_TOKEN_BUDGET=8000000 (Max 20×, grob 4× von Max 5×). Wichtig: Anthropic veröffentlicht die exakten Token-Caps pro Plan nicht offiziell — die Werte sind kalibrierte Schätzungen, und in Peak-Zeiten kann zusätzlich gedrosselt werden. Behandle die Bar als Tendenz, nicht als Tacho. Kalibrieren statt raten: eine Stunde arbeiten, schauen, wo die Bar gegen den tatsächlichen Reset landet, Wert nachziehen.
Punchline

Deine Tokens sind teuer. Behandel sie auch so.

Default-Statusline sagt "Claude läuft". Diese hier macht aus "wo sind meine Tokens hin?" ein "noch 60 Minuten bis Reset, ich kann noch zwei PRs ziehen."

Zwei Minuten Setup. Danach hörst du auf, blind ins Limit zu rauschen.

Quellen + Weiterlesen