A powerline statusline for Claude Code: segments, themes, and a live TUI configurator in a single native binary.
Note
Powerline glyphs need a Nerd Font, or switch to the ascii style.
On macOS: brew install --cask font-hack-nerd-font (the font used in the screenshots).
# verifies SHA256 · build provenance when gh is available
curl -fsSL https://raw.githubusercontent.com/micschr0/claudebar/main/install.sh | bashHomebrew
# verifies SHA256
brew install micschr0/tap/claudebar && claudebar setupmise
# verifies SHA256 · build provenance, automatically
mise use -g github:micschr0/claudebar && claudebar setupBetas ship to a versioned formula so brew upgrade cannot silently bump stable users onto a prerelease:
brew install micschr0/tap/claudebar-betaWhat each install method verifies
Every method checks the SHA256 of the downloaded archive. They differ in whether they also verify build provenance — proof that the binary was built by this repo's release.yml, not just that it matches a published hash.
| Method | SHA256 | Build provenance |
|---|---|---|
mise |
✓ | ✓ automatic |
install.sh |
✓ fatal on mismatch | ~ needs gh, installed and authenticated |
| Homebrew | ✓ | · |
claudebar-installer.sh (hosted) |
✓ | · |
✓ verified, ~ conditional, · not checked
install.sh treats a checksum mismatch as fatal but never fails the install on a provenance error — it scopes trust to release.yml via gh attestation verify --signer-workflow and warns if that check cannot complete. To verify a download by hand:
gh attestation verify claudebar-x86_64-unknown-linux-musl.tar.gz \
--repo micschr0/claudebar \
--signer-workflow micschr0/claudebar/.github/workflows/release.ymlReview the script first
curl -fsSL https://raw.githubusercontent.com/micschr0/claudebar/main/install.sh -o install.sh
claude -p "Audit this script for anything unsafe, then summarize what it does" < install.sh
bash install.shTry a beta before it's stable
Prereleases (tagged e.g. 2026.7.6-beta.1) get their own versioned Homebrew formula (claudebar-beta) and are also installable via the script:
CLAUDEBAR_CHANNEL=beta curl -fsSL https://raw.githubusercontent.com/micschr0/claudebar/main/install.sh | bashThe plain micschr0/tap/claudebar formula always tracks stable; claudebar-beta follows the latest prerelease. To switch from the Homebrew beta back to stable:
brew uninstall micschr0/tap/claudebar-beta && brew install micschr0/tap/claudebarColors shift as usage crosses 50% and 80%:
All segments — three off by default (dev-context, burn, clock):
claudebar configFull-screen TUI: live preview, theme and style pickers, threshold sliders. ? for keys, s saves, q quits.
Or edit the TOML at ~/.config/claudebar/config.toml directly (claudebar edit):
theme = "tokyo-night"
style = "powerline"
segments = ["directory", "git", "model", "context", "lines", "rate-limits", "cost", "duration"]
[thresholds]
warn = 50 # bar turns yellow
crit = 80 # bar turns red| Command | Action |
|---|---|
claudebar / claudebar render |
Read session JSON from stdin, write ANSI statusline to stdout |
claudebar config |
Launch the TUI configurator |
claudebar setup |
Wire claudebar into Claude Code's settings.json |
claudebar list |
List built-in themes and styles |
claudebar doctor |
Diagnose font, git, config, and PATH issues |
More commands and flags: claudebar --help.
brew uninstall claudebar
# or: rm ~/.claude/claudebar # script installThen remove the statusLine entry from ~/.claude/settings.json and, optionally, ~/.config/claudebar/.
More: documentation & live demo · build from source · contributing · contributing a theme · changelog · verifying releases · report an issue






