
Hud
- 778 installs
- 38.3k repo stars
- Updated August 4, 2026
- yeachan-heo/oh-my-claudecode
hud is a Claude Code configuration skill that customizes the oh-my-claudecode Heads-Up Display statusline with layout presets and display elements for cleaner real-time agent feedback while coding.
About
hud is an oh-my-claudecode skill that configures the OMC Heads-Up Display on Claude Code's statusline. The skill supports quick commands such as /oh-my-claudecode:hud, setup, and presets including minimal, focused, and full layouts, writing configuration under ~/.claude while respecting CLAUDE_CONFIG_DIR overrides. Developers reach for hud when agent sessions feel noisy or when they want tighter real-time visibility into model status, tool activity, or session state. Setup can auto-repair missing HUD configuration and switch between display densities without editing JSON by hand. The skill is scoped as a config-writer at level 2 for ~/.claude paths, making it a focused ergonomics upgrade for daily Claude Code workflows.
- Quick commands: setup, minimal, focused, full, status
- Auto-setup creates ~/.claude/hud/omc-hud.mjs and updates settings.json when needed
- Four display presets: minimal, focused (default), full, and status
- Respects CLAUDE_CONFIG_DIR environment variable
- One-command status check and repair
Hud by the numbers
- 778 all-time installs (skills.sh)
- +7 installs in the week ending Jul 27, 2026 (Skillselion tracking)
- Ranked #1,345 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
- Security screen: LOW risk (skills.sh audit)
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/yeachan-heo/oh-my-claudecode --skill hudAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 778 |
|---|---|
| repo stars | ★ 38.3k |
| Security audit | 3 / 3 scanners passed |
| Last updated | August 4, 2026 |
| Repository | yeachan-heo/oh-my-claudecode ↗ |
How do you customize the Claude Code HUD statusline?
Customize the Claude Code Heads-Up Display for cleaner real-time feedback while coding with agents.
Who is it for?
Claude Code users running oh-my-claudecode who want cleaner, preset-driven statusline feedback during agent-assisted coding.
Skip if: Developers not using Claude Code or oh-my-claudecode, or teams needing project-level application UI rather than agent statusline configuration.
When should I use this skill?
A developer asks to configure, simplify, or repair the Claude Code HUD, statusline, or oh-my-claudecode display presets.
What you get
Updated ~/.claude HUD configuration with chosen layout preset, display elements, and working statusline feedback.
- HUD configuration file
- active statusline preset
Files
HUD Skill
Configure the OMC HUD (Heads-Up Display) for the statusline.
Note: All ~/.claude/... paths in this guide respect CLAUDE_CONFIG_DIR when that environment variable is set.
Quick Commands
| Command | Description |
|---|---|
/oh-my-claudecode:hud | Show current HUD status (auto-setup if needed) |
/oh-my-claudecode:hud setup | Install/repair HUD statusline |
/oh-my-claudecode:hud minimal | Switch to minimal display |
/oh-my-claudecode:hud focused | Switch to focused display (default) |
/oh-my-claudecode:hud full | Switch to full display |
/oh-my-claudecode:hud status | Show detailed HUD status |
Auto-Setup
When you run /oh-my-claudecode:hud or /oh-my-claudecode:hud setup, the system will automatically: 1. Check if ~/.claude/hud/omc-hud.mjs exists 2. Check if statusLine is configured in ~/.claude/settings.json 3. If missing, create the HUD wrapper script and configure settings 4. Report status and prompt to restart Claude Code if changes were made
IMPORTANT: If the argument is setup OR if the HUD script doesn't exist at ~/.claude/hud/omc-hud.mjs, you MUST create the HUD files directly using the instructions below.
Setup Instructions (Run These Commands)
Step 1: Check if setup is needed:
node -e "const p=require('path'),f=require('fs'),d=process.env.CLAUDE_CONFIG_DIR||p.join(require('os').homedir(),'.claude');console.log(f.existsSync(p.join(d,'hud','omc-hud.mjs'))?'EXISTS':'MISSING')"Step 2: Verify the plugin is installed:
node -e "const p=require('path'),f=require('fs'),d=process.env.CLAUDE_CONFIG_DIR||p.join(require('os').homedir(),'.claude'),b=p.join(d,'plugins','cache','omc','oh-my-claudecode');try{const v=f.readdirSync(b).filter(x=>/^\d/.test(x)).sort((a,c)=>a.localeCompare(c,void 0,{numeric:true}));if(v.length===0){console.log('Plugin not installed - run: /plugin install oh-my-claudecode');process.exit()}const l=v[v.length-1],h=p.join(b,l,'dist','hud','index.js');console.log('Version:',l);console.log(f.existsSync(h)?'READY':'NOT_FOUND - try reinstalling: /plugin install oh-my-claudecode')}catch{console.log('Plugin not installed - run: /plugin install oh-my-claudecode')}"Step 3: If omc-hud.mjs is MISSING or argument is setup, install the HUD wrapper and its dependency from the canonical template:
HUD_DIR="${CLAUDE_CONFIG_DIR:-$HOME/.claude}/hud"
mkdir -p "$HUD_DIR/lib"
cp "${CLAUDE_PLUGIN_ROOT}/scripts/lib/hud-wrapper-template.txt" "$HUD_DIR/omc-hud.mjs"
cp "${CLAUDE_PLUGIN_ROOT}/scripts/lib/config-dir.mjs" "$HUD_DIR/lib/config-dir.mjs"IMPORTANT: Always copy from the canonical template at scripts/lib/hud-wrapper-template.txt. Do NOT write the wrapper content inline — the template is the single source of truth and is guarded by drift tests (src/__tests__/hud-wrapper-template-sync.test.ts, src/__tests__/paths-consistency.test.ts).
Step 4: Make it executable (Unix only, skip on Windows):
node -e "if(process.platform==='win32'){console.log('Skipped (Windows)')}else{require('fs').chmodSync(require('path').join(process.env.CLAUDE_CONFIG_DIR||require('path').join(require('os').homedir(),'.claude'),'hud','omc-hud.mjs'),0o755);console.log('Done')}"Step 5: Update settings.json to use the HUD:
Read ${CLAUDE_CONFIG_DIR:-~/.claude}/settings.json, then update/add the statusLine field.
IMPORTANT: Do not use ~ in the command. On Unix, use $HOME to keep the path portable across machines. On Windows, use an absolute path because Windows does not expand ~ in shell commands.
If you are on Windows, first determine the correct path:
node -e "const p=require('path').join(require('os').homedir(),'.claude','hud','omc-hud.mjs').split(require('path').sep).join('/');console.log(JSON.stringify(p))"IMPORTANT: The command path MUST use forward slashes on all platforms. Claude Code executes statusLine commands via bash, which interprets backslashes as escape characters and breaks the path.
Then set the statusLine field. On Unix it should stay portable and look like:
{
"statusLine": {
"type": "command",
"command": "node ${CLAUDE_CONFIG_DIR:-$HOME/.claude}/hud/omc-hud.mjs"
}
}On Windows the path uses forward slashes (not backslashes):
{
"statusLine": {
"type": "command",
"command": "node C:/Users/username/.claude/hud/omc-hud.mjs"
}
}Use the Edit tool to add/update this field while preserving other settings.
Step 6: Clean up old HUD scripts (if any):
node -e "const p=require('path'),f=require('fs'),d=process.env.CLAUDE_CONFIG_DIR||p.join(require('os').homedir(),'.claude'),t=p.join(d,'hud','omc-hud.js');try{if(f.existsSync(t)){f.unlinkSync(t);console.log('Removed legacy omc-hud.js')}else{console.log('No legacy script found')}}catch{}"Step 7: Tell the user to restart Claude Code for changes to take effect.
Display Presets
Minimal
Shows only the essentials:
[OMC] ralph | ultrawork | todos:2/5Focused (Default)
Shows all relevant elements:
[OMC] branch:main | ralph:3/10 | US-002 | ultrawork skill:planner | ctx:67% | agents:2 | bg:3/5 | todos:2/5Full
Shows everything including multi-line agent details:
[OMC] repo:oh-my-claudecode branch:main | ralph:3/10 | US-002 (2/5) | ultrawork | ctx:[████░░]67% | agents:3 | bg:3/5 | todos:2/5
├─ O architect 2m analyzing architecture patterns...
├─ e explore 45s searching for test files
└─ s executor 1m implementing validation logicMulti-Line Agent Display
When agents are running, the HUD shows detailed information on separate lines:
- Tree characters (
├─,└─) show visual hierarchy - Agent code (O, e, s) indicates agent type with model tier color
- Duration shows how long each agent has been running
- Description shows what each agent is doing (up to 45 chars)
Display Elements
| Element | Description |
|---|---|
[OMC] | Mode identifier |
repo:name | Git repository name (cyan) |
branch:name | Git branch name (cyan) |
ralph:3/10 | Ralph loop iteration/max |
US-002 | Current PRD story ID |
ultrawork | Active mode badge |
skill:name | Last activated skill (cyan) |
ctx:67% | Context window usage |
agents:2 | Running subagent count |
bg:3/5 | Background task slots |
todos:2/5 | Todo completion |
Color Coding
- Green: Normal/healthy
- Yellow: Warning (context >70%, ralph >7)
- Red: Critical (context >85%, ralph at max)
Configuration Location
HUD config is stored in ~/.claude/settings.json under the omcHud key (or your custom config directory if CLAUDE_CONFIG_DIR is set).
Legacy config location (deprecated): ~/.claude/.omc/hud-config.json
Manual Configuration
You can manually edit the config file. Each option can be set individually - any unset values will use defaults.
{
"preset": "focused",
"elements": {
"omcLabel": true,
"updateNotification": true,
"ralph": true,
"autopilot": true,
"prdStory": true,
"activeSkills": true,
"lastSkill": true,
"contextBar": true,
"agents": true,
"agentsFormat": "multiline",
"backgroundTasks": true,
"todos": true,
"thinking": true,
"thinkingFormat": "text",
"permissionStatus": false,
"apiKeySource": false,
"profile": true,
"promptTime": true,
"sessionHealth": true,
"useBars": true,
"showCallCounts": true,
"callCountsFormat": "auto",
"safeMode": true,
"maxOutputLines": 4
},
"thresholds": {
"contextWarning": 70,
"contextCompactSuggestion": 80,
"contextCritical": 85,
"ralphWarning": 7
},
"staleTaskThresholdMinutes": 30,
"contextLimitWarning": {
"threshold": 80,
"autoCompact": false
}
}callCountsFormat
Controls the call-count badge icon style:
"auto"(default): emoji on macOS/Linux, ASCII on Windows/WSL"emoji": force🔧 🤖 ⚡"ascii": forceT: A: S:
safeMode
When safeMode is true (default), the HUD strips ANSI codes and uses ASCII-only output to prevent terminal rendering corruption during concurrent updates. This is especially important on Windows and when using terminal multiplexers.
agentsFormat Options
count: agents:2codes: agents:Oes (type-coded with model tier casing)codes-duration: agents:O(2m)es (codes with duration)detailed: agents:[architect(2m),explore,exec]descriptions: O:analyzing code | e:searching (codes + what they're doing)tasks: [analyzing code, searching...] (just descriptions)multiline: Multi-line display with full agent details on separate lines
Troubleshooting
If the HUD is not showing: 1. Run /oh-my-claudecode:hud setup to auto-install and configure 2. Restart Claude Code after setup completes 3. If still not working, run /oh-my-claudecode:omc-doctor for full diagnostics
Legacy string format migration: Older OMC versions wrote statusLine as a plain string (e.g., "~/.claude/hud/omc-hud.mjs"). Modern Claude Code (v2.1+) requires an object format. Running the installer or /oh-my-claudecode:hud setup will auto-migrate legacy strings to the correct object format:
{
"statusLine": {
"type": "command",
"command": "node ${CLAUDE_CONFIG_DIR:-$HOME/.claude}/hud/omc-hud.mjs"
}
}Node 24+ compatibility: The HUD wrapper script imports homedir from node:os (not node:path). If you encounter SyntaxError: The requested module 'path' does not provide an export named 'homedir', re-run the installer to regenerate omc-hud.mjs.
Manual verification:
- HUD script:
~/.claude/hud/omc-hud.mjs - Settings:
~/.claude/settings.jsonshould havestatusLineconfigured as an object withtypeandcommandfields
---
The HUD updates automatically every ~300ms during active sessions.
Related skills
FAQ
What HUD presets does the hud skill support?
The hud skill supports setup, minimal, focused, full, and status modes for the oh-my-claudecode Heads-Up Display. Each preset changes which statusline elements appear during Claude Code agent sessions.
Where does the hud skill write configuration?
The hud skill writes Claude Code configuration under ~/.claude paths as a level-2 config-writer. Paths respect the CLAUDE_CONFIG_DIR environment variable when it is set.
Is Hud safe to install?
skills.sh reports 3 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.