OMC Setup
This is the only command you need to learn. After running this, everything else is automatic.
Step 1: Ask User Preference
Use the AskUserQuestion tool to prompt the user:
Question: "Where should I configure oh-my-claudecode?"
Options:
- •Local (this project) - Creates
.claude/CLAUDE.mdin current project directory. Best for project-specific configurations. - •Global (all projects) - Creates
~/.claude/CLAUDE.mdfor all Claude Code sessions. Best for consistent behavior everywhere.
Step 2: Execute Based on Choice
If User Chooses LOCAL:
bash
# Create .claude directory in current project mkdir -p .claude # Extract old version before download OLD_VERSION=$(grep -m1 "^# oh-my-claudecode" .claude/CLAUDE.md 2>/dev/null | grep -oE 'v[0-9]+\.[0-9]+\.[0-9]+' || echo "none") # Download fresh CLAUDE.md from GitHub curl -fsSL "https://raw.githubusercontent.com/Yeachan-Heo/oh-my-claudecode/main/docs/CLAUDE.md" -o .claude/CLAUDE.md && \ echo "Downloaded CLAUDE.md to .claude/CLAUDE.md" # Extract new version and report NEW_VERSION=$(grep -m1 "^# oh-my-claudecode" .claude/CLAUDE.md 2>/dev/null | grep -oE 'v[0-9]+\.[0-9]+\.[0-9]+' || echo "unknown") if [ "$OLD_VERSION" = "none" ]; then echo "Installed CLAUDE.md: $NEW_VERSION" elif [ "$OLD_VERSION" = "$NEW_VERSION" ]; then echo "CLAUDE.md unchanged: $NEW_VERSION" else echo "Updated CLAUDE.md: $OLD_VERSION -> $NEW_VERSION" fi
If User Chooses GLOBAL:
bash
# Extract old version before download OLD_VERSION=$(grep -m1 "^# oh-my-claudecode" ~/.claude/CLAUDE.md 2>/dev/null | grep -oE 'v[0-9]+\.[0-9]+\.[0-9]+' || echo "none") # Download fresh CLAUDE.md to global config curl -fsSL "https://raw.githubusercontent.com/Yeachan-Heo/oh-my-claudecode/main/docs/CLAUDE.md" -o ~/.claude/CLAUDE.md && \ echo "Downloaded CLAUDE.md to ~/.claude/CLAUDE.md" # Extract new version and report NEW_VERSION=$(grep -m1 "^# oh-my-claudecode" ~/.claude/CLAUDE.md 2>/dev/null | grep -oE 'v[0-9]+\.[0-9]+\.[0-9]+' || echo "unknown") if [ "$OLD_VERSION" = "none" ]; then echo "Installed CLAUDE.md: $NEW_VERSION" elif [ "$OLD_VERSION" = "$NEW_VERSION" ]; then echo "CLAUDE.md unchanged: $NEW_VERSION" else echo "Updated CLAUDE.md: $OLD_VERSION -> $NEW_VERSION" fi
Step 3: Setup HUD Statusline
The HUD shows real-time status in Claude Code's status bar. Invoke the hud skill to set up and configure:
Use the Skill tool to invoke: hud with args: setup
This will:
- •Install the HUD wrapper script to
~/.claude/hud/omc-hud.mjs - •Configure
statusLinein~/.claude/settings.json - •Report status and prompt to restart if needed
Step 3.5: Clear Stale Plugin Cache
Clear old cached plugin versions to avoid conflicts:
bash
# Clear stale plugin cache versions
CACHE_DIR="$HOME/.claude/plugins/cache/omc/oh-my-claudecode"
if [ -d "$CACHE_DIR" ]; then
LATEST=$(ls -1 "$CACHE_DIR" | sort -V | tail -1)
CLEARED=0
for dir in "$CACHE_DIR"/*; do
if [ "$(basename "$dir")" != "$LATEST" ]; then
rm -rf "$dir"
CLEARED=$((CLEARED + 1))
fi
done
[ $CLEARED -gt 0 ] && echo "Cleared $CLEARED stale cache version(s)" || echo "Cache is clean"
else
echo "No cache directory found (normal for new installs)"
fi
Step 3.6: Check for Updates
Notify user if a newer version is available:
bash
# Detect installed version
INSTALLED_VERSION=""
# Try cache directory first
if [ -d "$HOME/.claude/plugins/cache/omc/oh-my-claudecode" ]; then
INSTALLED_VERSION=$(ls -1 "$HOME/.claude/plugins/cache/omc/oh-my-claudecode" | sort -V | tail -1)
fi
# Try .omc-version.json second
if [ -z "$INSTALLED_VERSION" ] && [ -f ".omc-version.json" ]; then
INSTALLED_VERSION=$(grep -oE '"version":\s*"[^"]+' .omc-version.json | cut -d'"' -f4)
fi
# Try CLAUDE.md header third (local first, then global)
if [ -z "$INSTALLED_VERSION" ]; then
if [ -f ".claude/CLAUDE.md" ]; then
INSTALLED_VERSION=$(grep -m1 "^# oh-my-claudecode" .claude/CLAUDE.md 2>/dev/null | grep -oE 'v[0-9]+\.[0-9]+\.[0-9]+' | sed 's/^v//')
elif [ -f "$HOME/.claude/CLAUDE.md" ]; then
INSTALLED_VERSION=$(grep -m1 "^# oh-my-claudecode" "$HOME/.claude/CLAUDE.md" 2>/dev/null | grep -oE 'v[0-9]+\.[0-9]+\.[0-9]+' | sed 's/^v//')
fi
fi
# Check npm for latest version
LATEST_VERSION=$(npm view oh-my-claude-sisyphus version 2>/dev/null)
if [ -n "$INSTALLED_VERSION" ] && [ -n "$LATEST_VERSION" ]; then
# Simple version comparison (assumes semantic versioning)
if [ "$INSTALLED_VERSION" != "$LATEST_VERSION" ]; then
echo ""
echo "UPDATE AVAILABLE:"
echo " Installed: v$INSTALLED_VERSION"
echo " Latest: v$LATEST_VERSION"
echo ""
echo "To update, run: claude /install-plugin oh-my-claudecode"
else
echo "You're on the latest version: v$INSTALLED_VERSION"
fi
elif [ -n "$LATEST_VERSION" ]; then
echo "Latest version available: v$LATEST_VERSION"
fi
Step 4: Verify Plugin Installation
bash
grep -q "oh-my-claudecode" ~/.claude/settings.json && echo "Plugin verified" || echo "Plugin NOT found - run: claude /install-plugin oh-my-claudecode"
Step 5: Detect Upgrade from 2.x
Check if user has existing configuration:
bash
# Check for existing 2.x artifacts ls ~/.claude/commands/ralph-loop.md 2>/dev/null || ls ~/.claude/commands/ultrawork.md 2>/dev/null
If found, this is an upgrade from 2.x.
Step 6: Show Welcome Message
For New Users:
code
OMC Setup Complete! You don't need to learn any commands. I now have intelligent behaviors that activate automatically. WHAT HAPPENS AUTOMATICALLY: - Complex tasks -> I parallelize and delegate to specialists - "plan this" -> I start a planning interview - "don't stop until done" -> I persist until verified complete - "stop" or "cancel" -> I intelligently stop current operation MAGIC KEYWORDS (optional power-user shortcuts): Just include these words naturally in your request: | Keyword | Effect | Example | |---------|--------|---------| | ralph | Persistence mode | "ralph: fix the auth bug" | | ralplan | Iterative planning | "ralplan this feature" | | ulw | Max parallelism | "ulw refactor the API" | | plan | Planning interview | "plan the new endpoints" | Combine them: "ralph ulw: migrate the database" HUD STATUSLINE: The status bar now shows OMC state. Restart Claude Code to see it. That's it! Just use Claude Code normally.
For Users Upgrading from 2.x:
code
OMC Setup Complete! (Upgraded from 2.x) GOOD NEWS: Your existing commands still work! - /ralph, /ultrawork, /planner, etc. all still function WHAT'S NEW in 3.0: You no longer NEED those commands. Everything is automatic now: - Just say "don't stop until done" instead of /ralph - Just say "fast" or "parallel" instead of /ultrawork - Just say "plan this" instead of /planner - Just say "stop" instead of /cancel-ralph MAGIC KEYWORDS (power-user shortcuts): | Keyword | Same as old... | Example | |---------|----------------|---------| | ralph | /ralph | "ralph: fix the bug" | | ralplan | /ralplan | "ralplan this feature" | | ulw | /ultrawork | "ulw refactor API" | | plan | /planner | "plan the endpoints" | HUD STATUSLINE: The status bar now shows OMC state. Restart Claude Code to see it. Your workflow won't break - it just got easier!
Fallback
If curl fails, tell user to manually download from: https://raw.githubusercontent.com/Yeachan-Heo/oh-my-claudecode/main/docs/CLAUDE.md