Claude Code Usage Status Bar

VerifiedCaution

Install or verify the Claude Code usage status bar showing rate limits, context window, reset countdown, model, and language settings.

Sby Skills Guide Bot
ProductivityBeginner
3409/4/2026
Claude Code
#claude-code#statusline#usage-limits#monitoring#setup

Recommended for

Our review

This skill installs and manages the persistent Claude Code status bar, showing 5h/7d rate limits, session context usage, reset countdown, model, reasoning effort, and working directory.

Strengths

  • Automatically detects the platform and picks the right renderer: PowerShell on Windows, Bash on macOS, Linux, Git Bash and WSL
  • Ships a live preview using simulated data so you can validate the rendering without waiting for real usage
  • Documents exactly what each field means and the green/orange/red color thresholds
  • Lets you switch the display language through a config file with no restart required

Limitations

  • Rate limit data is only available on a Claude.ai Pro or Max plan
  • Only two languages are supported (en and it), and adding one requires editing both renderers
  • After installation you must restart Claude Code before the bar appears
When to use it

Reach for this skill when you want to install, verify, or reconfigure the Claude Code usage status bar on your machine.

When not to use it

Don't use it if you want to monitor Claude Code usage from an external dashboard rather than the native statusline.

Security analysis

Caution
Quality score80/100

No exfiltration, destructive commands, obfuscated payloads, or network fetches are present; all actions are local and aimed at installing/configuring a status bar. The risk comes from executing unseen bundled installer scripts and a PowerShell policy bypass, plus unvalidated sed interpolation of the language code — powerful tools used for a legitimate purpose, hence caution rather than risky.

Findings
  • •Runs bundled install.sh / install.ps1 scripts from the skill directory whose contents are not shown in SKILL.md, so the actual executed code cannot be audited from the skill file alone.
  • •Invokes powershell.exe with -ExecutionPolicy Bypass to run a local .ps1, which circumvents the host execution policy (standard for Windows installers but still a meaningful privileged action).
  • •The language-change step interpolates a user-supplied string directly into a sed replacement over ~/.claude/usage-bar.conf with no validation, so characters like '/', '&' or newlines could corrupt or unexpectedly rewrite the config.
  • •Runs shell from the agent on every invocation via `!` blocks, including executing the installed renderer with piped sample JSON.

Examples

Install the usage bar
Install the Claude Code usage status bar for me.
Preview the bar
The usage bar is already installed — show me a live preview of how it looks with sample data.
Switch language
Change the usage bar language to Italian.

name: usage-bar description: Install or check the Claude Code usage status bar (rate limits 5h/7d, session context, reset countdown, model, effort, and working directory). Also use to change the display language. user-invocable: true allowed-tools: Bash(uname *), Bash(bash *), Bash(powershell.exe *), Bash(cygpath *), Bash(test *), Bash(grep *), Bash(cat *), Bash(sed *), Bash(printf *)

claude-usage-bar

Manage the persistent status bar that shows Claude Code usage limits. Use the native PowerShell renderer on Windows and the Bash renderer on macOS, Linux, Git Bash, and WSL.

Step 1 — Detect the platform and check installation status

!`
case "$(uname -s)" in
  MINGW*|MSYS*|CYGWIN*) OS=windows; TARGET="$HOME/.claude/statusline-usage.ps1" ;;
  *)                    OS=unix;    TARGET="$HOME/.claude/statusline-usage.sh" ;;
esac
echo "OS=$OS"
test -f "$TARGET" && echo "INSTALLED ($TARGET)" || echo "NOT_INSTALLED"
test -f "$HOME/.claude/usage-bar.conf" && cat "$HOME/.claude/usage-bar.conf" || echo "NO_CONFIG"
`

Step 2 — Act on the result

If NOT installed

Run the platform-appropriate installer from the skill directory:

!`
case "$(uname -s)" in
  MINGW*|MSYS*|CYGWIN*)
    INSTALLER=$(cygpath -w "${CLAUDE_SKILL_DIR}/install.ps1")
    powershell.exe -NoProfile -ExecutionPolicy Bypass -File "$INSTALLER" -Lang en
    ;;
  *)
    bash "${CLAUDE_SKILL_DIR}/install.sh" --lang en
    ;;
esac
`

Tell the user installation is complete and they need to restart Claude Code to see the bar.

If already installed — show live test

Run a live preview with simulated data using the installed renderer:

!`
SAMPLE='{"model":{"display_name":"Opus 4.6"},"effort":{"level":"high"},"workspace":{"current_dir":"/home/user/project"},"context_window":{"used_percentage":42},"rate_limits":{"five_hour":{"used_percentage":28.0},"seven_day":{"used_percentage":85.0}}}'
case "$(uname -s)" in
  MINGW*|MSYS*|CYGWIN*)
    TARGET=$(cygpath -w "$HOME/.claude/statusline-usage.ps1")
    printf '%s' "$SAMPLE" | powershell.exe -NoProfile -ExecutionPolicy Bypass -File "$TARGET"
    ;;
  *)
    printf '%s' "$SAMPLE" | bash "$HOME/.claude/statusline-usage.sh"
    ;;
esac
`

Also show the current language setting from the config file.

If the user wants to change language

Ask which language they want, then update ~/.claude/usage-bar.conf:

!`sed -i 's/^LANG=.*/LANG=it/' ~/.claude/usage-bar.conf && echo "Language set to: it"`

Replace it with the desired language code. No restart needed — the change takes effect on the next response.


Field reference

Explain to the user what each field means:

  • 5h — Rate limit over the last 5 hours (daily proxy). Green < 80%, orange 80–90%, red ≥ 90%
  • 7d — Weekly rate limit. Same color scale
  • ctx — Context window usage for the current session. Green < 70%, orange 70–80%, red > 80%
  • reset — Countdown to limit reset. Hours/minutes if < 24h, days and hours if ≥ 24h
  • session details — Current model in yellow, reasoning effort (when supported), and working directory in bright green on a second line. The home directory is shortened to ~
  • Rate limit data is only available with a Claude.ai Pro or Max plan

Supported languages

| Code | Language | |------|----------| | en | English | | it | Italiano |

To add a new language, update both statusline-usage.sh and statusline-usage.ps1 so the renderers stay in sync.

Related skills