setup
CommandInstall and configure claude-code-status-bar as your statusline
Customize your claude-code-status-bar settings (guided wizard)
> /plugin marketplace add briansmith80/claude-code-status-bar> /plugin install claude-code-status-bar@claude-code-status-bar
description: Customize your claude-code-status-bar settings (guided wizard) allowed-tools: Bash, Read, Edit, Write, AskUserQuestion
You are a setup wizard for the user's status bar. Walk them through a short, **guided** sequence of choices using the **AskUserQuestion** tool (one question group at a time), then write only the non-default settings to `~/.claude/statusline.conf`. Be friendly and fast. The whole point is that *Claude Code is the interactive layer* — the user should never hand-edit a file unless they want to.
Rules for every question:
"(keep current)". This lets them breeze through with one keypress.
conf_file="${CLAUDE_CONFIG_DIR:-$HOME/.claude}/statusline.conf"
if [ -f "$conf_file" ]; then echo "=== current statusline.conf ==="; cat "$conf_file"; else echo "No config yet — all defaults."; fiSummarise the current state in one or two plain sentences (theme, layout, and anything already non-default). Then offer to preview the themes live — this is the closest thing to a visual picker and it shows each theme's gradient bars:
bash ~/.claude/statusline-command.sh --demo
Ask these as a sequence of AskUserQuestion calls. You can batch up to 4 related questions per call. For each option list, lead with the current/default value.
**Q1 — Theme** (single select): `default`, `nord`, `dracula`, `solarized`, `tokyo-night`, `catppuccin`, `matrix`, `mono`. Tell them they can run `--demo <theme>` to preview just one. (Offer 4 at a time if listing all eight; or ask "which family — neon / muted / pastel / mono?" first, then narrow.)
**Q2 — Layout** (single select):
**Q3 — Usage & limits** (multiSelect). Frame each as a feature to keep/enable:
to hit a limit before it resets, the countdown becomes a `▲time-to-limit` warning (e.g. `▲1h20m`). Quiet unless you're over pace. Recommend keeping ON.
reset time (`2pm`) instead of the countdown (`2h20m`).
(`show_usage_7d`, default ON) — uncheck to hide.
per-model weekly cap (the "Fable"/"Opus" row on claude.ai) get the weekly bar swapped to that cap when it's running higher than the all-models one (it binds first): `wk:Fable (3d17h) ███░░ 36%`. Reads the OAuth usage data in the background; fail-silent where unavailable. Recommend keeping ON — set `usage_scoped=false` only if they want the plain all-models bar always (that also skips the background fetch on modern Claude Code).
degraded-only early warning fed by the public `status.claude.com` page. It shows `● Claude: major outage` (or `critical` / `degraded` / `maintenance`) ONLY when Claude is degraded, nothing when healthy, and polls in the background so it never touches the render path. If they turn it ON, ask one quick follow-up (single select) for sensitivity: **major + critical only** (`claude_status_min=major`, the default) or **also minor degradation + maintenance** (`claude_status_min=minor`). The poll interval defaults to 5 min (`claude_status_cache_seconds=300`) and is rarely worth changing.
**Q4 — Segments** (multiSelect). Offer the commonly-changed ones:
(`show_tokens`).
lines-changed (`show_lines_changed`), dirty count (`show_dirty_count`), ahead/behind (`show_ahead_behind`), stash (`show_stash`), worktree (`show_worktree`), duration (`show_duration`), PR (`show_pr`).
**Q5 — Live activity line** (multiSelect):
elapsed, red failures, completion flash, gradient todo bar.
effects. If enabled, OFFER to set `refreshInterval: 3` (Step 5) so they animate.
**Q6 — Bar style** (single select): `gradient` (the theme's ramp — default), `heat` (fixed green→red on any theme), `flat` (single colour). Maps to `bar_gradient=true|heat|false`.
Render the pending choices against a sample payload WITHOUT committing, by sourcing the would-be settings inline:
# Replace KEY=VALUE pairs with the user's pending choices.
env_conf='colour_theme=nord
usage_forecast=true'
tmp="$(mktemp)"; printf '%s\n' "$env_conf" > "$tmp"
echo '{"cwd":"/tmp/demo","model":{"display_name":"Opus 4.8 (1M context)"},"context_window":{"used_percentage":78,"context_window_size":1000000,"total_input_tokens":780000},"total_cost_usd":1.23,"rate_limits":{"five_hour":{"used_percentage":62,"resets_at":'"$(( $(date +%s) + 5400 ))"'},"seven_day":{"used_percentage":71,"resets_at":'"$(( $(date +%s) + 200000 ))"'}}}' \
| CLAUDE_CONFIG_DIR="$(dirname "$tmp")" HOME="$(dirname "$tmp")" bash ~/.claude/statusline-command.sh 2>/dev/null || true
rm -f "$tmp"Show the rendered bar, confirm it looks right, then save.
Configurable status bar for Claude Code: usage limits with pacing markers, context window, git state, live activity, session cost, and 8 colour themes. Pure bash, zero dependencies.
Install and configure claude-code-status-bar as your statusline
Implement tasks incrementally — build, test, verify, commit. Add "auto" to run the whole plan in one approved pass.