Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

ClaudeStatusBar

A custom status line for Claude Code that shows your working directory, model + effort level, context window usage, git branch, and remaining 5-hour / 7-day rate limits — all in one colored line at the bottom of the terminal.

preview

From left to right:

  • Working directory (bright blue) — current path, with $HOME shortened to ~
  • Model + effort (magenta) — e.g. Opus 4.7 (Xhigh). Reads the live effort.level field Claude Code pipes in, so /effort changes show up on the next redraw
  • Context (green → yellow → orange → red) — percentage of the context window used
  • Git branch (bright green) — current branch when inside a repo
  • Rate limits (yellow) — 5-hour and 7-day windows with a 10-char progress bar showing how much is left

Requirements

  • bash
  • jq — used to parse the JSON Claude Code pipes into the script
  • A terminal that supports 256-color ANSI escapes
  • Claude Code installed (this creates the ~/.claude/ directory the first time you run it)

Install jq if you don't already have it:

# macOS
brew install jq

# Debian / Ubuntu
sudo apt install jq

Install

  1. Make sure ~/.claude/ exists (it does after you've launched Claude Code at least once; otherwise mkdir -p ~/.claude).

  2. Download the script:

    curl -o ~/.claude/statusline.sh https://raw.githubusercontent.com/Ivan-Shishkin-Dev/ClaudeStatusBar/main/statusline.sh
    chmod +x ~/.claude/statusline.sh
  3. Wire it up in ~/.claude/settings.json. If the file already exists, merge this block in alongside your existing keys — don't overwrite the whole file:

    {
      "statusLine": {
        "type": "command",
        "command": "bash ~/.claude/statusline.sh"
      }
    }
  4. Restart Claude Code. The bar will appear at the bottom of the terminal.

About the effort tag

The (Xhigh) / (High) tag next to the model name is automatic — no extra config. The script reads the effort.level field from the JSON Claude Code pipes in, so it always reflects the live session value (including mid-session /effort changes). The tag is omitted entirely when the current model doesn't support the effort parameter.

For backward compatibility with older Claude Code versions that don't ship effort.level, the script falls back to a static effortLevel field in ~/.claude/settings.json:

{
  "effortLevel": "xhigh"
}

You don't need this on current Claude Code — only set it if your version is too old to expose effort.level on stdin.

Customizing

Everything lives in a single file — statusline.sh. Colors are defined at the top as ANSI escape variables, and the final line is assembled at the bottom under Assemble the status line. Reorder segments, swap colors, or drop sections you don't want.

About

My Claude Status Bar

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages