# Changelog All notable changes to Claude HUD will be documented in this file. ## [Unreleased] ### Changed - Simplify usage display to rely only on Claude Code's official stdin `rate_limits` fields. - Remove the background OAuth usage API fallback, related cache/lock behavior, and credential-derived subscriber plan labels from the HUD. ## [0.0.10] - 2026-03-23 ### Added - Configurable HUD color overrides, including named presets, 256-color indices, and hex values. - `display.customLine` support for a short custom phrase in the HUD. - New opt-in display toggles for session name, combined context mode (`display.contextValue: "both"`), Claude Code version, and approximate system RAM usage in expanded layout. ### Changed - Setup and plugin detection now better handle `CLAUDE_CONFIG_DIR`, Windows shell quoting, and Bun `--env-file` installs without inheriting project environment files. - Usage display now prefers Claude Code stdin `rate_limits` data when available, still falls back to the existing OAuth/cache path, and presents weekly-only/free-user usage more cleanly. - Context percentages and token displays now follow Claude Code's reported context window size, including newer 1M-context sessions, with a lower fallback autocompact estimate that better matches `/context`. - Usage text output now keeps the last successful values visible while syncing, shows the 7-day reset countdown when applicable, and clarifies that standard proxy environment variables are the supported way to route Anthropic traffic. - Progress bars and expanded-layout output now adapt more cleanly to narrow terminal widths. ### Fixed - Setup is more reliable in sessions that previously failed to surface the HUD until Claude Code restarted, and plugin command discovery no longer fails with unknown-skill errors after install. - Usage handling is more resilient under OAuth token refreshes, proxy tunnels, explicit TLS overrides, zero-byte lock files, stale-cache recovery, and rate-limit edge cases that previously caused repeated `429` or syncing failures. - Account-scoped credential lookup and plugin selection are more reliable for multi-account setups and multiple installed plugin versions. - Expanded-layout rendering now preserves speed, duration, extra labels, and weekly-only usage output correctly. - Tool execution no longer scrolls the terminal to the top, and transcript reparsing now avoids repeatedly caching partial parse results on large histories. --- ## [0.0.9] - 2026-03-05 ### Changed - Add Usage API timeout override via `CLAUDE_HUD_USAGE_TIMEOUT_MS` (default now 15s). ### Fixed - Setup instructions now generate shell-safe Windows commands for `win32 + bash` environments (#121, #148). - Bedrock startup model labels now normalize known model IDs when `model.display_name` is missing (#137). - Usage API reliability improvements for proxy and OAuth token-refresh edge cases: - Respect `HTTPS_PROXY`/`ALL_PROXY`/`HTTP_PROXY` with `NO_PROXY` bypass. - Preserve usage and plan display when keychain tokens refresh without `subscriptionType` metadata. - Reduce false `timeout`/`403` usage warnings in proxied and high-latency environments (#146, #161, #162). - Render output now preserves regular spaces instead of non-breaking spaces to avoid vertical statusline rendering issues on startup (#142). --- ## [0.0.8] - 2026-03-03 ### Added - Session name display in the statusline (#155). - `display.contextValue: "remaining"` mode to show remaining context percent (#157). - Regression tests for `CLAUDE_CONFIG_DIR` path handling, keychain service resolution fallback ordering, and config counter overlap edge cases. ### Changed - 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). ### Fixed - Respect `CLAUDE_CONFIG_DIR` for 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 `.claude` files are still counted when `cwd` is 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.md` when `cwd` is home (#141). ### Dependencies - Bump `@types/node` from `25.2.3` to `25.3.3` (#153). - Bump `c8` from `10.1.3` to `11.0.0` (#154). --- ## [0.0.7] - 2026-02-06 ### Changed - **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)` - 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) ### Added - Setup onboarding now offers optional features (tools, agents & todos, session info) before finishing - `display.showSpeed` config option for output token speed ### Fixed - 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) --- ## [0.0.6] - 2026-01-14 ### Added - **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 ### Changed - Default layout is now `expanded` for new installations - Threshold logic uses `max(5h, 7d)` to ensure high 7-day usage isn't hidden ### Fixed - Ghost installation detection and cleanup in setup command (#75) ### Migration - Existing configs with `layout: "default"` automatically migrate to `lineLayout: "compact"` - Existing configs with `layout: "separators"` migrate to `lineLayout: "compact"` + `showSeparators: true` --- ## [0.0.5] - 2026-01-14 ### Added - Native context percentage support for Claude Code v2.1.6+ - Uses `used_percentage` field from stdin when available (accurate, matches `/context`) - Automatic fallback to manual calculation for older versions - Handles edge cases: NaN, negative values, values >100 - `display.autocompactBuffer` config option (`'enabled'` | `'disabled'`, default: `'enabled'`) - `'enabled'`: Shows buffered % (matches `/context` when autocompact ON) - **default** - `'disabled'`: Shows raw % (matches `/context` when autocompact OFF) - EXDEV cross-device error detection for Linux plugin installation (#53) ### Changed - 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) ### Fixed - Git status: move `--no-optional-locks` to correct position as global git option (#65) - Prevent stale `index.lock` files during git operations (#63) - Exclude disabled MCP servers from count (#47) - Reconvert Date objects when reading from usage API cache (#45) ### Credits - Ideas from [#30](https://github.com/jarrodwatts/claude-hud/pull/30) ([@r-firpo](https://github.com/r-firpo)), [#43](https://github.com/jarrodwatts/claude-hud/pull/43) ([@yansircc](https://github.com/yansircc)), [#49](https://github.com/jarrodwatts/claude-hud/pull/49) ([@StephenJoshii](https://github.com/StephenJoshii)) informed the autocompact solution ### Dependencies - Bump @types/node from 25.0.3 to 25.0.6 (#61) --- ## [0.0.4] - 2026-01-07 ### Added - Configuration system via `~/.claude/plugins/claude-hud/config.json` - Interactive `/claude-hud:configure` skill 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 ### Fixed - Git status spacing: `main*↑2↓1` → `main* ↑2 ↓1` - Root path rendering: show `/` instead of empty - Windows path normalization ### Credits - Config system, layouts, path levels, git toggle by @Tsopic (#32) - Usage API, configure skill, bug fixes by @melon-hub (#34) --- ## [0.0.3] - 2025-01-06 ### Added - 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) ### Changed - Remove redundant COMPACT warning at high context usage (#27) ### Fixed - Skip auto-review for fork PRs to prevent CI failures (#25) ### Dependencies - Bump @types/node from 20.19.27 to 25.0.3 (#2) --- ## [0.0.2] - 2025-01-04 ### Security - 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 ### Fixed - Add 45k token autocompact buffer to context percentage calculation - now matches `/context` output 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 ### Changed - 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) ### Dependencies - Bump c8 from 9.1.0 to 10.1.3 --- ## [0.0.1] - 2025-01-04 Initial release of Claude HUD as a Claude Code statusline plugin. ### Features - 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