Help us improve
Share bugs, ideas, or general feedback.
From statusbar
Interactively configure status bar layout (compact/standard/mascot), toggle widget groups with [ON]/[OFF] indicators, or apply presets like minimal, default, developer, full, tracker.
npx claudepluginhub sym1000/claude-statusbar --plugin statusbarHow this skill is triggered — by the user, by Claude, or both
Slash command
/statusbar:configThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
You are helping the user configure their statusbar plugin. You will present a visual, interactive configuration experience using Claude Code's native selection UI, then save their choices.
Customizes the Claude Code statusline: add/remove segments (cost, git, model, context), switch color themes (catppuccin, dracula, nord), and modify display settings.
Controls the claude-statusbar (cs) — switch themes, styles, density, override severity colors, preview combinations, run doctor, reset config, install/remove, toggle fast/daemon mode, and show cost or prompt-cache age.
Interactive wizard sets up Claude Code's custom status line with progress bars, token counts, git branch, model name, and session info. Cross-platform for Mac/Linux/Windows via bash/PowerShell scripts.
Share bugs, ideas, or general feedback.
You are helping the user configure their statusbar plugin. You will present a visual, interactive configuration experience using Claude Code's native selection UI, then save their choices.
If the user provided a preset name as an argument (e.g., /statusbar:config developer), skip the interactive UI and jump directly to Apply Preset below.
Available presets and their widget mappings:
| Preset | Layout | Enabled widgets |
|---|---|---|
minimal | compact | compact-warn, model, effort, context |
default | compact | compact-warn, model, effort, context, cost, duration, git |
developer | standard | compact-warn, model, effort, context, cost, duration, git, lines, rate-5h, rate-7d, tokens, cache, latency, context-size |
full | mascot | ALL widgets enabled |
tracker | standard | compact-warn, model, effort, context, cost, duration, messages, total-tokens, tools-used |
Read the current config file to know the user's existing setup:
${CLAUDE_PLUGIN_DATA}/statusbar-config.json${CLAUDE_PLUGIN_ROOT}/defaults/statusbar-config.jsonNote the current layout and which widgets are enabled/disabled. You MUST use this to mark current state in the UI (see Step 2).
Use a SINGLE AskUserQuestion call with exactly 4 questions (shown as navigable tabs). The user browses tabs with arrow keys, selects options with enter/space.
The AskUserQuestion tool does not support pre-selecting options. To show the user what's currently enabled, you MUST dynamically modify the options based on the config you read in Step 1:
For multi-select questions (Q2, Q3, Q4):
[ON] to the label of each option whose widgets are currently enabled in the config [OFF] to the label of each option whose widgets are currently disabledExample: if model, context, cost, and duration are enabled but git is disabled:
"Model & Context [ON]""Cost & Duration [ON]""Git Branch [OFF]""Compact Alert [ON]"For a group like "Lines & Tokens" that maps to multiple widgets (lines + tokens), mark it [ON] if ANY of its widgets are enabled, [OFF] if ALL are disabled.
For the Preset question (Q1):
(current) to that preset's label.This question lets the user pick a preset theme. Each option has a preview showing exactly what the status bar will look like. The user arrows through options and sees the preview update on the right side.
question: "Start from a preset? Pick one to see a preview, or select Other to build your own."
header: "Preset"
multiSelect: false
options:
- label: "Minimal"
description: "Just the essentials — model name and context bar (1 line)"
preview: |
╭─ Minimal (compact, 1 line) ────────────────╮
│ │
│ Opus 4.6 │ high │ ████░░░░ 42% │
│ │
╰─────────────────────────────────────────────╯
Widgets: model, effort, context bar
Layout: compact (single line)
- label: "Default (Recommended)"
description: "Model, context, cost, duration, and git branch (1 line)"
preview: |
╭─ Default (compact, 1 line) ────────────────────╮
│ │
│ Opus 4.6 │ high │ ████░░░░ 42% │ main* │ $1 │
│ │
╰────────────────────────────────────────────────╯
Widgets: model, effort, context, cost, duration, git
Layout: compact (single line)
- label: "Developer"
description: "All metrics a power user needs — rate limits, tokens, cache (2 lines)"
preview: |
╭─ Developer (standard, 2 lines) ─────────────────╮
│ │
│ Opus 4.6 │ high │ ████░░░░ 42% │ $1.23 │ main* │
│ +156 -23 │ 5h:34% │ 7d:12% │ 84k/21k │
│ │
╰──────────────────────────────────────────────────╯
Widgets: model, effort, context, cost, duration, git,
lines, rate limits, tokens, cache, latency
Layout: standard (2 lines)
- label: "Full + Mascot"
description: "Everything enabled with pixel art alien (3 lines)"
preview: |
╭─ Full + Mascot (3 lines) ─────────────────────╮
│ │
│ ▐▛███▜▌ Opus 4.6 │ high │ ████░░░░ 42% │
│ ▝▜█████▛▘ main* │ $1.23 │ 14m 22s │
│ ▘▘ ▝▝ +42 -7 │ 5h:34% │ cache:67% │
│ │
╰────────────────────────────────────────────────╯
Widgets: ALL widgets enabled
Layout: mascot (3 lines with pixel art)
Core widgets that most users want. The user checks/unchecks each.
question: "Which core widgets do you want? (select all that apply)"
header: "Core"
multiSelect: true
options:
- label: "Model & Context"
description: "Model name, effort level, and visual context bar (e.g., Opus 4.6 │ high │ ████░░░░ 42%)"
- label: "Cost & Duration"
description: "Session cost + elapsed time (e.g., $1.23 │ 12m 34s) — color-coded by spend"
- label: "Git Branch"
description: "Current branch + dirty indicator (e.g., main*) — cyan with red * for uncommitted changes"
- label: "Compact Alert"
description: "Shows ⚠ COMPACT in red when context exceeds 200k tokens and auto-compaction is imminent"
Developer-focused metrics.
question: "Which developer widgets do you want? (select all that apply)"
header: "Dev"
multiSelect: true
options:
- label: "Lines & Tokens"
description: "Code lines changed + token counts (e.g., +156 -23 │ 84k/21k) — green/red for add/remove"
- label: "Rate Limits"
description: "5-hour and 7-day rate limit usage (e.g., 5h:34% │ 7d:12%) — color-coded green→red"
- label: "Cache & Latency"
description: "Cache hit rate + API response time (e.g., cache:67% │ api:18.5s)"
- label: "Size & Session"
description: "Context window size + session ID (e.g., 1M │ a1b2c3)"
Tracking, niche widgets, and the mascot.
question: "Any extras? (select all that apply)"
header: "Extras"
multiSelect: true
options:
- label: "Tracking"
description: "Message counts, tool calls, total tokens (e.g., ✉ 12/11 │ ⚒ 47 │ Σ 84kin 21kout)"
- label: "Vim & Agent"
description: "Vim mode, agent name, output style (e.g., NORMAL │ planner │ concise)"
- label: "Worktree & MCP"
description: "Active worktree name + MCP server count (e.g., wt:feature-x │ MCP:3)"
- label: "Mascot"
description: "Pixel art alien — forces 3-line mascot layout with Claude's orange Clawd character"
Question 2 (Core) mappings:
| Option | Widget IDs |
|---|---|
| "Model & Context" | model, effort, context |
| "Cost & Duration" | cost, duration |
| "Git Branch" | git |
| "Compact Alert" | compact-warn |
Question 3 (Dev) mappings:
| Option | Widget IDs |
|---|---|
| "Lines & Tokens" | lines, tokens |
| "Rate Limits" | rate-5h, rate-7d |
| "Cache & Latency" | cache, latency |
| "Size & Session" | context-size, session |
Question 4 (Extras) mappings:
| Option | Widget IDs |
|---|---|
| "Tracking" | messages, total-tokens, tools-used |
| "Vim & Agent" | vim, agent, style |
| "Worktree & MCP" | worktree, mcp |
| "Mascot" | mascot |
Key principle: selections REPLACE the category, non-interaction PRESERVES current config.
When processing multi-select answers (Q2, Q3, Q4), ignore the [ON]/[OFF] suffixes in labels — they were only visual indicators. Match by the base label text (e.g., "Model & Context" regardless of whether it said "[ON]" or "[OFF]").
If a preset was selected in Q1 (not "Other"):
If "Other" was selected in Q1 (or user typed custom text):
compact-warn defaults to enabled in all presets, but the user can disable it by not selecting "Compact Alert" in the Core tab (when they do select other Core options)
If mascot is enabled, force the layout to mascot
Layout determination:
Build the complete JSON config with ALL widget IDs (enabled or disabled):
{
"layout": "<compact|standard|mascot>",
"widgets": {
"compact-warn": true,
"model": <true|false>,
"effort": <true|false>,
"context": <true|false>,
"cost": <true|false>,
"duration": <true|false>,
"git": <true|false>,
"session": <true|false>,
"lines": <true|false>,
"rate-5h": <true|false>,
"rate-7d": <true|false>,
"tokens": <true|false>,
"cache": <true|false>,
"context-size": <true|false>,
"latency": <true|false>,
"messages": <true|false>,
"total-tokens": <true|false>,
"tools-used": <true|false>,
"vim": <true|false>,
"mcp": <true|false>,
"worktree": <true|false>,
"agent": <true|false>,
"style": <true|false>,
"mascot": <true|false>
},
"contextBarWidth": 8,
"separator": " │ "
}
Preserve contextBarWidth and separator from the existing config if they were customized.
Write to ${CLAUDE_PLUGIN_DATA}/statusbar-config.json. If that variable is not available, write to the project root statusbar-config.json.
After saving, show the user a preview of their configured status bar. Build a text mockup showing only their enabled widgets with example data:
Widget example values for preview:
Opus 4.6high████░░░░ 42%$1.2312m 34smain*a1b2c3+156 -235h:34%7d:12%84k/21kcache:67%1Mapi:18.5s✉ 12/11Σ 84kin 21kout⚒ 47NORMALplannerconcisewt:feature-xMCP:3Join enabled widgets with │ separator. For standard layout, split across 2 lines. For mascot, show the mascot art on the left.
Tell the user:
/statusbar:config again anytime to reconfigure/statusbar:config developer