A Claude Code plugin that shows what's happening — context usage, active tools, running agents, and todo progress. Always visible below your input.

Inside a Claude Code instance, run the following commands:
Step 1: Add the marketplace
/plugin marketplace add jarrodwatts/claude-hud
Step 2: Install the plugin
On Linux, /tmp is often a separate filesystem (tmpfs), which causes plugin installation to fail with:
EXDEV: cross-device link not permitted
Fix: Set TMPDIR before installing:
mkdir -p ~/.cache/tmp && TMPDIR=~/.cache/tmp claude
Then run the install command below in that session. This is a Claude Code platform limitation.
/plugin install claude-hud
Step 3: Configure the statusline
/claude-hud:setup
Done! The HUD appears immediately — no restart needed.
Claude HUD gives you better insights into what's happening in your Claude Code session.
| What You See | Why It Matters |
|---|---|
| Project path | Know which project you're in (configurable 1-3 directory levels) |
| Context health | Know exactly how full your context window is before it's too late |
| Tool activity | Watch Claude read, edit, and search files as it happens |
| Agent tracking | See which subagents are running and what they're doing |
| Todo progress | Track task completion in real-time |
[Opus | Max] │ my-project git:(main*) Context █████░░░░░ 45% │ Usage ██░░░░░░░░ 25% (1h 30m / 5h)
Bedrock), project path, git branch◐ Edit: auth.ts | ✓ Read ×3 | ✓ Grep ×2 ← Tools activity ◐ explore [haiku]: Finding auth code (2m 15s) ← Agent status ▸ Fix authentication bug (2/5) ← Todo progress
Claude HUD uses Claude Code's native statusline API — no separate window, no tmux required, works in any terminal.
Claude Code → stdin JSON → claude-hud → stdout → displayed in your terminal ↘ transcript JSONL (tools, agents, todos)
Key features:
Customize your HUD anytime:
/claude-hud:configure
The guided flow walks you through customization — no manual editing needed:
| Preset | What's Shown |
|---|---|
| Full | Everything enabled — tools, agents, todos, git, usage, duration |
| Essential | Activity lines + git status, minimal info clutter |
| Minimal | Core only — just model name and context bar |
After choosing a preset, you can turn individual elements on or off.
You can also edit the config file directly at ~/.claude/plugins/claude-hud/config.json.
| Option | Type | Default | Description |
|---|---|---|---|
lineLayout | string | expanded | Layout: expanded (multi-line) or compact (single line) |
pathLevels | 1-3 | 1 | Directory levels to show in project path |
gitStatus.enabled | boolean | true | Show git branch in HUD |
gitStatus.showDirty | boolean | true | Show * for uncommitted changes |
gitStatus.showAheadBehind | boolean | false | Show ↑N ↓N for ahead/behind remote |
gitStatus.showFileStats | boolean | false | Show file change counts !M +A ✘D ?U |
display.showModel | boolean | true | Show model name [Opus] |
display.showContextBar | boolean | true | Show visual context bar ████░░░░░░ |
display.contextValue | percent | tokens | percent | Context display format (45% or 45k/200k) |
display.showConfigCounts | boolean | false | Show CLAUDE.md, rules, MCPs, hooks counts |
display.showDuration | boolean | false | Show session duration ⏱️ 5m |
display.showSpeed | boolean | false | Show output token speed out: 42.1 tok/s |
display.showUsage | boolean | true | Show usage limits (Pro/Max/Team only) |
display.usageBarEnabled | boolean | true | Display usage as visual bar instead of text |
display.sevenDayThreshold | 0-100 | 80 | Show 7-day usage when >= threshold (0 = always) |
display.showTokenBreakdown | boolean | true | Show token details at high context (85%+) |
display.showTools | boolean | false | Show tools activity line |
display.showAgents | boolean | false | Show agents activity line |
display.showTodos | boolean | false | Show todos progress line |
Usage display is enabled by default for Claude Pro, Max, and Team subscribers. It shows your rate limit consumption on line 2 alongside the context bar.
The 7-day percentage appears when above the display.sevenDayThreshold (default 80%):
Context █████░░░░░ 45% │ Usage ██░░░░░░░░ 25% (1h 30m / 5h) | ██████████ 85% (2d / 7d)
To disable, set display.showUsage to false.
Requirements:
Troubleshooting: If usage doesn't appear:
display.showUsage is not set to false in configBedrock and hide usage limits (usage is managed in AWS){
"lineLayout": "expanded",
"pathLevels": 2,
"gitStatus": {
"enabled": true,
"showDirty": true,
"showAheadBehind": true,
"showFileStats": true
},
"display": {
"showTools": true,
"showAgents": true,
"showTodos": true,
"showConfigCounts": true,
"showDuration": true
}
}
1 level (default): [Opus] │ my-project git:(main)
2 levels: [Opus] │ apps/my-project git:(main)
3 levels: [Opus] │ dev/apps/my-project git:(main)
With dirty indicator: [Opus] │ my-project git:(main*)
With ahead/behind: [Opus] │ my-project git:(main ↑2 ↓1)
With file stats: [Opus] │ my-project git:(main* !3 +1 ?2)
! = modified files, + = added/staged, ✘ = deleted, ? = untrackedConfig not applying?
pathLevels must be 1, 2, or 3; lineLayout must be expanded or compact/claude-hud:configure to regenerateGit status missing?
gitStatus.enabled is not false in configTool/agent/todo lines missing?
showTools, showAgents, showTodos in configgit clone https://github.com/jarrodwatts/claude-hud
cd claude-hud
npm ci && npm run build
npm test
See CONTRIBUTING.md for guidelines.
MIT — see LICENSE