Jarrod Watts ff79ceba89 opensourcify
2026-01-03 19:07:42 +11:00
2026-01-03 19:07:42 +11:00
2026-01-03 18:52:12 +11:00
2026-01-03 18:52:12 +11:00
2026-01-03 19:07:42 +11:00
2026-01-03 19:07:42 +11:00
2026-01-03 19:07:42 +11:00
2026-01-03 19:07:42 +11:00
2026-01-03 18:52:12 +11:00
2026-01-03 19:07:42 +11:00
2026-01-03 19:07:42 +11:00
2026-01-03 19:07:42 +11:00
2026-01-03 19:07:42 +11:00
2026-01-03 18:52:12 +11:00

Claude HUD

License

Real-time statusline HUD for Claude Code. See context usage, tool activity, agent status, and todo progress directly in your terminal.

[Opus] ████████░░ 45% | 📋 3 rules | 🔌 5 MCPs | ⏱️ 12m
◐ Edit: auth.ts | ✓ Read ×3 | ✓ Grep ×2
◐ explore [haiku]: Finding auth code (2m 15s)
▸ Fix authentication bug (2/5)

Why?

When Claude shows "Thinking..." for minutes, you have no visibility into what's happening. Claude HUD gives you X-ray vision:

  • Context health — See exactly how full your context window is (native, accurate data)
  • Tool activity — Watch Claude read, edit, and search files in real-time
  • Agent tracking — See which subagents are running and what they're doing
  • Todo progress — Track task completion as Claude works

Installation

claude /plugin install github.com/jarrodwatts/claude-hud

That's it. Start Claude Code as usual — the statusline appears automatically.

What You See

Line 1: Session Info

[Opus] ████████░░ 45% | 📋 3 rules | 🔌 5 MCPs | ⏱️ 12m
  • Model — Current model (Opus, Sonnet, Haiku)
  • Context bar — Visual progress with color coding:
    • 🟢 Green: <70% (healthy)
    • 🟡 Yellow: 70-85% (getting full)
    • 🔴 Red: >85% (warning) — shows token breakdown
    • ⚠️ COMPACT: >95% (critical)
  • Rules count — How many CLAUDE.md files loaded
  • MCP count — Connected MCP servers
  • Hooks count — Number of configured hooks (from settings)
  • Duration — Session time

Line 2: Tool Activity

◐ Edit: auth.ts | ✓ Read ×3 | ✓ Grep ×2
  • Running tools with ◐ spinner and target file
  • Completed tools aggregated by type with counts

Line 3: Agent Status (when active)

◐ explore [haiku]: Finding auth code (2m 15s)
  • Agent type and model
  • Description of what it's doing
  • Elapsed time

Line 4: Todo Progress (when todos exist)

▸ Fix authentication bug (2/5)
  • Current task being worked on
  • Progress (completed/total)

How It Works

Claude HUD uses Claude Code's statusline API — a multi-line display that updates every ~300ms.

Unlike other approaches, Claude HUD:

  • No separate window — Displays inline in your terminal
  • No hooks required — Parses the transcript directly (hooks are optional and only counted)
  • Native data — Gets accurate token/context info from Claude Code
  • Works everywhere — Any terminal, not just tmux/iTerm

Architecture

Claude Code → stdin JSON (model, tokens, context)
           → transcript JSONL (tools, agents, todos)
           → claude-hud renders 4 lines
           → Claude Code displays them

Requirements

  • Claude Code v1.0.80+
  • Node.js 18+ or Bun

Configuration

Claude HUD works with zero configuration. Optionally customize via ~/.claude/hud/config.json:

{
  "showRules": true,
  "showMcps": true,
  "showDuration": true,
  "contextWarningThreshold": 85,
  "contextCriticalThreshold": 95
}

Development

git clone https://github.com/jarrodwatts/claude-hud
cd claude-hud

# Install & build
npm ci
npm run build

# Test with sample data
echo '{"model":{"display_name":"Opus"},"context_window":{"current_usage":{"input_tokens":45000},"context_window_size":200000}}' | node dist/index.js

Testing

npm test

See TESTING.md for the full testing strategy and contribution expectations.

Contributing

See CONTRIBUTING.md for guidelines and CODE_OF_CONDUCT.md for community standards.

Support

See SUPPORT.md for support scope and contact guidance.

Maintainers

See MAINTAINERS.md.

Plugin Release

See RELEASING.md for the checklist to ship a new Claude Code plugin release.

License

MIT

Credits

Built with Claude Code.


v2.0 — Complete rewrite from split-pane TUI to inline statusline. See v1 for the original split-pane version.

Languages
JavaScript 60%
TypeScript 40%