Watch Claude's brain in your terminal

Adds a live statusline to your editor showing context tokens, active tools, running agents, and task progress — no guessing what Claude is doing behind the scenes.

Best for: Engineers shipping Claude integrations who need visibility into what's happening in real time.

Engineering / debugging-investigationatomicfor-engineerslight-setupfrom-repo

Skill file

Preview skill file
---
name: claude-hud-statusline
description: A Claude Code plugin that displays a real-time HUD showing context usage, active tools, running agents, and todo progress in your terminal statusline.
triggers:
  - install claude hud plugin
  - show context usage in claude code
  - add statusline to claude code
  - track tool activity in claude
  - monitor agent progress claude code
  - configure claude hud display
  - claude code context window indicator
  - set up claude hud statusline
---

# Claude HUD

> Skill by [ara.so](https://ara.so) — Daily 2026 Skills collection.

Claude HUD is a Claude Code plugin that adds a persistent statusline to your terminal showing real-time context window usage, active tool calls, running subagents, and todo progress — always visible below your input prompt.

## What It Does

| Feature | Description |
|---------|-------------|
| **Context health** | Visual bar showing how full your context window is (green → yellow → red) |
| **Tool activity** | Live display of file reads, edits, and searches as they happen |
| **Agent tracking** | Shows which subagents are running and what they're doing |
| **Todo progress** | Real-time task completion tracking |
| **Usage limits** | Claude subscriber rate limit consumption |
| **Git status** | Current branch, dirty state, ahead/behind remote |

## Requirements

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

## Installation

Run these commands inside a Claude Code session:

**Step 1: Add the marketplace**
```
/plugin marketplace add jarrodwatts/claude-hud
```

**Step 2: Install the plugin**
```
/plugin install claude-hud
```

> **Linux users**: If you get `EXDEV: cross-device link not permitted`, set TMPDIR first:
> ```bash
> mkdir -p ~/.cache/tmp && TMPDIR=~/.cache/tmp claude
> ```

**Step 3: Configure the statusline**
```
/claude-hud:setup
```

> **Windows users**: If setup reports no JavaScript runtime, install Node.js LTS first:
> ```powershell
> winget install OpenJS.NodeJS.LTS
> ```

**Step 4: Restart Claude Code** to load the new `statusLine` config.

## What You See

### Default 2-line layout
```
[Opus] │ my-project git:(main*)
Context █████░░░░░ 45% │ Usage ██░░░░░░░░ 25% (1h 30m / 5h)
```

### With optional lines enabled
```
[Opus] │ my-project git:(main*)
Context █████░░░░░ 45% │ Usage ██░░░░░░░░ 25% (1h 30m / 5h)
◐ Edit: auth.ts | ✓ Read ×3 | ✓ Grep ×2
◐ explore [haiku]: Finding auth code (2m 15s)
▸ Fix authentication bug (2/5)
```

## Configuration

### Interactive configuration (recommended)
```
/claude-hud:configure
```

This opens a guided flow with preset options:

| Preset | Shows |
|--------|-------|
| **Full** | Everything — tools, agents, todos, git, usage, duration |
| **Essential** | Activity lines + git, minimal clutter |
| **Minimal** | Model name and context bar only |

### Manual configuration

Edit `~/.claude/plugins/claude-hud/config.json` directly:

```json
{
  "lineLayout": "expanded",
  "pathLevels": 2,
  "elementOrder": ["project", "context", "usage", "tools", "agents", "todos"],
  "gitStatus": {
    "enabled": true,
    "showDirty": true,
    "showAheadBehind": true,
    "showFileStats": false
  },
  "display": {
    "showModel": true,
    "showContextBar": true,
    "contextValue": "percent",
    "showUsage": true,
    "usageBarEnabled": true,
    "showTools": true,
    "showAgents": true,
    "showTodos": true,
    "showDuration": false,
    "showSpeed": false,
    "showConfigCounts": false,
    "showMemoryUsage": false,
    "showSessionName": false,
    "showClaudeCodeVersion": false,
    "sevenDayThreshold": 80,
    "showTokenBreakdown": true
  },
  "colors": {
    "context": "green",
    "usage": "brightBlue",
    "warning": "yellow",
    "usageWarning": "brightMagenta",
    "critical": "red",
    "model": "cyan",
    "project": "yellow",
    "git": "magenta",
    "gitBranch": "cyan",
    "label": "dim",
    "custom": "208"
  }
}
```

## Key Configuration Options

### Layout
```json
{
  "lineLayout": "expanded",   // "expanded" (multi-line) or "compact" (single line)
  "pathLevels": 1             // 1-3 directory levels in project path
}
```

Path level examples:
- `1` → `[Opus] │ my-project git:(main)`
- `2` → `[Opus] │ apps/my-project git:(main)`
- `3` → `[Opus] │ dev/apps/my-project git:(main)`

### Context display formats
```json
{
  "display": {
    "contextValue": "percent"    // "45%"
    // "contextValue": "tokens"  // "45k/200k"
    // "contextValue": "remaining" // "55% remaining"
    // "contextValue": "both"    // "45% (45k/200k)"
  }
}
```

### Element ordering (expanded layout)
```json
{
  "elementOrder": ["project", "context", "usage", "memory", "environment", "tools", "agents", "todos"]
}
```
Omit any entry from the array to hide it entirely.

### Git status options
```json
{
  "gitStatus": {
    "enabled": true,
    "showDirty": true,         // "main*" for uncommitted changes
    "showAheadBehind": true,   // "main ↑2 ↓1"
    "showFileStats": true      // "main* !3 +1 ?2" (modified/added/deleted/untracked)
  }
}
```

### Colors

Supported values: named colors (`dim`, `red`, `green`, `yellow`, `magenta`, `cyan`, `brightBlue`, `brightMagenta`), 256-color numbers (`0-255`), or hex (`#rrggbb`).

```json
{
  "colors": {
    "context": "#00FF88",
    "model": "208",
    "project": "#FF6600"
  }
}
```

## How It Works

Claude HUD uses Claude Code's native **statusline API** — no separate window, no tmux needed:

```
Claude Code → stdin JSON → claude-hud → stdout → terminal statusline
           ↘ transcript JSONL (tools, agents, todos parsed live)
```

- Token data comes directly from Claude Code (not estimated)
- Scales with reported context window size including 1M-context sessions
- Parses transcript for tool/agent activity
- Updates every ~300ms

## Common Patterns

### Minimal setup for focused work
```json
{
  "lineLayout": "compact",
  "display": {
    "showModel": true,
    "showContextBar": true,
    "contextValue": "percent",
    "showUsage": false,
    "showTools": false,
    "showAgents": false,
    "showTodos": false
  }
}
```

### Full monitoring setup
```json
{
  "lineLayout": "expanded",
  "pathLevels": 2,
  "gitStatus": {
    "enabled": true,
    "showDirty": true,
    "showAheadBehind": true,
    "showFileStats": true
  },
  "display": {
    "showTools": true,
    "showAgents": true,
    "showTodos": true,
    "showDuration": true,
    "showMemoryUsage": true,
    "showConfigCounts": true,
    "contextValue": "both",
    "showTokenBreakdown": true
  }
}
```

### Always show 7-day usage
```json
{
  "display": {
    "showUsage": true,
    "sevenDayThreshold": 0
  }
}
```
Output: `Context █████░░░░░ 45% │ Usage ██░░░░░░░░ 25% (1h 30m / 5h) | ██████████ 85% (2d / 7d)`

## Troubleshooting

**HUD not appearing after setup**
- Fully restart Claude Code (quit and re-run `claude` in terminal)
- On macOS, ensure you've fully quit the app, not just closed the window

**Config not applying**
- Check for JSON syntax errors — invalid JSON silently falls back to defaults
- Validate: `cat ~/.claude/plugins/claude-hud/config.json | node -e "JSON.parse(require('fs').readFileSync('/dev/stdin','utf8'))"`
- Delete config and run `/claude-hud:configure` to regenerate

**Git status missing**
- Verify you're in a git repository (`git status`)
- Ensure `gitStatus.enabled` is not `false` in config

**Tool/agent/todo lines not showing**
- These are hidden by default — enable with `showTools`, `showAgents`, `showTodos`
- Lines only render when there's active activity to display

**Usage limits not showing**
- Requires a Claude subscriber account (not API key only)
- AWS Bedrock users see `Bedrock` label; usage is managed in AWS console instead
- Usage data may be empty until after the first model response in a new session
- Older Claude Code versions that don't emit `rate_limits` won't show subscriber usage

**Linux cross-device error on install**
```bash
mkdir -p ~/.cache/tmp && TMPDIR=~/.cache/tmp claude
# Then run /plugin install claude-hud inside that session
```

**Windows: no JavaScript runtime found**
```powershell
winget install OpenJS.NodeJS.LTS
# Restart shell, then run /claude-hud:setup again
```

## Plugin Commands Reference

| Command | Description |
|---------|-------------|
| `/plugin marketplace add jarrodwatts/claude-hud` | Register the plugin source |
| `/plugin install claude-hud` | Install the plugin |
| `/claude-hud:setup` | Initial setup wizard, writes `statusLine` config |
| `/claude-hud:configure` | Interactive configuration with preview |

## Config File Location

```
~/.claude/plugins/claude-hud/config.json
```

Source

Creator's repository · aradotso/trending-skills

View on GitHub

Security

Security checks in progress
Results will appear here once audits complete
What this skill can do
Reads your filesConnects to the internetRuns code on your machine
Checked by 3 independent security firms
Does it try to trick the AI?Not yet checkedPending · Gen Agent Trust Hub
Does it sneak in hidden code?Not yet checkedPending · Socket
Does it have known bugs?Not yet checkedPending · Snyk