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 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: ruf `claude --print --output-format json --include-partial-messages "echo"` oder das aktuelle Doc-Beispiel ab und schau, 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.

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/.
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 nicht im Hintergrund. Claude Code refresht die Statusline nur, wenn er gerade einen Turn beendet hat. Wenn du sehen willst, ob ein Reset schon gegriffen hat oder dein letzter Prompt eingerechnet ist — kurz /status reinschreiben, oder einfach den nächsten Prompt absetzen. Dann zieht er den State neu.
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."
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