Releases: pstuart/Barista
v1.7.0: Smart 429 backoff with retry-after header
What's New
- Smart 429 Backoff — Parses the
retry-afterheader from API 429 responses instead of using a hardcoded 300s backoff. The API typically returns ~3600s (1 hour), so this prevents repeated failed retries during cooldown. - Cooldown Indicator — Shows
⏸ API cooldown 59min the status bar when rate-limited with no cached data, instead of silent--values. - Stale Data Marker — When serving cached data during API backoff, appends
⏸42mso you know the data is stale and when the API will be retried. - Cleaner Projection Display — Projection indicator (🟢/🟡/🔴) is now hidden when usage is healthy. Only appears at warning (≥80%) or critical (≥100%) levels, eliminating the redundant double-green-circle display.
- Installer Fix — Added missing descriptions for
versionandupdatemodules that were showing as "? Unknown module" in the interactive installer.
Context
The Anthropic OAuth usage API (/api/oauth/usage) has been returning aggressive 429 rate limits with retry-after: ~3600 since early March 2026 (anthropics/claude-code#31021). This release makes Barista handle that gracefully.
Full Changelog
v1.6.1: Hex-encoded keychain credential support
What's New
- Hex-Encoded Keychain Fix — Handles macOS 15+ and recent Claude Code versions that store OAuth credentials as hex-encoded data in the Keychain (community contribution by @gcko, PR #3)
- Progressive fallback: tries plain JSON → hex-decoding via
xxd→ regex extraction - Updated README with v1.6.0 and v1.6.1 changelogs
Full Changelog
v1.6.0: Rate limit 429 backoff, version display, update checker
What's New
Rate Limit 429 Backoff
- Detects HTTP 429 responses from the Anthropic usage API and backs off for 5 minutes (configurable via
RATE_BACKOFF_SECONDS) - Switched from ad-hoc
/tmpcache to the sharedcache_get/cache_setsystem - Increased default cache TTL to 120 seconds (
RATE_CACHE_TTL) - Serves stale cached data (up to 24 hours) when the API is unavailable
Version Display Module
- Shows
☕ v1.6.0on the statusbar for the first 2 minutes after startup - Auto-hides after the startup window (
VERSION_SHOW_DURATION)
Update Checker Module
- Checks GitHub releases once per day for newer versions
- Shows
⬆ v1.7.0(or whatever the new version is) on the statusbar when an update is available - Configurable check interval via
UPDATE_CHECK_INTERVAL
New Configuration Options
| Option | Default | Description |
|---|---|---|
RATE_CACHE_TTL |
120 |
Cache TTL for API responses (seconds) |
RATE_BACKOFF_SECONDS |
300 |
Backoff after 429 (seconds) |
VERSION_SHOW_DURATION |
120 |
Seconds to show version on startup |
UPDATE_CHECK_INTERVAL |
86400 |
Seconds between update checks |
v1.5.0 - Smart Terminal Layout
What's New
Smart Terminal Layout Modes
New LAYOUT_MODE setting with intelligent line wrapping that prevents awkward mid-module line breaks:
smart(default) - Wraps at separator boundaries when content exceeds terminal width minus reservenewline- Forces Claude's right-side info to next linewrap- Pads output to line boundarytruncate- Cuts output with "..." to fit on same linenone- No adjustments, natural terminal behavior
Configuration
LAYOUT_MODE="smart" # Layout mode selection
TERMINAL_WIDTH="" # Manual override (empty = auto-detect)
RIGHT_SIDE_RESERVE=20 # Space reserved for Claude's right-side displayUpgrade
./install.sh --updateOr pull the latest changes and re-run the installer.
v1.4.0: Support custom CLAUDE_CONFIG_DIR
What's New
Barista now respects the CLAUDE_CONFIG_DIR environment variable for users who have moved their Claude configuration directory from the default ~/.claude/.
Changes
- All paths (cache, logs, usage history, user config) now resolve via
$CLAUDE_CONFIG_DIRwith fallback to$HOME/.claude - Installer writes the correct dynamic path into
settings.jsonbased on actual install location - Modules include their own fallback for robustness if sourced independently
- Updated README and CLAUDE.md with configuration documentation
Usage
Users with a custom config directory just need to export the variable:
export CLAUDE_CONFIG_DIR=/path/to/my/claude-configBarista will automatically use that directory for all its files. No configuration changes needed — it just works.
v1.3.2
v1.3.1
v1.3.0 - Enhanced Color Themes
What's New
Enhanced Color Themes
5 distinct visual themes that actually look different:
- default - Standard emoji (🟢🟡🟠🔴)
- minimal - Subtle geometric shapes (◦ ◐ → ⎇)
- vibrant - Bold heart colors (💚💛🧡❤️)
- monochrome - Pure ASCII ([OK] [~~] [!!] [XX])
- nerd - Nerd Font icons (requires Nerd Font)
Each theme now sets unique status indicators, module icons, and progress bar styles.
Improved Spacing
- Status indicators now have proper spacing in normal/verbose modes
50%🟢→50% 🟢
Smart Compact Mode
- Separator padding automatically removed in compact mode
- Status indicator spacing removed for tighter display
Fixed Installer Preview
- Preview now shows actual sample data instead of just icons
- e.g.,
📁 myproject | 📊 ████░░░░ 50%🟢 | 🌿 main
Documentation
- Added CLAUDE.md with comprehensive project documentation
Upgrade
cd ~/.claude/barista # or wherever you cloned Barista
git pull
./install.sh --updateOr fresh install:
git clone https://github.com/pstuart/Barista.git
cd Barista
./install.shv1.2.0
Memory Optimizations
- Fixed unbounded history file growth in rate-limits module - now only records on fresh API fetch
- Added 50KB file size cap to prevent memory issues from accumulated history
- Optimized git porcelain for monorepos with 500-line limit to prevent memory spikes
New Features
Interactive Update Checker
- Version now displayed in installer banner
- Prompts user to check for updates on startup
- Shows clear comparison: installed vs latest version
4-Level Rate Limit Colors
Visual indicators for usage levels:
| Usage | Indicator |
|---|---|
| < 50% | 🟢 Green |
| 50-75% | 🟡 Yellow |
| 75-95% | 🟠 Orange |
| ≥ 95% | 🔴 Red |
New Configuration Options
# Rate limit usage indicators
RATE_SHOW_USAGE_STATUS="true" # Enable/disable
RATE_LOW_THRESHOLD=50 # Green/yellow boundary
RATE_MEDIUM_THRESHOLD=75 # Yellow/orange boundary
RATE_HIGH_THRESHOLD=95 # Orange/red boundaryUtility Addition
- New
get_status_4level()function in utils.sh for any module needing 4-level status indicators
Barista v1.1.0
Barista v1.1.0 ☕
Serving up fresh stats for your Claude Code sessions.
What's New
Auto-Update System
- Barista now checks GitHub for updates automatically
--check-updateto see if a newer version is available--updateto download and install the latest version--skip-update-checkto bypass automatic checking
Interactive Installer Improvements
- Arrow key navigation - Use ↑/↓ to move through options
- Space to toggle - Select/deselect modules easily
- Live preview - See your statusline before installing
- Keyboard shortcuts:
afor all,nfor none,Enterto confirm
Enhanced Customization
- Separator styles - Pipe
|, Double║, Arrow›, Bullet•, and more - Color themes - Default, Minimal, Vibrant, Monochrome
- Display modes - Normal, Compact, Verbose
- Progress bar styles - Blocks, Shaded, Circles, ASCII
Compatibility
- Now works with macOS default Bash 3.2 (no need to install newer bash)
- Removed dependency on Bash 4.0+ associative arrays
- Better terminal compatibility for arrow key detection
Bug Fixes
- Fixed escape sequence detection for arrow keys
- Added pre-install test to verify statusline works before applying config
- Improved error handling and user feedback
Installation
git clone https://github.com/pstuart/Barista.git
cd Barista
./install.shUpgrading
If you already have Barista installed:
cd /path/to/Barista
./install.sh --updateOr pull manually and reinstall:
git pull
./install.shFull Changelog
See the README for complete documentation.