Claude Code statusline configuratie

Definitie

De Claude Code statusline is een configureerbare balk in de CLI-UI die realtime sessie-informatie toont. Een shell-script leest JSON via stdin en schrijft de gewenste output naar de statusbalk. Standaard toont de balk “bypass permissions on”; met een eigen script kun je context window gebruik, kosten en rate limits toevoegen.

Context

Naarmate sessies langer worden is het nuttig om de context window vulling in de gaten te houden. Claude Code biedt hiervoor een officiele statusLine hook die bij elke update wordt aangeroepen. Er bestaan meerdere open source implementaties; na veiligheidscheck is GLaDO8/claude-context-visualizer (v5.0) geïnstalleerd en uitgebreid.

Kernpunten

Configuratie in settings.json

"statusLine": {
  "type": "command",
  "command": "~/.claude/statusline.sh",
  "refreshInterval": 5
}

refreshInterval (seconden) is optioneel; zonder interval wordt alleen bij events ververst.

JSON-velden beschikbaar in het script (via stdin)

VeldWaarde
context_window.used_percentageVulling als float (0-100)
context_window.context_window_sizeMax tokens (bijv. 200000)
context_window.current_usage.input_tokensHuidige input tokens
context_window.current_usage.cache_creation_input_tokensCache creation
context_window.current_usage.cache_read_input_tokensCache read
cost.total_cost_usdCumulatieve kosten sessie
rate_limits.five_hour.used_percentage5h window gebruik (alleen Pro/Max)
rate_limits.five_hour.resets_atUnix timestamp van reset
rate_limits.seven_day.used_percentage7d window gebruik
model.display_nameModelnaam
workspace.current_dirWerkdirectory
session_idSessie-ID

rate_limits is alleen aanwezig bij Pro/Max-abonnement, afwezig bij API-key gebruik. Gebruik // 0 of // empty in jq als fallback.

Stdin-valkuil: heredoc steelt stdin

Als een bash-script stdin doorgeeft aan python3 via een heredoc (<<'EOF'), ontvangt python3 de heredoc in plaats van de pipe-input. Oplossing: lees stdin eerst op in een variabele:

INPUT=$(cat)
python3 -c "..." "$INPUT"

Rate limit reset-timer berekening

now=$(date +%s)
remaining=$((resets_at - now))
rh=$((remaining / 3600))
rm=$(( (remaining % 3600) / 60 ))
# Display: "5h: 2h2m"

Veiligheidscheck aanpak voor externe scripts

Bij installatie van een onbekende statusline-repo: spawn een Opus 4.7 subagent met opdracht om raw GitHub-bestanden op te halen en te controleren op: netwerkcalls, schrijflocaties, obfuscatie (eval op untrusted data, base64-blobs), installer-methode. eval "$(jq -r '@sh ...')" is het veilige patroon voor shell-escaping van JSON.

GLaDO8/claude-context-visualizer

Toont een 36-karakter blokjesbar gecategoriseerd per tokentype (tools/MCP/chat/system/free/buffer), kosten, modelnaam en git-branch. Installeert via curl | bash naar ~/.claude/statusline.sh + een PostToolUse hook voor cumulatieve token-tracking. Backup van settings.json wordt automatisch aangemaakt.

Verbanden

Bronnen

Geen externe publicaties; kennis uit implementatie en Opus 4.7 veiligheidsreview.

Sessie-herkomst