All notable changes to Claude HUD will be documented in this file.
- Semantic HUD color overrides for context and usage states.
- Update the fallback autocompact buffer estimate from
22.5%(45k/200k) to16.5%(33k/200k) to match current Claude Code/contextoutput. - Clarify in code comments that the fallback buffer is empirical and may change independently of documented Claude Code releases.
- Clarify that context percentages and token displays scale with Claude Code's reported context window size, including newer 1M-context sessions.
- Text-only usage display now shows the 7-day reset countdown when applicable.
- Rate-limited usage refreshes now keep the last successful values visible while marking the HUD as syncing.
- Context percentage no longer starts with an inflated fallback percentage before native data exists.
- Usage API rate-limit handling is more resilient, including better stale-cache behavior and
Retry-Afterparsing. - Zero-byte usage lock files now recover instead of leaving the HUD permanently busy.
- Plugin selection now prefers the highest installed version instead of filesystem mtime.
- macOS Keychain lookup now prefers account-scoped credentials and avoids cross-account fallback when multiple accounts exist.
- Add Usage API timeout override via
CLAUDE_HUD_USAGE_TIMEOUT_MS(default now 15s).
- Setup instructions now generate shell-safe Windows commands for
win32 + bashenvironments (#121, #148). - Bedrock startup model labels now normalize known model IDs when
model.display_nameis missing (#137). - Usage API reliability improvements for proxy and OAuth token-refresh edge cases:
- Respect
HTTPS_PROXY/ALL_PROXY/HTTP_PROXYwithNO_PROXYbypass. - Preserve usage and plan display when keychain tokens refresh without
subscriptionTypemetadata. - Reduce false
timeout/403usage warnings in proxied and high-latency environments (#146, #161, #162).
- Respect
- Render output now preserves regular spaces instead of non-breaking spaces to avoid vertical statusline rendering issues on startup (#142).
- Session name display in the statusline (#155).
display.contextValue: "remaining"mode to show remaining context percent (#157).- Regression tests for
CLAUDE_CONFIG_DIRpath handling, keychain service resolution fallback ordering, and config counter overlap edge cases.
- Prefer subscription plan labels over API env-var detection for account type display (#158).
- Usage reset time formatting now switches to days when the reset window is 24h or more (#132).
- Respect
CLAUDE_CONFIG_DIRfor HUD config lookup, usage cache, speed cache, and legacy credentials file paths (#126). - Improve macOS Keychain credential lookup for multi-profile setups by using profile-specific service names with compatibility fallbacks.
- Fix config counting overlap detection so project
.claudefiles are still counted whencwdis home and user scope is redirected. - Prevent HUD rows from disappearing in narrow terminals (#159).
- Handle object-based legacy layout values safely during config migration (#144).
- Prevent double-counting user vs project
CLAUDE.mdwhencwdis home (#141).
- Bump
@types/nodefrom25.2.3to25.3.3(#153). - Bump
c8from10.1.3to11.0.0(#154).
- Redesigned default layout — clean 2-line display replaces the previous multi-line default
- Line 1:
[Opus | Max] │ my-project git:(main*) - Line 2:
Context █████░░░░░ 45% │ Usage ██░░░░░░░░ 25% (1h 30m / 5h)
- Line 1:
- Model bracket moved to project line (line 1)
- Context and usage bars combined onto a single line with
│separator - Shortened labels: "Context Window" → "Context", "Usage Limits" → "Usage"
- Consistent
dim()styling on both labels - All optional features hidden by default: tools, agents, todos, duration, config counts
- Bedrock provider detection (#111)
- Output speed display (#110)
- Token context display option (#108)
- Seven-day usage threshold config (#107)
- Setup onboarding now offers optional features (tools, agents & todos, session info) before finishing
display.showSpeedconfig option for output token speed
- Show API failure reason in usage display (#109)
- Support task todo updates in transcript parsing (#106)
- Keep HUD to one line in compact mode (#105)
- Use Platform context instead of uname for setup detection (#95)
- Expanded multi-line layout mode - splits the overloaded session line into semantic lines (#76)
- Identity line: model, plan, context bar, duration
- Project line: path, git status
- Environment line: config counts (CLAUDE.md, rules, MCPs, hooks)
- Usage line: rate limits with reset times
- New config options:
lineLayout:'compact'|'expanded'(default:'expanded'for new users)showSeparators: boolean (orthogonal to layout)display.usageThreshold: show usage line only when >= N%display.environmentThreshold: show env line only when counts >= N
- Default layout is now
expandedfor new installations - Threshold logic uses
max(5h, 7d)to ensure high 7-day usage isn't hidden
- Ghost installation detection and cleanup in setup command (#75)
- Existing configs with
layout: "default"automatically migrate tolineLayout: "compact" - Existing configs with
layout: "separators"migrate tolineLayout: "compact"+showSeparators: true
- Native context percentage support for Claude Code v2.1.6+
- Uses
used_percentagefield from stdin when available (accurate, matches/context) - Automatic fallback to manual calculation for older versions
- Handles edge cases: NaN, negative values, values >100
- Uses
display.autocompactBufferconfig option ('enabled'|'disabled', default:'enabled')'enabled': Shows buffered % (matches/contextwhen autocompact ON) - default'disabled': Shows raw % (matches/contextwhen autocompact OFF)
- EXDEV cross-device error detection for Linux plugin installation (#53)
- Context percentage now uses percentage-based buffer (22.5%) instead of hardcoded 45k tokens (#55)
- Scales correctly for enterprise context windows (>200k)
- Remove automatic PR review workflow (#67)
- Git status: move
--no-optional-locksto correct position as global git option (#65) - Prevent stale
index.lockfiles during git operations (#63) - Exclude disabled MCP servers from count (#47)
- Reconvert Date objects when reading from usage API cache (#45)
- Bump @types/node from 25.0.3 to 25.0.6 (#61)
- Configuration system via
~/.claude/plugins/claude-hud/config.json - Interactive
/claude-hud:configureskill for in-Claude configuration - Usage API integration showing 5h/7d rate limits (Pro/Max/Team)
- Git status with dirty indicator and ahead/behind counts
- Configurable path levels (1-3 directory segments)
- Layout options: default and separators
- Display toggles for all HUD elements
- Git status spacing:
main*↑2↓1→main* ↑2 ↓1 - Root path rendering: show
/instead of empty - Windows path normalization
- Config system, layouts, path levels, git toggle by @Tsopic (#32)
- Usage API, configure skill, bug fixes by @melon-hub (#34)
- Display git branch name in session line (#23)
- Display project folder name in session line (#18)
- Dynamic platform and runtime detection in setup command (#24)
- Remove redundant COMPACT warning at high context usage (#27)
- Skip auto-review for fork PRs to prevent CI failures (#25)
- Bump @types/node from 20.19.27 to 25.0.3 (#2)
- Add CI workflow to build dist/ after merge - closes attack vector where malicious code could be injected via compiled output in PRs
- Remove dist/ from git tracking - PRs now contain source only, CI handles compilation
- Add 45k token autocompact buffer to context percentage calculation - now matches
/contextoutput accurately by accounting for Claude Code's reserved autocompact space - Fix CI caching with package-lock.json
- Use Opus 4.5 for GitHub Actions code review
- Setup command now auto-detects installed plugin version (no manual path updates needed)
- Setup prompts for optional GitHub star after successful configuration
- Remove husky pre-commit hook (CI now handles dist/ compilation)
- Bump c8 from 9.1.0 to 10.1.3
Initial release of Claude HUD as a Claude Code statusline plugin.
- Real-time context usage monitoring with color-coded progress bar
- Active tool tracking with completion counts
- Running agent status with elapsed time
- Todo progress display
- Native token data from Claude Code stdin
- Transcript parsing for tool/agent/todo activity