Troubleshooting
Fix common issues with Claude HUD installation, display, configuration, and platform-specific quirks. If you run into a problem not covered here, check the GitHub Issues for known bugs and workarounds.
Prerequisites: Claude HUD installed and configured. If you haven’t set it up yet, see Getting Started.
Installation Issues
Linux: EXDEV: cross-device link not permitted
On Linux, /tmp is often mounted as a separate filesystem (tmpfs). When Claude Code tries to move the plugin from a temp directory to the install location, the cross-device move fails.
Fix: Set TMPDIR to a location on the same filesystem before launching Claude Code:
mkdir -p ~/.cache/tmp && TMPDIR=~/.cache/tmp claude
Then install the plugin in that session:
/plugin marketplace add jarrodwatts/claude-hud
/plugin install claude-hud
This is a Claude Code platform limitation, not a Claude HUD bug. You only need the TMPDIR workaround during installation — subsequent sessions work normally.
Plugin Install Fails or Times Out
If /plugin install claude-hud hangs or fails:
- Check your Claude Code version — Claude HUD requires v1.0.80 or later:
claude --version - Verify the marketplace is registered:
If/plugin marketplace listjarrodwatts/claude-hudis missing, re-add it:/plugin marketplace add jarrodwatts/claude-hud - Check network connectivity — the install fetches the plugin from GitHub. Proxy or firewall rules may block it.
- Try a clean install — remove any partial installation and retry:
/plugin uninstall claude-hud /plugin install claude-hud
Statusline Not Appearing
If the HUD doesn’t show after installation, work through these checks in order.
Step 1: Verify the Plugin Is Installed
/plugin list
You should see claude-hud in the output. If not, go back to Getting Started and install it.
Step 2: Run Setup
The statusline needs a configuration entry in ~/.claude/settings.json. Run:
/claude-hud:setup
This registers the statusline command so Claude Code invokes the HUD on every render cycle.
Step 3: Check Claude Code Version
Claude HUD uses the statusline plugin API introduced in Claude Code v1.0.80. Older versions silently ignore the configuration.
claude --version
If your version is below 1.0.80, update Claude Code first.
Step 4: Check for Errors
If the HUD briefly shows [claude-hud] Initializing... and then disappears, the plugin may be crashing. Test it manually:
echo '{"model":{"display_name":"Opus"},"context_window":{"current_usage":{"input_tokens":45000},"context_window_size":200000}}' | node ~/.claude/plugins/claude-hud/dist/index.js
If this produces output, the plugin itself is working and the issue is in the statusline configuration. If it throws an error, check that Node.js 18+ is installed.
Usage Display Issues
The usage display shows your rate limit consumption for Claude Pro, Max, and Team subscriptions. It appears on the same line as the context bar.
Usage Not Showing
Several conditions can prevent usage data from appearing:
| Condition | Why Usage Is Hidden |
|---|---|
| API key authentication | Pay-per-token users have no rate limits to display |
| AWS Bedrock models | Usage is managed in AWS, not via Anthropic’s API |
Custom ANTHROPIC_BASE_URL |
The Anthropic OAuth usage API may not apply |
display.showUsage: false |
Explicitly disabled in config |
To fix:
- Confirm you’re logged in with a Pro, Max, or Team account (not an API key).
- Check your config file at
~/.claude/plugins/claude-hud/config.jsonand ensuredisplay.showUsageis notfalse. - If you use AWS Bedrock, usage display is intentionally hidden — the HUD shows
Bedrockinstead.
Usage Shows Stale Data
The HUD caches usage API responses to reduce network calls:
- Successful responses: cached for 60 seconds (configurable via
usage.cacheTtlSeconds) - Failed responses: cached for 15 seconds (configurable via
usage.failureCacheTtlSeconds)
If you need fresher data, lower the cache TTL in your config:
{
"usage": {
"cacheTtlSeconds": 30
}
}
Proxy and Network Issues
If you’re behind a corporate proxy, the usage API call may fail silently. Set the appropriate proxy environment variable:
export HTTPS_PROXY=http://proxy.example.com:8080
You can also use HTTP_PROXY, ALL_PROXY, or NO_PROXY as needed. For high-latency environments, increase the usage API timeout:
export CLAUDE_HUD_USAGE_TIMEOUT_MS=10000
Configuration Problems
Config Not Applying
If your configuration changes aren’t reflected in the HUD:
-
Check for JSON syntax errors. Invalid JSON silently falls back to defaults. Validate your config file:
cat ~/.claude/plugins/claude-hud/config.json | python3 -m json.toolIf this prints an error, fix the JSON syntax.
-
Verify valid values. Some options have strict allowed values:
lineLayoutmust be"expanded"or"compact"pathLevelsmust be1,2, or3display.contextValuemust be"percent","tokens", or"remaining"
-
Regenerate from scratch. Delete the config and use the guided setup:
rm ~/.claude/plugins/claude-hud/config.jsonThen in Claude Code:
/claude-hud:configure
Manual Edits Overwritten
Running /claude-hud:configure preserves manual settings like colors.*, pathLevels, and threshold overrides. However, if you see unexpected resets:
- Ensure you’re editing the correct file:
~/.claude/plugins/claude-hud/config.json - Back up your config before running the configure command
- Advanced settings not covered by the guided flow (like
colorsandusage.cacheTtlSeconds) are kept intact
Display Issues
Git Status Missing
If the project path shows without a git branch:
- Verify you’re in a git repository:
git rev-parse --is-inside-work-tree - Check that git status is enabled in your config —
gitStatus.enableddefaults totrue, but may have been set tofalse.
Tool, Agent, or Todo Lines Not Appearing
These lines are hidden by default. Enable them in your config:
{
"display": {
"showTools": true,
"showAgents": true,
"showTodos": true
}
}
Or run /claude-hud:configure and choose the Full preset, which enables everything.
Even when enabled, these lines only appear when there’s activity to show:
- Tools line: appears once Claude starts using tools (Read, Edit, Grep, etc.)
- Agents line: appears when subagents (Task calls) are running
- Todos line: appears when a TodoWrite has created tasks
Context Percentage Seems Wrong
The context percentage comes directly from Claude Code’s native token data — it’s not estimated. The formula is:
(input_tokens / context_window_size) × 100
If the number seems off, consider that:
- Claude Code may report a larger context window for newer 1M-context sessions
- The token count includes the full conversation, system prompts, and tool results
- The percentage updates every ~300ms, so brief spikes are normal
Token Breakdown at High Context
When context usage exceeds 85%, the HUD automatically shows a token breakdown to help you understand what’s consuming space. This is controlled by display.showTokenBreakdown (default: true).
To disable it:
{
"display": {
"showTokenBreakdown": false
}
}
Platform-Specific Issues
macOS
Claude HUD generally works without issues on macOS. If you experience display problems:
- Ensure your terminal supports ANSI color codes (Terminal.app, iTerm2, Warp, and Alacritty all do)
- If colors look wrong, check that your terminal is set to report as
xterm-256coloror similar
Linux
Beyond the EXDEV installation issue described above:
- Some minimal terminal emulators may not render ANSI colors correctly
- If running in a container or remote environment, ensure Node.js 18+ is available in the runtime path
Windows (WSL)
Claude HUD works in WSL (Windows Subsystem for Linux). The same Linux-specific notes apply:
- Use the
TMPDIRworkaround if installation fails - Ensure Node.js 18+ is installed within WSL, not the Windows version
Getting Help
If none of the solutions above resolve your issue:
- Search existing issues: github.com/jarrodwatts/claude-hud/issues
- File a new issue with:
- Your Claude Code version (
claude --version) - Your Node.js version (
node --version) - Your operating system and terminal
- The output of running the manual test command from the “Statusline Not Appearing” section
- Your Claude Code version (
- Check the README for the latest updates: github.com/jarrodwatts/claude-hud
Related Topics
- Configuration — full reference for all config options
- HUD Elements — understand what each display element means
- Getting Started — installation and initial setup
- Architecture — how the plugin works under the hood