
Hud
Install and switch oh-my-claudecode HUD statusline presets (minimal, focused, full) under your Claude config directory.
Overview
HUD is an agent skill for the Build phase that configures oh-my-claudecode statusline display presets and auto-installs the OMC HUD wrapper in your Claude config directory.
Install
npx skills add https://github.com/yeachan-heo/oh-my-claudecode --skill hudWhat is this skill?
- Quick commands: setup, minimal, focused (default), full, and status inspection
- Auto-setup creates ~/.claude/hud/omc-hud.mjs and wires statusLine in settings.json when missing
- Respects CLAUDE_CONFIG_DIR for all documented paths
- Level-2 config-writer scope limited to ~/.claude/** per skill metadata
- 5 HUD subcommands documented: default, setup, minimal, focused, full, plus status
Adoption & trust: 666 installs on skills.sh; 36k GitHub stars; 3/3 security scanners passed (skills.sh audits).
What problem does it solve?
Your Claude Code statusline HUD is missing, misconfigured, or too noisy and you do not want to manually trace settings.json and hud scripts.
Who is it for?
Claude Code users on oh-my-claudecode who want one-command HUD repair and layout switching.
Skip if: Developers not using Claude Code or OMC, or anyone who cannot allow writes to Claude config paths.
When should I use this skill?
Argument hints setup|minimal|focused|full|status or user wants OMC HUD statusline install, repair, or preset change.
What do I get? / Deliverables
HUD files and statusLine settings are created or updated to your chosen preset, with a clear status report and restart guidance if the agent changed config.
- omc-hud.mjs wrapper when absent
- Updated statusLine entry in settings.json
- Preset selection applied (minimal, focused, or full)
Recommended Skills
Journey fit
HUD setup is agent-runtime ergonomics while you build with Claude Code—not a product feature shipped to end users. Agent-tooling subphase covers statusline wrappers, settings.json, and local ~/.claude (or CLAUDE_CONFIG_DIR) configuration.
How it compares
Local Claude Code statusline config—not a Grafana HUD or in-app SaaS analytics widget.
Common Questions / FAQ
Who is hud for?
Solo builders using oh-my-claudecode in Claude Code who want to manage statusline HUD layout and installation from the agent.
When should I use hud?
At the start of Build agent-tooling work when adopting OMC, after config resets, or when you want minimal vs full HUD density for a long coding block.
Is hud safe to install?
Review the Security Audits panel on this Prism page; the skill is documented to write under ~/.claude (or CLAUDE_CONFIG_DIR)—back up settings.json before setup.
SKILL.md
READMESKILL.md - Hud
# 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: ```bash 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: ```bash 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: ```bash 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): ```bash 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: ```bash node -e "cons