From oh-my-hi
Generates browser-based oh-my-hi dashboard cataloging Claude Code harness elements like skills, agents, plugins, hooks, memory, MCP servers, rules, principles with usage and token analysis. Invoke via /omh.
How this skill is triggered — by the user, by Claude, or both
Slash command
/oh-my-hi:omh [--data-only] [--enable-auto] [--disable-auto] [--status] [--update] [--help][--data-only] [--enable-auto] [--disable-auto] [--status] [--update] [--help]The summary Claude sees in its skill listing — used to decide when to auto-load this skill
> **Oh, so that's what Claude's been doing!**
Oh, so that's what Claude's been doing!
Generates a full harness insights dashboard and opens it in the browser.
/omh — Full build (parse data → build web-ui → start local HTTP server → open browser)/omh --data-only — Regenerate data files only (server continues serving updated files)/omh --enable-auto — Enable automatic rebuild on session end/omh --disable-auto — Disable automatic rebuild/omh --status — Check auto-refresh status/omh --update — Check and install latest version/omh --help — Show helpIf the console output after running the script shows auto-refresh not configured, ask the user:
Would you like to enable automatic dashboard data refresh on session end?
- If enabled, data is automatically refreshed at every session end, so the dashboard always shows the latest data.
- If disabled, you need to manually run
/omh --data-onlyor/omhto refresh data.
If the user chooses enable, run --enable-auto. If they choose disable, explain the manual refresh method.
data-core.js, data-usage.js) and index.htmlscripts/serve.mjs serves output/ over HTTP (port 8282, auto-detects next available); re-uses running instance on subsequent /omh calls--enable-auto registers a Stop hook — rebuilds data on every session endopen, Windows start, Linux xdg-openFind and run the script (picks the latest version from cache, falls back to marketplaces):
PLUGINS_DIR="${CLAUDE_CONFIG_DIR:-$HOME/.claude}/plugins"
# Pick the highest semver version from cache (sort -V handles semantic versioning)
SCRIPT=$(find "$PLUGINS_DIR/cache" -name "generate-dashboard.mjs" -path "*/scripts/generate-dashboard.mjs" 2>/dev/null \
| sort -V | tail -1)
# Fallback to marketplaces directory
if [ -z "$SCRIPT" ]; then
SCRIPT=$(find "$PLUGINS_DIR/marketplaces" -name "generate-dashboard.mjs" -path "*/scripts/generate-dashboard.mjs" -print -quit 2>/dev/null)
fi
if [ -z "$SCRIPT" ]; then
echo "oh-my-hi: ERROR — generate-dashboard.mjs not found. Try: /omh --update"
exit 1
fi
# Ensure claude CLI is findable for --update (plugin context may have a stripped PATH)
for _claude_candidate in \
"$HOME/.claude/local/claude" \
"/usr/local/bin/claude" \
"/opt/homebrew/bin/claude" \
"$HOME/.local/bin/claude" \
"/usr/bin/claude" \
"/Applications/Claude.app/Contents/Resources/bin/claude"; do
if [ -x "$_claude_candidate" ]; then
export PATH="$(dirname "$_claude_candidate"):$PATH"
break
fi
done
node "$SCRIPT" $ARGUMENTS
npx claudepluginhub netil/oh-my-hi --plugin oh-my-hiOpens a personal analytics dashboard in the browser showing Claude Code session activity, tool usage, error rates, parallel work patterns, and project focus. First run installs dependencies.
Generates an interactive HTML dashboard visualizing installed Claude Code skills, plugins, MCP servers, usage statistics, and martial arts belt levels. Opens in browser to review setup.
Opens the Token Optimizer dashboard showing context usage trends, quality scores, session history, and skill management. Collects latest session data and regenerates the dashboard.