This release is a rewrite for simplicity, with the same options in about half the source and a quarter of the test code. It needs Claude Code v2.1.260 or later.
Changed
- Read
version,cost,prompt_cache,session_name,output_style, andworkspace.repofrom Claude Code's stdin instead of deriving them. - The prompt-cache expiry and hit rate come from Claude Code's
prompt_cache, so the expiry no longer readsexpiredwhile the cache is warm. display.showCostshows Claude Code's own cost; the local pricing-table estimate is removed.- Context percentage always follows Claude Code's
used_percentage, falling back to the last request's size in the transcript when Claude Code reports none.display.autocompactBufferanddisplay.promptCacheTtlSecondsno longer exist. - Session duration is Claude Code's running time for the session.
- Git status comes from one
git status --porcelain=v2call, down from four or five, and the branch link comes fromworkspace.repo. A repository with no commits now shows its branch. - The compact layout gains expanded's branch link and push-threshold colours, and
display.timeFormat: "elapsed"now works there. /claude-hud:setupinstalls a small launcher and writessettings.jsonwith a helper script instead of hand-built shell commands. Existing setups keep working; re-run setup to switch. It asks nothing unless it would replace another status line; customize afterwards by asking Claude or with/claude-hud:configure. ArefreshIntervalyou set yourself is kept./claude-hud:configureasks one short set of questions and previews the diff.- The default HUD no longer parses the transcript, runs
claude --version, or keeps context or transcript caches on disk.
Fixed
- The macOS memory reading no longer blocks the rest of the render.
- The daily cost ledger no longer throws on a non-string
session_id.
Security
- Sanitize the output style, tool names, tool targets (paths, Grep patterns, Bash commands), todo text, and the model name before display. They reached the terminal raw.
/claude-hud:setupwritessettings.jsonthrough a dotfiles symlink and keeps its permissions.