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)
| Veld | Waarde |
|---|---|
context_window.used_percentage | Vulling als float (0-100) |
context_window.context_window_size | Max tokens (bijv. 200000) |
context_window.current_usage.input_tokens | Huidige input tokens |
context_window.current_usage.cache_creation_input_tokens | Cache creation |
context_window.current_usage.cache_read_input_tokens | Cache read |
cost.total_cost_usd | Cumulatieve kosten sessie |
rate_limits.five_hour.used_percentage | 5h window gebruik (alleen Pro/Max) |
rate_limits.five_hour.resets_at | Unix timestamp van reset |
rate_limits.seven_day.used_percentage | 7d window gebruik |
model.display_name | Modelnaam |
workspace.current_dir | Werkdirectory |
session_id | Sessie-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
- Zie ook: wiki-claude-workspace-setup
- Zie ook: wiki-cozempic-context-cleaning
Bronnen
Geen externe publicaties; kennis uit implementatie en Opus 4.7 veiligheidsreview.