[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-3105":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":15,"forks30d":15,"starsTrendScore":19,"compositeScore":20,"rankGlobal":9,"rankLanguage":9,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":22,"hasPages":22,"topics":24,"createdAt":9,"pushedAt":9,"updatedAt":32,"readmeContent":33,"aiSummary":34,"trendingCount":15,"starSnapshotCount":15,"syncStatus":14,"lastSyncTime":35,"discoverSource":36},3105,"claude-hud","jarrodwatts\u002Fclaude-hud","jarrodwatts","A Claude Code plugin that shows what's happening - context usage, active tools, running agents, and todo progress",null,"JavaScript",24991,1132,35,2,0,74,518,2583,425,119.16,"MIT License",false,"main",[25,26,27,28,29,30,31],"anthropic","claude","claude-code","cli","plugin","statusline","typescript","2026-06-12 04:00:16","# Claude HUD\n\nA Claude Code plugin that shows what's happening — context usage, active tools, running agents, and todo progress. Always visible below your input.\n\n[![License](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002Fjarrodwatts\u002Fclaude-hud?v=2)](LICENSE)\n[![Stars](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002Fjarrodwatts\u002Fclaude-hud)](https:\u002F\u002Fgithub.com\u002Fjarrodwatts\u002Fclaude-hud\u002Fstargazers)\n\n![Claude HUD in action](claude-hud-preview-5-2.png)\n\n> 🌐 English | [中文文档](README.zh.md)\n\n## Install\n\nInside a Claude Code instance, run the following commands:\n\n**Step 1: Add the marketplace**\n```\n\u002Fplugin marketplace add jarrodwatts\u002Fclaude-hud\n```\n\n**Step 2: Install the plugin**\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>⚠️ Linux users: Click here first\u003C\u002Fstrong>\u003C\u002Fsummary>\n\nOn Linux, `\u002Ftmp` is often a separate filesystem (tmpfs), which causes plugin installation to fail with:\n```\nEXDEV: cross-device link not permitted\n```\n\n**Fix**: Set TMPDIR before installing:\n```bash\nmkdir -p ~\u002F.cache\u002Ftmp && TMPDIR=~\u002F.cache\u002Ftmp claude\n```\n\nThen run the install command below in that session. This is a [Claude Code platform limitation](https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fclaude-code\u002Fissues\u002F14799).\n\n\u003C\u002Fdetails>\n\n```\n\u002Fplugin install claude-hud\n```\n\nAfter that, reload plugins:\n\n```\n\u002Freload-plugins\n```\n\n\n**Step 3: Configure the statusline**\n```\n\u002Fclaude-hud:setup\n```\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>⚠️ Windows users: Click here if setup says no JavaScript runtime was found\u003C\u002Fstrong>\u003C\u002Fsummary>\n\nOn Windows, Node.js LTS is the supported runtime for Claude HUD setup. If setup says no JavaScript runtime was found, install Node.js for your shell first:\n```powershell\nwinget install OpenJS.NodeJS.LTS\n```\nThen restart your shell and run `\u002Fclaude-hud:setup` again.\n\n\u003C\u002Fdetails>\n\nDone! Restart Claude Code to load the new statusLine config, then the HUD will appear.\n\nOn Windows, make that a full Claude Code restart after setup writes the new `statusLine` config.\n\n---\n\n## What is Claude HUD?\n\nClaude HUD gives you better insights into what's happening in your Claude Code session.\n\n| What You See | Why It Matters |\n|--------------|----------------|\n| **Project path** | Know which project you're in (configurable 1-3 directory levels) |\n| **Context health** | Know exactly how full your context window is before it's too late |\n| **Tool activity** | Watch Claude read, edit, and search files as it happens |\n| **Agent tracking** | See which subagents are running and what they're doing |\n| **Todo progress** | Track task completion in real-time |\n\n## What You See\n\n### Default (2 lines)\n```\n[Opus] │ my-project git:(main*)\nContext █████░░░░░ 45% │ Usage ██░░░░░░░░ 25% (1h 30m \u002F 5h)\n```\n- **Line 1** — Model, provider label when positively identified (for example `Bedrock`, `Vertex`), project path, git branch\n- **Line 2** — Context bar (green → yellow → red) and usage rate limits\n\n### Optional lines (enable via `\u002Fclaude-hud:configure`)\n```\n◐ Edit: auth.ts | ✓ Read ×3 | ✓ Grep ×2        ← Tools activity\n◐ explore [haiku]: Finding auth code (2m 15s)    ← Agent status\n▸ Fix authentication bug (2\u002F5)                   ← Todo progress\n```\n\n---\n\n## How It Works\n\nClaude HUD uses Claude Code's native **statusline API** — no separate window, no tmux required, works in any terminal.\n\n```\nClaude Code → stdin JSON → claude-hud → stdout → displayed in your terminal\n           ↘ transcript JSONL (tools, agents, todos)\n```\n\n**Key features:**\n- Native token data from Claude Code (not estimated)\n- Scales with Claude Code's reported context window size, including newer 1M-context sessions\n- Parses the transcript for tool\u002Fagent activity\n- Updates every ~300ms\n\n---\n\n## Configuration\n\nCustomize your HUD anytime:\n\n```\n\u002Fclaude-hud:configure\n```\n\nThe guided flow handles layout, language, and common display toggles. Advanced overrides such as\ncustom colors and thresholds are preserved there, but you set them by editing the config file directly:\n\n- **First time setup**: Choose a preset (Full\u002FEssential\u002FMinimal), pick a label language, then fine-tune individual elements\n- **Customize anytime**: Toggle items on\u002Foff, adjust git display style, switch layouts, or change label language\n- **Preview before saving**: See exactly how your HUD will look before committing changes\n\n### Presets\n\n| Preset | What's Shown |\n|--------|--------------|\n| **Full** | Everything enabled — tools, agents, todos, git, usage, duration |\n| **Essential** | Activity lines + git status, minimal info clutter |\n| **Minimal** | Core only — just model name and context bar |\n\nAfter choosing a preset, you can turn individual elements on or off.\n\n### Manual Configuration\n\nEdit `~\u002F.claude\u002Fplugins\u002Fclaude-hud\u002Fconfig.json` directly for advanced settings such as `colors.*`,\n`pathLevels`, `maxWidth`, threshold overrides, `display.timeFormat`, and `display.promptCacheTtlSeconds`. Running `\u002Fclaude-hud:configure`\npreserves those manual settings while still letting you change `language`, layout, and the common\nguided toggles.\n\nChinese HUD labels are available as an explicit opt-in. English stays the default unless you choose `中文` in `\u002Fclaude-hud:configure` or set `language` in config.\n\n### Options\n\n| Option | Type | Default | Description |\n|--------|------|---------|-------------|\n| `language` | `en` \\| `zh` | `en` | HUD label language. English is the default; set `zh` to enable Chinese labels. |\n| `lineLayout` | string | `expanded` | Layout: `expanded` (multi-line) or `compact` (single line) |\n| `pathLevels` | 1-3 | 1 | Directory levels to show in project path |\n| `maxWidth` | number \\| `null` | `null` | Optional fallback width used only when terminal width detection fails completely |\n| `forceMaxWidth` | boolean | false | Always use `maxWidth` when it is set, even if terminal width detection returns a smaller value |\n| `elementOrder` | string[] | `[\"project\",\"context\",\"usage\",\"promptCache\",\"memory\",\"environment\",\"tools\",\"agents\",\"todos\"]` | Expanded-mode element order. Omit entries to hide them in expanded mode. |\n| `display.mergeGroups` | string[][] | `[[\"context\",\"usage\"]]` | Expanded-mode groups that should share a line when adjacent. Set `[]` to disable merged lines. |\n| `gitStatus.enabled` | boolean | true | Show git branch in HUD |\n| `gitStatus.showDirty` | boolean | true | Show `*` for uncommitted changes |\n| `gitStatus.showAheadBehind` | boolean | false | Show `↑N ↓N` for ahead\u002Fbehind remote |\n| `gitStatus.pushWarningThreshold` | number | 0 | Color the ahead count with the warning color at or above this unpushed-commit count (`0` disables it) |\n| `gitStatus.pushCriticalThreshold` | number | 0 | Color the ahead count with the critical color at or above this unpushed-commit count (`0` disables it) |\n| `gitStatus.showFileStats` | boolean | false | Show file change counts `!M +A ✘D ?U` |\n| `gitStatus.branchOverflow` | `truncate` \\| `wrap` | `truncate` | Keep current truncation behavior or let the git block wrap onto its own line boundary when possible |\n| `display.showModel` | boolean | true | Show model name `[Opus]` |\n| `display.showAddedDirs` | boolean | true | Show extra workspace directories from `\u002Fadd-dir` (e.g. `+sparkle +lib-foo`); empty array renders nothing. In both layouts at most 5 dirs render (overflow shown as `+N more`) and basenames are truncated to 24 chars with `…` |\n| `display.addedDirsLayout` | `inline` \\| `line` | `inline` | `inline` puts dirs next to the project name with a `+name` prefix per dir; `line` renders them on a separate `Added dirs: name1, name2` line (no `+` prefix, comma-separated) |\n| `display.showContextBar` | boolean | true | Show visual context bar `████░░░░░░` |\n| `display.contextValue` | `percent` \\| `tokens` \\| `remaining` \\| `both` | `percent` | Context display format (`45%`, `45k\u002F200k`, `55%` remaining, or `45% (45k\u002F200k)`) |\n| `display.showConfigCounts` | boolean | false | Show CLAUDE.md, rules, MCPs, hooks counts |\n| `display.showCost` | boolean | false | Show session cost using Claude Code's native `cost.total_cost_usd` when available, with a local estimate fallback for direct Anthropic sessions |\n| `display.showOutputStyle` | boolean | false | Show the active Claude Code `outputStyle` from settings files as `style: \u003Cname>` |\n| `display.showDuration` | boolean | false | Show session duration `⏱️ 5m` |\n| `display.showSpeed` | boolean | false | Show output token speed `out: 42.1 tok\u002Fs` |\n| `display.showUsage` | boolean | true | Show Claude subscriber usage limits when available |\n| `display.usageBarEnabled` | boolean | true | Display usage as visual bar instead of text |\n| `display.usageCompact` | boolean | false | Display usage in a shorter text form such as `5h: 25% (1h 30m)`; takes precedence over `display.usageBarEnabled` |\n| `display.showResetLabel` | boolean | true | Show the `resets in` prefix before usage countdowns |\n| `display.timeFormat` | `relative` \\| `absolute` \\| `both` | `relative` | How reset times are shown in usage windows: countdown only (`resets in 2h 30m`), wall-clock time (`resets at 14:30`), or both (`resets in 2h 30m, at 14:30`) |\n| `display.sevenDayThreshold` | 0-100 | 80 | Show 7-day usage when >= threshold (0 = always) |\n| `display.externalUsagePath` | string | `\"\"` | Optional path to a local usage snapshot file used only when stdin `rate_limits` are missing |\n| `display.externalUsageFreshnessMs` | number | `300000` | Maximum allowed age for the external usage snapshot before it is ignored |\n| `display.showTokenBreakdown` | boolean | true | Show token details at high context (85%+) |\n| `display.showTools` | boolean | false | Show tools activity line |\n| `display.showAgents` | boolean | false | Show agents activity line |\n| `display.showTodos` | boolean | false | Show todos progress line |\n| `display.showSessionName` | boolean | false | Show session slug or custom title from `\u002Frename` |\n| `display.showClaudeCodeVersion` | boolean | false | Show the installed Claude Code version, e.g. `CC v2.1.81` |\n| `display.showMemoryUsage` | boolean | false | Show an approximate system RAM usage line in expanded layout |\n| `display.showPromptCache` | boolean | false | Show a prompt cache countdown based on the last assistant response timestamp in the transcript |\n| `display.promptCacheTtlSeconds` | number | `300` | Prompt cache TTL in seconds. Keep the default for Pro, set `3600` for Max |\n| `colors.context` | color value | `green` | Base color for the context bar and context percentage |\n| `colors.usage` | color value | `brightBlue` | Base color for usage bars and percentages below warning thresholds |\n| `colors.warning` | color value | `yellow` | Warning color for context thresholds and usage warning text |\n| `colors.usageWarning` | color value | `brightMagenta` | Warning color for usage bars and percentages near their threshold |\n| `colors.critical` | color value | `red` | Critical color for limit-reached states and critical thresholds |\n| `colors.model` | color value | `cyan` | Color for the model badge such as `[Opus]` |\n| `colors.project` | color value | `yellow` | Color for the project path |\n| `colors.git` | color value | `magenta` | Color for git wrapper text such as `git:(` and `)` |\n| `colors.gitBranch` | color value | `cyan` | Color for the git branch and branch status text |\n| `colors.label` | color value | `dim` | Color for labels and secondary metadata such as `Context`, `Usage`, counts, and progress text |\n| `colors.custom` | color value | `208` | Color for the optional custom line |\n\nSupported color names: `dim`, `red`, `green`, `yellow`, `magenta`, `cyan`, `brightBlue`, `brightMagenta`. You can also use a 256-color number (`0-255`) or hex (`#rrggbb`).\n\n`display.showMemoryUsage` is fully opt-in and only renders in `expanded` layout. It reports approximate system RAM usage from the local machine, not precise memory pressure inside Claude Code or a specific process. The number may overstate actual pressure because reclaimable OS cache and buffers can still be counted as used memory.\n\n`display.showCost` is fully opt-in. ClaudeHUD prefers the native `cost.total_cost_usd` field that Claude Code provides on stdin when it is available. If that field is absent or invalid for a direct Anthropic session, ClaudeHUD falls back to the existing local transcript-based estimate so the cost line still works on older payloads. The native field is absent before the first API response in a session, so the cost display may stay hidden until then. ClaudeHUD also keeps the cost hidden for known routed providers such as Bedrock and Vertex AI, because cloud-provider billed sessions may report `$0.00` or omit the field even though the session was not literally free.\n\n`display.showPromptCache` is fully opt-in. When enabled, ClaudeHUD looks at the timestamp of the last assistant response in the local transcript and shows a live countdown until the prompt cache expires. The default TTL is 5 minutes (`300` seconds). Set `display.promptCacheTtlSeconds` to `3600` if you want a 1-hour Max-style window. If the transcript does not have an assistant timestamp yet, the cache element stays hidden.\n\n### Usage Limits\n\nUsage display is **enabled by default** when Claude Code provides subscriber `rate_limits` data on stdin. It shows your rate limit consumption on line 2 alongside the context bar.\n\nClaudeHUD prefers the official statusline stdin payload. If `rate_limits` are missing, you can opt into a local sidecar fallback by setting `display.externalUsagePath` to a JSON snapshot written by another tool such as a proxy. Stdin still wins whenever both sources exist.\n\nThe fallback snapshot must be fresh enough (`display.externalUsageFreshnessMs`) and include valid `updated_at`, `five_hour`, and\u002For `seven_day` fields. Invalid JSON, stale files, or invalid timestamps are ignored quietly.\n\nFree\u002Fweekly-only accounts render the weekly window by itself instead of showing a ghost `5h: --` placeholder.\n\nThe 7-day percentage appears when above the `display.sevenDayThreshold` (default 80%):\n\n```\nContext █████░░░░░ 45% │ Usage ██░░░░░░░░ 25% (1h 30m \u002F 5h) | ██████████ 85% (2d \u002F 7d)\n```\n\nTo disable, set `display.showUsage` to `false`.\n\nReset times use relative countdowns by default. Set `display.timeFormat` to `absolute` for wall-clock\ntimes or `both` to show both forms. This setting is manual-only today; `\u002Fclaude-hud:configure`\npreserves it without editing it.\n\nSet `display.showResetLabel` to `false` if you want shorter usage countdowns such as `(3h 17m)` instead of `(resets in 3h 17m)`.\n\nSet `display.usageCompact` to `true` if you want the shorter usage-only form, for example `5h: 25% (1h 30m)`. Compact usage takes precedence over `display.usageBarEnabled`.\n\n**Requirements:**\n- Claude Code must include subscriber `rate_limits` data on stdin for the current session\n- Not available for API-key-only users\n\n**Troubleshooting:** If usage doesn't appear:\n- Ensure you're logged in with a Claude subscriber account (not API key)\n- Check `display.showUsage` is not set to `false` in config\n- API users see no usage display (they have pay-per-token, not rate limits)\n- AWS Bedrock models display `Bedrock` and hide usage limits (usage is managed in AWS)\n- Google Vertex AI models display `Vertex` and hide cost estimates (pricing differs from Anthropic direct)\n- Claude Code may leave `rate_limits` empty until after the first model response in a session\n- Some Claude Code builds and subscription tiers may still omit `rate_limits`, even after the first response\n- If you configured `display.externalUsagePath`, ClaudeHUD will try that local snapshot before hiding usage\n- ClaudeHUD never falls back to credential scraping or undocumented API calls\n\nExample fallback snapshot:\n\n```json\n{\n  \"updated_at\": \"2026-04-20T12:00:00.000Z\",\n  \"five_hour\": {\n    \"used_percentage\": 42,\n    \"resets_at\": \"2026-04-20T15:00:00.000Z\"\n  },\n  \"seven_day\": {\n    \"used_percentage\": 84,\n    \"resets_at\": \"2026-04-27T12:00:00.000Z\"\n  }\n}\n```\n\n### Example Configuration\n\n```json\n{\n  \"language\": \"zh\",\n  \"lineLayout\": \"expanded\",\n  \"pathLevels\": 2,\n  \"elementOrder\": [\"project\", \"tools\", \"context\", \"usage\", \"memory\", \"environment\", \"agents\", \"todos\"],\n  \"gitStatus\": {\n    \"enabled\": true,\n    \"showDirty\": true,\n    \"showAheadBehind\": true,\n    \"showFileStats\": true\n  },\n  \"display\": {\n    \"showTools\": true,\n    \"showAgents\": true,\n    \"showTodos\": true,\n    \"showConfigCounts\": true,\n    \"showDuration\": true,\n    \"showMemoryUsage\": true\n  },\n  \"colors\": {\n    \"context\": \"cyan\",\n    \"usage\": \"cyan\",\n    \"warning\": \"yellow\",\n    \"usageWarning\": \"magenta\",\n    \"critical\": \"red\",\n    \"model\": \"cyan\",\n    \"project\": \"yellow\",\n    \"git\": \"magenta\",\n    \"gitBranch\": \"cyan\",\n    \"label\": \"dim\",\n    \"custom\": \"#FF6600\"\n  }\n}\n```\n\n### Display Examples\n\n**1 level (default):** `[Opus] │ my-project git:(main)`\n\n**2 levels:** `[Opus] │ apps\u002Fmy-project git:(main)`\n\n**3 levels:** `[Opus] │ dev\u002Fapps\u002Fmy-project git:(main)`\n\n**With dirty indicator:** `[Opus] │ my-project git:(main*)`\n\n**With ahead\u002Fbehind:** `[Opus] │ my-project git:(main ↑2 ↓1)`\n\n**With file stats:** `[Opus] │ my-project git:(main* !3 +1 ?2)`\n- `!` = modified files, `+` = added\u002Fstaged, `✘` = deleted, `?` = untracked\n- Counts of 0 are omitted for cleaner display\n\n### Troubleshooting\n\n**Config not applying?**\n- Check for JSON syntax errors: invalid JSON silently falls back to defaults\n- Ensure valid values: `pathLevels` must be 1, 2, or 3; `lineLayout` must be `expanded` or `compact`; `maxWidth` must be a positive number\n- Delete config and run `\u002Fclaude-hud:configure` to regenerate\n\n**Git status missing?**\n- Verify you're in a git repository\n- Check `gitStatus.enabled` is not `false` in config\n\n**Tool\u002Fagent\u002Ftodo lines missing?**\n- These are hidden by default — enable with `showTools`, `showAgents`, `showTodos` in config\n- They also only appear when there's activity to show\n\n**HUD not appearing after setup?**\n- Restart Claude Code so it picks up the new statusLine config\n- On macOS, fully quit Claude Code and run `claude` again in your terminal\n\n---\n\n## Requirements\n\n- Claude Code v1.0.80+\n- macOS\u002FLinux: Node.js 18+ or Bun\n- Windows: Node.js 18+\n\n---\n\n## Development\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fjarrodwatts\u002Fclaude-hud\ncd claude-hud\nnpm ci && npm run build\nnpm test\n```\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.\n\n---\n\n## License\n\nMIT — see [LICENSE](LICENSE)\n\n---\n\n## Star History\n\n[![Star History Chart](https:\u002F\u002Fapi.star-history.com\u002Fsvg?repos=jarrodwatts\u002Fclaude-hud&type=Date)](https:\u002F\u002Fstar-history.com\u002F#jarrodwatts\u002Fclaude-hud&Date)\n","Claude HUD 是一个 Claude Code 插件，用于显示会话中的各种状态信息，包括上下文使用情况、活动工具、运行中的代理以及待办事项进度。其核心功能在于提供了一个始终可见的状态栏，帮助用户实时了解项目路径、上下文健康状况、工具活动、代理跟踪和任务完成进度等关键指标。该插件基于 JavaScript 和 TypeScript 开发，具有高度可配置性，支持自定义显示内容。适用于需要频繁监控 Claude Code 会话状态的开发者或团队，特别是在处理复杂项目时能够显著提高工作效率。","2026-06-11 02:52:29","top_language"]