- Die Kontextfensternutzung während der Arbeit überwachen möchten
- Sitzungskosten verfolgen müssen
- Über mehrere Sitzungen hinweg arbeiten und diese unterscheiden müssen
- Git-Branch und Status immer sichtbar haben möchten
esc zum Unterbrechen, des ? für Verknüpfungen Fallbacks und des Leertaste halten zum Sprechen Sprachdiktierhinweises. Um anklickbare Link-Abzeichen in der Fußzeile hinzuzufügen, wenn eine ID im Gespräch angezeigt wird, ohne ein Skript zu schreiben, konfigurieren Sie stattdessen footerLinksRegexes.
Hier ist ein Beispiel einer mehrzeiligen Statuszeile, die Git-Informationen in der ersten Zeile und einen farbcodierten Kontextbalken in der zweiten Zeile anzeigt.

Richten Sie eine Statuszeile ein
Verwenden Sie den/statusline Befehl, um Claude Code ein Skript für Sie generieren zu lassen, oder erstellen Sie manuell ein Skript und fügen Sie es zu Ihren Einstellungen hinzu.
Verwenden Sie den /statusline Befehl
Der/statusline Befehl akzeptiert Anweisungen in natürlicher Sprache, die beschreiben, was Sie angezeigt haben möchten. Claude Code generiert eine Skriptdatei in ~/.claude/ und aktualisiert Ihre Einstellungen automatisch:
Statuszeile manuell konfigurieren
Fügen Sie einstatusLine Feld zu Ihren Benutzereinstellungen (~/.claude/settings.json, wobei ~ Ihr Heimatverzeichnis ist) oder Projekteinstellungen hinzu. Setzen Sie type auf "command" und verweisen Sie command auf einen Skriptpfad oder einen Inline-Shell-Befehl. Eine vollständige Anleitung zum Erstellen eines Skripts finden Sie unter Erstellen Sie eine Statuszeile Schritt für Schritt.
command Feld wird in einer Shell ausgeführt, sodass Sie auch Inline-Befehle anstelle einer Skriptdatei verwenden können. Dieses Beispiel verwendet jq, um die JSON-Eingabe zu analysieren und den Modellnamen und den Kontextprozentsatz anzuzeigen:
padding Feld fügt zusätzlichen horizontalen Abstand (in Zeichen) zum Inhalt der Statuszeile hinzu. Standardmäßig 0. Dieser Abstand wird zusätzlich zum integrierten Abstand der Benutzeroberfläche hinzugefügt, sodass er die relative Einrückung steuert, anstatt den absoluten Abstand vom Terminalrand.
Das optionale refreshInterval Feld führt Ihren Befehl zusätzlich zu den ereignisgesteuerten Aktualisierungen alle N Sekunden erneut aus. Das Minimum ist 1. Setzen Sie dies, wenn Ihre Statuszeile zeitbasierte Daten wie eine Uhr anzeigt, oder wenn Hintergrund-Subagenten den Git-Status ändern, während die Hauptsitzung untätig ist. Lassen Sie es ungesetzt, um nur bei Ereignissen auszuführen.
Das optionale hideVimModeIndicator Feld unterdrückt den integrierten -- INSERT -- Text unter der Eingabeaufforderung. Setzen Sie dies auf true, wenn Ihr Skript vim.mode selbst rendert, sodass der Modus nicht zweimal angezeigt wird.
Deaktivieren Sie die Statuszeile
Führen Sie/statusline aus und bitten Sie es, Ihre Statuszeile zu entfernen oder zu löschen (z. B. /statusline delete, /statusline clear, /statusline remove it). Sie können auch das statusLine Feld manuell aus Ihrer settings.json löschen.
Erstellen Sie eine Statuszeile Schritt für Schritt
Diese Anleitung zeigt, was/statusline für Sie einrichtet, indem Sie manuell eine Statuszeile erstellen, die das aktuelle Modell, das Arbeitsverzeichnis und den Prozentsatz der Kontextfensternutzung anzeigt.
Das Ausführen von
/statusline mit einer Beschreibung dessen, was Sie möchten, konfiguriert all dies automatisch für Sie.
1
Erstellen Sie ein Skript, das JSON liest und Ausgabe druckt
Claude Code sendet JSON-Daten über stdin an Ihr Skript. Dieses Skript verwendet
jq, einen Befehlszeilen-JSON-Parser, den Sie möglicherweise installieren müssen, um den Modellnamen, das Verzeichnis und den Kontextprozentsatz zu extrahieren, und druckt dann eine formatierte Zeile.Speichern Sie dies unter ~/.claude/statusline.sh (wobei ~ Ihr Heimatverzeichnis ist, z. B. /Users/username auf macOS oder /home/username auf Linux):2
Machen Sie es ausführbar
Markieren Sie das Skript als ausführbar, damit Ihre Shell es ausführen kann:
3
Zu Einstellungen hinzufügen
Teilen Sie Claude Code mit, dass es Ihr Skript als Statuszeile ausführen soll. Fügen Sie diese Konfiguration zu Ihre Statuszeile wird am unteren Rand der Benutzeroberfläche angezeigt. Claude Code lädt Einstellungen automatisch neu und führt Ihr Skript aus, sobald Sie die Datei speichern.
~/.claude/settings.json hinzu, die type auf "command" setzt (was bedeutet „diesen Shell-Befehl ausführen“) und command auf Ihr Skript verweist:Wie Statuszeilen funktionieren
Claude Code führt Ihr Skript mit JSON-Sitzungsdaten auf stdin aus und zeigt alles an, was das Skript auf stdout ausgibt.Die Statuszeile wird lokal ausgeführt und verbraucht keine API-Token. Sie wird bei bestimmten UI-Interaktionen vorübergehend ausgeblendet, darunter das Hilfemenü und Berechtigungsabfragen.
Wann die Statuszeile aktualisiert wird
Ihr Skript wird einmal ausgeführt, wenn eine Sitzung startet, auch wenn Sie eine Sitzung fortsetzen. Danach wird es erneut ausgeführt, wenn:- Eine neue Assistentennachricht eintrifft
/compactabgeschlossen ist- Sich der Berechtigungsmodus ändert
- Der Vim-Modus umgeschaltet wird
- Sie den
commandin IhrenstatusLine-Einstellungen ändern - Ein
refreshInterval-Timer abläuft, sofern Sie einen festgelegt haben - Ein Rate-Limit-Zeitfenster in den zuletzt von Ihrem Skript empfangenen Daten seinen
resets_at-Zeitpunkt erreicht - Ein warmer Prompt-Cache in den zuletzt von Ihrem Skript empfangenen Daten seinen
expires_at-Zeitpunkt erreicht
command selbst überspringt die Entprellung: Claude Code führt den neuen Befehl sofort aus. Wenn eine neue Aktualisierung ausgelöst wird, während Ihr Skript noch läuft, bricht Claude Code das laufende Skript ab. Wenn Sie Ihr Skript bearbeiten, erscheinen die Änderungen beim nächsten Mal, wenn ein Aktualisierungsauslöser es erneut ausführt.
Die ereignisgesteuerten Auslöser können ausbleiben, wenn die Hauptsitzung inaktiv ist, zum Beispiel während ein Koordinator auf Subagenten im Hintergrund wartet. Um zeitbasierte oder extern bezogene Segmente auch in Leerlaufphasen aktuell zu halten, setzen Sie refreshInterval, damit der Befehl zusätzlich in einem festen Intervall erneut ausgeführt wird.
Was Ihr Skript ausgeben kann
Ihr Skript kann mehr als eine einzelne Zeile einfachen Texts ausgeben:- Mehrere Zeilen: Jede
echo- oderprint-Anweisung wird als separate Zeile angezeigt. Siehe das Beispiel mit mehreren Zeilen. - Farben: Verwenden Sie ANSI-Escape-Codes wie
\033[32mfür Grün (das Terminal muss diese unterstützen). Siehe das Git-Status-Beispiel. - Links: Verwenden Sie OSC-8-Escape-Sequenzen, um Text anklickbar zu machen (Cmd+Klick unter macOS, Ctrl+Klick unter Windows/Linux). Erfordert ein Terminal, das Hyperlinks unterstützt, wie iTerm2, Kitty oder WezTerm. Siehe das Beispiel für anklickbare Links.
Ausgabe an die Terminalgröße anpassen
Claude Code erfasst die Ausgabe Ihres Skripts, anstatt sie direkt mit dem Terminal zu verbinden, daher könnentput cols und die Breitenerkennung auf Sprachebene die Terminalgröße nicht aus dem Skript heraus auslesen. Lesen Sie stattdessen die Umgebungsvariablen COLUMNS und LINES. Claude Code setzt diese auf die aktuellen Terminalabmessungen, bevor Ihr Skript ausgeführt wird.
Verfügbare Daten
Claude Code sendet die folgenden JSON-Felder über stdin an Ihr Skript:Vollständiges JSON-Schema
Vollständiges JSON-Schema
Ihr Statuszeilen-Befehl erhält diese JSON-Struktur über stdin:Felder, die fehlen können (nicht im JSON vorhanden):
session_name: erscheint, wenn ein benutzerdefinierter Name mit--nameoder/renamefestgelegt wurde oder sobald ein KI-generierter Sitzungstitel existiert. Der Standard-Anzeigename, etwamy-app-3f, befüllt es nichtprompt_id: erscheint erst nach der ersten Benutzereingabeworkspace.git_worktree: erscheint nur, wenn sich das aktuelle Verzeichnis in einem verknüpften Git-Worktree befindetworkspace.repo: erscheint nur innerhalb eines Git-Repositorys mit konfiguriertem Remoteorigineffort: erscheint nur, wenn das aktuelle Modell den Parameter für den Reasoning-Aufwand unterstütztvim: erscheint nur, wenn der Vim-Modus aktiviert istagent: erscheint nur bei Ausführung mit dem Flag--agentoder bei konfigurierten Agenteneinstellungenpr: erscheint nur, solange für den aktuellen Branch ein offener PR oder GitLab Merge Request gefunden wird, und wird entfernt, sobald dieser gemergt oder geschlossen wird.pr.review_stateundpr.kindkönnen unabhängig fehlenworktree: erscheint nur, solange sich die Sitzung in einer Worktree-Sitzung befindet. Wenn vorhanden, könnenbranchundoriginal_branchbei Hook-basierten Worktrees ebenfalls fehlenrate_limits: erscheint nur für Abonnenten von claude.ai Pro, Max und Ultra oder hinter einem Claude-Apps-Gateway, das ein Ausgabenlimit für Sie festlegt. Selbst dann erscheint es erst nach der ersten API-Antwort in der Sitzung. Jedes Fenster (five_hour,seven_day,spend_limit) kann unabhängig fehlen, und Claude Code entfernt ein Fenster, sobald dessenresets_at-Zeitpunkt verstrichen ist. Verwenden Siejq -r '.rate_limits.five_hour.used_percentage // empty', um fehlende Werte sauber zu behandeln.prompt_cache: erscheint nach der ersten API-Antwort der Hauptkonversation. Siehe Felder des Prompt-Caches
null sein können:context_window.current_usage:nullvor dem ersten API-Aufruf in einer Sitzung und erneut nach/compact, bis der nächste API-Aufruf es wieder befülltcontext_window.used_percentage,context_window.remaining_percentage: können früh in der Sitzungnullsein
null-Werte mit Fallback-Standardwerten.Felder des Kontextfensters
Das Objektcontext_window beschreibt das aktuelle Kontextfenster aus der letzten API-Antwort.
- Kombinierte Summen (
total_input_tokens,total_output_tokens): Token, die sich aktuell im Kontextfenster befinden.total_input_tokensist die Summe ausinput_tokens,cache_creation_input_tokensundcache_read_input_tokens;total_output_tokenssind die Ausgabe-Token aus der letzten Antwort. Beide sind vor der ersten API-Antwort0. - Nutzung pro Komponente (
current_usage): dieselben Token-Anzahlen, aufgeschlüsselt nach Kategorie. Verwenden Sie dies, wenn Sie Cache-Treffer getrennt von neuer Eingabe benötigen.
current_usage enthält:
input_tokens: Eingabe-Token im aktuellen Kontextoutput_tokens: generierte Ausgabe-Tokencache_creation_input_tokens: in den Cache geschriebene Tokencache_read_input_tokens: aus dem Cache gelesene Token
used_percentage wird ausschließlich aus Eingabe-Token berechnet: input_tokens + cache_creation_input_tokens + cache_read_input_tokens. Es enthält keine output_tokens.
Wenn Sie den Kontext-Prozentsatz manuell aus current_usage berechnen, verwenden Sie dieselbe Formel, die nur Eingabe-Token berücksichtigt, damit der Wert mit used_percentage übereinstimmt.
Das Objekt current_usage ist vor dem ersten API-Aufruf in einer Sitzung null und erneut unmittelbar nach /compact, bis der nächste API-Aufruf es wieder befüllt.
Felder des Ausgabenlimits
Hinter einem Claude-Apps-Gateway mit Ausgabenlimits beschreibt das Objektrate_limits.spend_limit das Ausgabenlimit, das für Sie gilt. Es erscheint nach der ersten API-Antwort der Sitzung und erfordert Claude Code v2.1.251 oder höher. Ihr Skript erhält seine Felder in unterschiedlichen Intervallen:
used_percentageundresets_at: werden mit jeder Antwort geliefert und sind daher immer vorhanden, wennspend_limitvorhanden ist.used_percentagereicht von 0 bis 100 oder liegt über 100, sobald Sie das Limit überschreiten, undresets_atgibt die Unix-Epoch-Sekunden an, zu denen der Zeitraum des Limits zurückgesetzt wird.used_usd,limit_usdundperiod: Ihre bisherigen geschätzten Ausgaben und Ihr Limit in US-Dollar sowie der Zeitraum, den das Limit abdeckt, einer der Wertedaily,weeklyodermonthly. Das Gateway berechnetused_usdaus Token-Anzahlen, daher handelt es sich um eine Schätzung und nicht um einen abgerechneten Betrag. Claude Code liest diese Werte in einer separaten Anfrage vom Gateway, etwa alle fünf Minuten, während Sie Anfragen senden. Die Dollarbeträge können etwa fünf Minuten älter sein alsused_percentage, sodass die beiden Werte kurzzeitig voneinander abweichen können. Erfordert v2.1.284 oder höher sowohl bei Claude Code als auch beim Gateway.
used_usd, limit_usd und period als optional, auch wenn spend_limit vorhanden ist, da Ihr Skript den Prozentsatz vor ihnen erhält. Lesen Sie jedes dieser Felder in Ihrem Skript mit einem Fallback, etwa jq -r '.rate_limits.spend_limit.used_usd // empty'. Vor Claude Code v2.1.295 fehlten sie dauerhaft, wenn Sie CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC gesetzt hatten, da dadurch diese Anfrage deaktiviert wurde.
Felder des Prompt-Caches
Das Objektprompt_cache fasst zusammen, wie die Hauptkonversation der Sitzung den Prompt-Cache nutzt. Claude Code berechnet es aus den Cache-Token-Anzahlen in den Antworten der API, daher funktioniert es bei jedem Anbieter.
Das Objekt erscheint nach der ersten API-Antwort der Hauptkonversation. Claude Code zählt Anfragen von Subagenten nicht in diese Statistiken ein. Erfordert Claude Code v2.1.251 oder höher.
Die Tabelle listet jedes Feld mit seiner Bedeutung auf. Zeitstempel sind Unix-Epoch-Sekunden, dieselbe Einheit wie bei rate_limits.*.resets_at. Eine kurze Statuszeile zeigt in der Regel ein oder zwei dieser Felder an; warm und hit_ratio fassen den Cache-Zustand am direktesten zusammen.
Claude Code zeigt dieselben Statistiken im Terminal an, in der Zeile
Prompt cache (main) des Befehls /usage.
Ursache des letzten Misses
Das Objektlast_miss_cause gibt an, was Claude Code als wahrscheinliche Ursache des letzten Misses ermittelt hat. Sein Array causes enthält einen oder mehrere Ursachennamen, etwa tools_changed, system_prompt_changed, ttl_expired_5m oder likely_server_side. Das Objekt ist bis zum ersten Miss der Sitzung null und erneut immer dann, wenn Claude Code keine Ursache für den letzten Miss ermitteln konnte. Erfordert Claude Code v2.1.260 oder höher.
Zwei Ursachen fügen dem Objekt Zählwerte hinzu:
tools_addedundtools_removed: beitools_changed, wie viele Tools der Anfrage hinzugefügt oder aus ihr entfernt wurdensystem_char_delta: beisystem_prompt_changed, die Änderung der Länge des System-Prompts in Zeichen
Beispiele
Diese Beispiele zeigen häufige Statuszeilen-Muster. Um ein Beispiel zu verwenden:- Speichern Sie das Skript in einer Datei wie
~/.claude/statusline.sh(oder.py/.js) - Machen Sie es ausführbar:
chmod +x ~/.claude/statusline.sh - Fügen Sie den Pfad zu Ihren Einstellungen hinzu
jq zum Analysieren von JSON. Python und Node.js haben integriertes JSON-Parsing.
Kontextfensternutzung
Zeigen Sie das aktuelle Modell und die Kontextfensternutzung mit einem visuellen Fortschrittsbalken an. Jedes Skript liest JSON von stdin, extrahiert dasused_percentage Feld und erstellt einen 10-Zeichen-Balken, wobei gefüllte Blöcke (▓) die Nutzung darstellen:

Git-Status mit Farben
Zeigen Sie Git-Branch mit farbcodierten Indikatoren für bereitgestellte und geänderte Dateien an. Dieses Skript verwendet ANSI-Escape-Codes für Terminalfarben:\033[32m ist Grün, \033[33m ist Gelb und \033[0m setzt auf Standard zurück.

Kosten- und Dauer-Verfolgung
Verfolgen Sie die API-Kosten und verstrichene Zeit Ihrer Sitzung. Dascost.total_cost_usd Feld sammelt die geschätzten Kosten aller API-Aufrufe in der aktuellen Sitzung. Das cost.total_duration_ms Feld misst die Gesamtverstrichene Zeit seit Sitzungsbeginn, während cost.total_api_duration_ms nur die Zeit verfolgt, die auf API-Antworten wartet.
Jedes Skript formatiert Kosten als Währung und konvertiert Millisekunden in Minuten und Sekunden:

Mehrere Zeilen anzeigen
Ihr Skript kann mehrere Zeilen ausgeben, um eine reichhaltigere Anzeige zu erstellen.
print oder echo Anweisung erstellt eine separate Zeile:
Anklickbare Links
Dieses Beispiel erstellt einen anklickbaren Link zu Ihrem GitHub-Repository. Halten Sie Cmd (macOS) oder Strg (Windows/Linux) gedrückt und klicken Sie, um den Link in Ihrem Browser zu öffnen.
printf '%b', das Backslash-Escapes zuverlässiger interpretiert als echo -e über verschiedene Shells hinweg:
Ratenlimit-Nutzung
Zeigen Sie die Rate-Limit-Nutzung Ihres claude.ai-Abonnements oder Ihre Ausgaben im Verhältnis zum Ausgabenlimit eines Claude-Apps-Gateways in der Statuszeile an. Für Abonnenten kann dasrate_limits-Objekt ein rollierendes five_hour-Fenster und ein wöchentliches seven_day-Fenster enthalten. Jedes Fenster bietet used_percentage von 0 bis 100 und resets_at, die Unix-Epochensekunden, zu denen das Fenster zurückgesetzt wird. Hinter einem Gateway lesen Sie das spend_limit-Objekt aus, das unter Felder für Ausgabenlimits beschrieben ist.
Das rate_limits-Objekt ist nur für claude.ai Pro-, Max- und Ultra-Abonnenten oder hinter einem Claude-Apps-Gateway mit Ausgabenlimits vorhanden, und zwar erst nach der ersten API-Antwort. Jedes Skript behandelt die fehlenden Felder problemlos und gibt hinter einem Gateway spend: $314.12 / $500 aus, oder spend: 63%, solange die Dollar-Felder fehlen:
Teure Operationen zwischenspeichern
Ihr Statuszeilen-Skript wird während aktiver Sitzungen häufig ausgeführt. Befehle wiegit status oder git diff können langsam sein, besonders in großen Repositories. Dieses Beispiel speichert Git-Informationen in einer temporären Datei und aktualisiert sie nur alle 5 Sekunden.
Der Cache-Dateiname muss über Statuszeilen-Invokationen innerhalb einer Sitzung stabil sein, aber eindeutig über Sitzungen hinweg, damit gleichzeitige Sitzungen in verschiedenen Repositories nicht den Cache-Git-Status des anderen lesen. Prozessbasierte Identifikatoren wie $$, os.getpid() oder process.pid ändern sich bei jeder Invokation und besiegen den Cache. Verwenden Sie stattdessen die session_id aus der JSON-Eingabe: Sie ist stabil für die Lebensdauer einer Sitzung und eindeutig pro Sitzung.
Jedes Skript prüft, ob die Cache-Datei fehlt oder älter als 5 Sekunden ist, bevor Git-Befehle ausgeführt werden:
Windows-Konfiguration
Unter Windows führt Claude Code Statuszeilen-Befehle über Git Bash aus, wenn Git Bash installiert ist, oder über PowerShell, wenn Git Bash nicht vorhanden ist. Git Bash behandelt unquotierte Backslashes als Escape-Zeichen, daher erreicht ein Windows-Pfad wieC:\Users\username\script.mjs den Skript-Runner mit entfernten Trennzeichen und der Befehl schlägt ohne sichtbaren Fehler fehl. Schreiben Sie Dateipfade in der command Zeichenkette mit Schrägstrichen, wie in den folgenden Beispielen gezeigt. Die ~ Abkürzung funktioniert auch und wird zu Ihrem Windows-Basisverzeichnis erweitert.
Um ein PowerShell-Skript als Statuszeile auszuführen, rufen Sie es über powershell auf. Dies funktioniert, ob Claude Code den Befehl über Git Bash oder PowerShell leitet:
Tipps
- Mit Mock-Eingabe testen:
echo '{"model":{"display_name":"Opus"},"workspace":{"current_dir":"/home/user/project"},"context_window":{"used_percentage":25},"session_id":"test-session-abc"}' | ./statusline.sh - Ausgabe kurz halten: Die Statusleiste hat begrenzte Breite, daher kann lange Ausgabe abgeschnitten oder unangenehm umgebrochen werden
- Langsame Operationen zwischenspeichern: Ihr Skript wird während aktiver Sitzungen häufig ausgeführt, daher können Befehle wie
git statuszu Verzögerungen führen. Siehe das Caching-Beispiel für die Handhabung.
Fehlerbehebung
Wenn die Statuszeile leer ist, beginnen Sie mit Statuszeile wird nicht angezeigt. Auch ein Ordner, dem Sie nicht vertraut haben, und ein fehlschlagendes Skript führen dazu, dass sie leer bleibt, wie in Workspace-Vertrauen erforderlich und Skriptfehler oder Hängen beschrieben.Statuszeile wird nicht angezeigt
Wenn Sie eine Statuszeile konfiguriert haben und am unteren Rand der Oberfläche nichts angezeigt wird, gehen Sie diese Prüfungen durch:- Überprüfen Sie, dass Ihr Skript ausführbar ist:
chmod +x ~/.claude/statusline.sh - Überprüfen Sie, dass Ihr Skript auf stdout ausgibt, nicht auf stderr
- Führen Sie Ihr Skript manuell aus, um zu überprüfen, dass es Ausgabe erzeugt
- Unter Windows mit installiertem Git Bash werden Backslashes im
command-Pfad wahrscheinlich als Escape-Zeichen verarbeitet, bevor das Skript ausgeführt wird. Verwenden Sie Schrägstriche im Pfad. Siehe Windows-Konfiguration. - Wenn
disableAllHooksnach Anwendung des Vorrangs der Einstellungen außerhalb verwalteter Einstellungen auftruegesetzt ist, führt Claude Code nur einestatusLineaus verwalteten Einstellungen aus, und ohne verwaltetestatusLineist die Statuszeile deaktiviert. Entfernen Sie die Einstellung oder setzen Sie sie auffalsein der Datei, die sie setzt, um sie erneut zu aktivieren. SiehedisableAllHooks. - Wenn Ihre Organisation
allowManagedHooksOnlyin verwalteten Einstellungen setzt, verschwindet Ihre benutzerdefinierte Statuszeile ohne Warnung: Sie können nur eine Statuszeile aus einemstatusLine-Wert in diesen verwalteten Einstellungen erhalten. Siehe was unterallowManagedHooksOnlyausgeführt wird für das vollständige Verhalten, und fragen Sie Ihren Administrator, ob diese Einstellung für Sie gilt. - Führen Sie
claude --debugaus, um den stderr Ihres Skripts bei jeder Statuszeilen-Invokation zu protokollieren, und seinen Exit-Code bei der ersten Invokation in einer Sitzung - Bitten Sie Claude, Ihre Einstellungsdatei zu lesen und den
statusLine-Befehl direkt auszuführen, um Fehler zu finden
Statuszeile zeigt -- oder leere Werte
Felder können null sein, bevor die erste API-Antwort abgeschlossen ist. Behandeln Sie Null-Werte in Ihrem Skript daher mit Fallbacks wie // 0 in jq. Starten Sie Claude Code neu, wenn Werte nach mehreren Nachrichten leer bleiben.
Kontextprozentsatz zeigt unerwartete Werte
Die Statuszeile meldet die Zählungen aus der letzten API-Antwort, während/context eine Schätzung für seit dieser Antwort hinzugefügte Nachrichten hinzufügt, sodass /context bis zur nächsten Antwort höher angezeigt werden kann. Verwenden Sie used_percentage für den einfachsten genauen Kontextzustand. Die Formel hinter used_percentage finden Sie unter Kontextfenster-Felder.
OSC 8-Links nicht anklickbar
Ob ein Link anklickbar ist, hängt von Ihrem Terminal ab, davon, ob Claude Code darin Hyperlink-Unterstützung erkennt, ob SSH oder tmux die Escape-Sequenz entfernt, und davon, wie Ihr Skript sie ausgibt:- Überprüfen Sie, dass Ihr Terminal OSC 8-Hyperlinks unterstützt (iTerm2, Kitty, WezTerm)
- Terminal.app unterstützt keine anklickbaren Links
-
Wenn Link-Text angezeigt wird, aber nicht anklickbar ist, hat Claude Code möglicherweise keine Hyperlink-Unterstützung in Ihrem Terminal erkannt. Setzen Sie die
FORCE_HYPERLINK-Umgebungsvariable, um die Erkennung zu überschreiben, bevor Sie Claude Code starten:In PowerShell setzen Sie die Variable zuerst in der aktuellen Sitzung: - SSH- und tmux-Sitzungen können OSC-Sequenzen je nach Konfiguration entfernen
-
Wenn Escape-Sequenzen als Literaltext wie
\e]8;;angezeigt werden, verwenden Sieprintf '%b'anstelle vonecho -efür zuverlässigere Escape-Behandlung
Anzeigeglitches mit Escape-Sequenzen
Komplexe Escape-Sequenzen (ANSI-Farben, OSC 8-Links) können gelegentlich zu beschädigter Ausgabe führen, wenn sie mit anderen UI-Aktualisierungen überlappen. Mehrzeilige Statuszeilen mit Escape-Codes sind anfälliger für Rendering-Probleme als einzeilige einfache Texte. Wenn Sie beschädigten Text sehen, versuchen Sie, Ihr Skript auf einfache Textausgabe zu vereinfachen.Workspace-Vertrauen erforderlich
Bis Sie den Workspace-Vertrauensdialog akzeptieren, bleibt die Statuszeile leer. DastatusLine einen Shell-Befehl ausführt, führt Claude Code ihn unter der gleichen Workspace-Vertrauensregel wie Hooks in Einstellungsdateien aus. Das Akzeptieren des Dialogs für den Ordner oder für ein übergeordnetes Verzeichnis, dessen Vertrauen sich auf ihn erstreckt, ist ausreichend.
Bis dahin protokolliert claude --debug Status line command skipped: workspace trust not accepted. Starten Sie Claude Code neu und akzeptieren Sie den Vertrauensdialog, um sie zu aktivieren.
Skriptfehler oder Hängen
Claude Code zeigt die Ausgabe Ihres Skripts erst an, nachdem das Skript mit Code 0 beendet wurde:- Skripte, die mit Nicht-Null-Codes beendet werden oder keine Ausgabe erzeugen, führen dazu, dass die Statuszeile leer wird
- Langsame Skripte blockieren die Statuszeilen-Aktualisierung, bis sie abgeschlossen sind. Halten Sie Skripte schnell, um veraltete Ausgabe zu vermeiden.
- Wenn eine neue Aktualisierung ausgelöst wird, während ein langsames Skript läuft, wird das laufende Skript abgebrochen
- Testen Sie Ihr Skript unabhängig mit Mock-Eingabe, bevor Sie es konfigurieren
Benachrichtigungen teilen sich die Statuszeilen-Zeile
Außerhalb des Vollbildmodus zeigt Claude Code Benachrichtigungen in der gleichen Zeile wie Ihre Statuszeile an. Im Vollbildmodus gibt Claude Code Benachrichtigungen eine eigene Zeile.- Systembenachrichtigungen wie MCP-Serverfehler und automatische Updates werden auf der rechten Seite der Zeile angezeigt. Vorübergehende Benachrichtigungen wie die Kontext-niedrig-Warnung zirkulieren auch durch diesen Bereich.
- Das Aktivieren des ausführlichen Modus fügt diesem Bereich einen Token-Zähler hinzu, der die Größe Ihres Kontexts so anzeigt, wie die letzte API-Antwort sie gemeldet hat, nicht die Zählung pro Turn neben dem Spinner
- Auf schmalen Terminals können diese Benachrichtigungen Ihre Statuszeilen-Ausgabe abschneiden