/configure
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
How it fires
How this command gets triggered: by you, by Claude, or both.
- Fires itselfClaude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/configure
Context preview
What this command does when you run it.
Customize your claude-code-status-bar settings (guided wizard)
Command definition
configure.mddescription: Customize your claude-code-status-bar settings (guided wizard)
allowed-tools: Bash, Read, Edit, Write, AskUserQuestion
claude-code-status-bar — Guided configuration wizard
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:
- Make the FIRST option the user's CURRENT value (or the default), labelled
"(keep current)". This lets them breeze through with one keypress.
- Use `multiSelect: true` for the toggle groups (Q3–Q5).
- Skip any group the user says they don't care about. Don't force all six.
- After the questions, PREVIEW before you save, then write only the diff.
Step 1 — Read the current config and orient
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
Step 2 — Run the guided questions (AskUserQuestion)
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):
- `classic` — every metric on line 1, live activity on line 2 (the default)
- `three-line` — model/usage/cost · dir + git state · activity
- `stacked` — dir/model/usage · git state/duration · activity
**Q3 — Usage & limits** (multiSelect). Frame each as a feature to keep/enable:
- **Burn-rate forecast** (`usage_forecast`, default ON) — when you're on track
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.
- **Clock reset labels** (`usage_label=clock`, default countdown) — show the
reset time (`2pm`) instead of the countdown (`2h20m`).
- **5-hour limit** (`show_usage_5h`, default ON) / **7-day limit**
(`show_usage_7d`, default ON) — uncheck to hide.
- **Model-scoped weekly swap** (`usage_scoped`, default ON) — plans with a
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).
- **Claude API status badge** (`show_claude_status`, default OFF): a
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:
- Turn ON (off by default): cost-per-hour (`show_cost_rate`), token counts
(`show_tokens`).
- Turn OFF (on by default) for a leaner bar: session cost (`show_cost`),
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):
- **Colourful activity** (`activity_colour`, default ON) — spinner, heat-coloured
elapsed, red failures, completion flash, gradient todo bar.
- **Pulse** (`activity_pulse`) / **Scanner** (`activity_scanner`) — opt-in motion
effects. If enabled, OFFER to set `refreshInterval: 3` (Step 5) so they animate.
- **Turn the activity line off** (`show_activity=false`) — drops the Node helper.
**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`.
Step 3 — Preview before saving
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.
Step 4 — Write the
Read more
description: Customize your claude-code-status-bar settings (guided wizard) allowed-tools: Bash, Read, Edit, Write, AskUserQuestion
claude-code-status-bar — Guided configuration wizard
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:
- Make the FIRST option the user's CURRENT value (or the default), labelled
"(keep current)". This lets them breeze through with one keypress.
- Use `multiSelect: true` for the toggle groups (Q3–Q5).
- Skip any group the user says they don't care about. Don't force all six.
- After the questions, PREVIEW before you save, then write only the diff.
Step 1 — Read the current config and orient
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
Step 2 — Run the guided questions (AskUserQuestion)
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):
- `classic` — every metric on line 1, live activity on line 2 (the default)
- `three-line` — model/usage/cost · dir + git state · activity
- `stacked` — dir/model/usage · git state/duration · activity
**Q3 — Usage & limits** (multiSelect). Frame each as a feature to keep/enable:
- **Burn-rate forecast** (`usage_forecast`, default ON) — when you're on track
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.
- **Clock reset labels** (`usage_label=clock`, default countdown) — show the
reset time (`2pm`) instead of the countdown (`2h20m`).
- **5-hour limit** (`show_usage_5h`, default ON) / **7-day limit**
(`show_usage_7d`, default ON) — uncheck to hide.
- **Model-scoped weekly swap** (`usage_scoped`, default ON) — plans with a
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).
- **Claude API status badge** (`show_claude_status`, default OFF): a
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:
- Turn ON (off by default): cost-per-hour (`show_cost_rate`), token counts
(`show_tokens`).
- Turn OFF (on by default) for a leaner bar: session cost (`show_cost`),
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):
- **Colourful activity** (`activity_colour`, default ON) — spinner, heat-coloured
elapsed, red failures, completion flash, gradient todo bar.
- **Pulse** (`activity_pulse`) / **Scanner** (`activity_scanner`) — opt-in motion
effects. If enabled, OFFER to set `refreshInterval: 3` (Step 5) so they animate.
- **Turn the activity line off** (`show_activity=false`) — drops the Node helper.
**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`.
Step 3 — Preview before saving
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.
Step 4 — Write the
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.
Repo: briansmith80/claude-code-status-bar

