omc-setup — Claude Code skill: what it does, how to install
Canonical setup and repair wizard for oh-my-claudecode. It configures CLAUDE.md files, HUD statusline, and agent team defaults.
npx skills add Yeachan-Heo/oh-my-claudecode --skill omc-setup -a claude-codeWhat omc-setup does
This skill runs the setup and repair workflow for oh-my-claudecode across plugin, npm, and repository checkouts. It writes CLAUDE.md either locally in .claude/ or globally in ~/.claude/. During configuration, it sets up the HUD statusline, cleans up retired keys like defaultExecutionMode, and points MCP registration to the native Claude Code format.
Execution relies on scripts/setup-claude-md.sh through the active plugin root. The pre-setup check inspects .omc-config.json before prompting you. The setup check requires jq to read .omc-config.json, and it halts immediately if jq is missing. Passing --force bypasses the status check, while --local and --global restrict configuration to a single target.
What it helps with
- configure oh-my-claudecode after installing via plugin or npm
- update local or global
CLAUDE.mdfiles to the latest format - remove deprecated keys like
defaultExecutionModeafter version 5.0.0 - repair HUD statusline and team agent defaults without editing JSON manually
Example prompts for the agent
- /oh-my-claudecode:omc-setup
- /oh-my-claudecode:omc-setup --global
- /oh-my-claudecode:omc-setup --force
How to install omc-setup
1Skills CLI (Vercel)
npx skills add Yeachan-Heo/oh-my-claudecode --skill omc-setup -a claude-code2Manually: put the files in place
~/.claude/skills/omc-setup/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/omc-setup/
1Skills CLI (Vercel)
npx skills add Yeachan-Heo/oh-my-claudecode --skill omc-setup -a codex2Manually: put the files in place
.agents/skills/omc-setup/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add Yeachan-Heo/oh-my-claudecode --skill omc-setup -a cursor2Manually: put the files in place
.cursor/skills/omc-setup/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install Yeachan-Heo/oh-my-claudecode omc-setup2Manually: put the files in place
.github/skills/omc-setup/SKILL.md1Skills CLI (Vercel)
npx skills add Yeachan-Heo/oh-my-claudecode --skill omc-setup -a gemini-cli2Platform CLI
gemini skills install https://github.com/Yeachan-Heo/oh-my-claudecode --path skills/omc-setupManually: put the files in place
.devin/skills/omc-setup/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add Yeachan-Heo/oh-my-claudecode --skill omc-setup -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
From the same set26
The whole set →Similar
Questions about omc-setup
How to install omc-setup in Claude Code?
Run npx skills add Yeachan-Heo/oh-my-claudecode --skill omc-setup -a claude-code.
What does omc-setup do?
It runs the initial onboarding wizard, updates CLAUDE.md files, and cleans up deprecated options in oh-my-claudecode.
What dependency is required before running this setup?
The pre-setup check requires jq to inspect .omc-config.json. If jq is missing, the script halts and leaves your existing configuration untouched.
Source text
SKILL.md · MIT
---
name: omc-setup
description: Install or refresh oh-my-claudecode for plugin, npm, and local-dev setups from the canonical setup flow
level: 2
---
# OMC Setup
This is the **only command you need to learn**. After running this, everything else is automatic.
**When this skill is invoked, immediately execute the workflow below. Do not only restate or summarize these instructions back to the user.**
Note: All `~/.claude/...` paths in this guide respect `CLAUDE_CONFIG_DIR` when that environment variable is set.
## Best-Fit Use
Choose this setup flow when the user wants to **install, refresh, or repair OMC itself**.
- Marketplace/plugin install users should land here after `/plugin install oh-my-claudecode`
- npm users should land here after `npm i -g oh-my-claude-sisyphus@latest`
- local-dev and worktree users should land here after updating the checked-out repo and rerunning setup
## Flag Parsing
Check for flags in the user's invocation:
- `--help` → Show Help Text (below) and stop
- `--local` → Phase 1 only (target=local), then stop
- `--global` → Phase 1 only (target=global), then stop
- `--force` → Skip Pre-Setup Check, run full setup (Phase 1 → 2 → 3 → 4)
- No flags → Run Pre-Setup Check, then full setup if needed
## Help Text
When user runs with `--help`, display this and stop:
```
OMC Setup - Configure oh-my-claudecode
USAGE:
/oh-my-claudecode:omc-setup Run initial setup wizard (or update if already configured)
/oh-my-claudecode:omc-setup --local Configure local project (.claude/CLAUDE.md)
/oh-my-claudecode:omc-setup --global Configure global settings (~/.claude/CLAUDE.md)
/oh-my-claudecode:omc-setup --force Force full setup wizard even if already configured
/oh-my-claudecode:omc-setup --help Show this help
MODES:
Initial Setup (no flags)
- Interactive wizard for first-time setup
- Configures CLAUDE.md (local or global)
- Sets up HUD statusline
- Checks for updates
- Clears retired setup values (5.0.0 removed defaultExecutionMode) and points MCP registration at Claude Code's native config
- Configures team mode defaults (agent count, type, model)
- If already configured, offers quick update option
Local Configuration (--local)
- Invokes the plugin-local coordinator through `scripts/setup-claude-md.sh`; the shell validates the coordinator response and its exit status before any post-install work
- Reports coordinator-created byte-identical backups only for files that required mutation
- Project-specific settings
- Use this to update project config after OMC upgrades
Global Configuration (--global)
- Invokes the plugin-local coordinator through `scripts/setup-claude-md.sh`; the shell validates the coordinator response and its exit status before any post-install work
- Reports coordinator-created byte-identical backups only for changed global files
- Default: explicitly overwrites ~/.claude/CLAUDE.md so plain `claude` also uses OMC
- Optional preserve mode keeps the user's base `CLAUDE.md` and installs OMC into `CLAUDE-omc.md` for `omc` launches
- Applies to all Claude Code sessions
- Preserves same-named legacy hook files unless their exact historical contents are independently verified
- Use this to update global config after OMC upgrades
Force Full Setup (--force)
- Bypasses the "already configured" check
- Runs the complete setup wizard from scratch
- Use when you want to reconfigure preferences
EXAMPLES:
/oh-my-claudecode:omc-setup # First time setup (or update CLAUDE.md if configured)
/oh-my-claudecode:omc-setup --local # Update this project
/oh-my-claudecode:omc-setup --global # Update all projects
/oh-my-claudecode:omc-setup --force # Re-run full setup wizard
For more info: https://github.com/Yeachan-Heo/oh-my-claudecode
```
## Setup Invocation
Do not independently scan plugin cache directories or select a plugin root in this skill. Invoke the setup script from the plugin root supplied by the running plugin environment:
```bash
bash "${OMC_SETUP_PLUGIN_ROOT:-${CLAUDE_PLUGIN_ROOT}}/scripts/setup-claude-md.sh" <local|global> [overwrite|preserve]
```
The script is the sole cache resolver. It accepts only complete plugin roots (canonical `docs/CLAUDE.md`, coordinator artifact, and `wiki` skill), chooses a strict full-SemVer cache version, verifies the compiled-source handshake, and fails closed on coordinator protocol or status disagreement. Do not download configuration or mutate `CLAUDE.md` outside that coordinator.
## Pre-Setup Check: Already Configured?
**CRITICAL**: Before doing anything else, check if setup has already been completed. This prevents users from having to re-run the full setup wizard after every update.
```bash
# Check if setup was already completed
CONFIG_DIR="${CLAUDE_CONFIG_DIR:-$HOME/.claude}"
case "$CONFIG_DIR" in
"~") CONFIG_DIR="$HOME" ;;
"~/"*) CONFIG_DIR="$HOME/${CONFIG_DIR#\~/}" ;;
"~\\"*) CONFIG_DIR="$HOME/${CONFIG_DIR#\~\\}" ;;
esac
CONFIG_FILE="$CONFIG_DIR/.omc-config.json"
if [ -f "$CONFIG_FILE" ]; then
if ! command -v jq >/dev/null 2>&1; then
echo "ERROR: jq is required to inspect existing OMC setup state. Existing config was not modified."
exit 1
fi
if ! SETUP_COMPLETED=$(jq -r '.setupCompleted // empty' "$CONFIG_FILE" 2>/dev/null) \
|| ! SETUP_VERSION=$(jq -r '.setupVersion // empty' "$CONFIG_FILE" 2>/dev/null); then
echo "ERROR: Existing OMC config is invalid JSON. Existing config was not modified."
exit 1
fi
if [ -n "$SETUP_COMPLETED" ] && [ "$SETUP_COMPLETED" != "null" ]; then
echo "OMC setup was already completed on: $SETUP_COMPLETED"
[ -n "$SETUP_VERSION" ] && echo "Setup version: $SETUP_VERSION"
ALREADY_CONFIGURED="true"
fi
fi
```
### If Already Configured (and no --force flag)
If `ALREADY_CONFIGURED` is true AND the user did NOT pass `--force`, `--local`, or `--global` flags:
Use AskUserQuestion to prompt:
**Question:** "OMC is already configured. What would you like to do?"
**Options:**
1. **Update CLAUDE.md and clear retired setup values** - Install the active plugin's canonical CLAUDE.md and run Phase 2 Step 2.4 without re-running the full setup
2. **Run full setup again** - Go through the complete setup wizard
3. **Cancel** - Exit without changes
**If user chooses "Update CLAUDE.md and clear retired setup values":**
- Detect if local (.claude/CLAUDE.md) or global (~/.claude/CLAUDE.md) config exists
- If local exists, run: `bash "${OMC_SETUP_PLUGIN_ROOT:-${CLAUDE_PLUGIN_ROOT}}/scripts/setup-claude-md.sh" local`
- If only global exists, run: `bash "${OMC_SETUP_PLUGIN_ROOT:-${CLAUDE_PLUGIN_ROOT}}/scripts/setup-claude-md.sh" global`
- Run Phase 2 Step 2.4 to clear the retired `defaultExecutionMode` key
- Skip all other steps after the cleanup
- Report success and exit
**If user chooses "Run full setup again":**
- Continue with Resume Detection below
**If user chooses "Cancel":**
- Exit without any changes
### Force Flag Override
If user passes `--force` flag, skip this check and proceed directly to setup.
## Resume Detection
Before starting any phase, check for existing state:
```bash
bash "${OMC_SETUP_PLUGIN_ROOT:-${CLAUDE_PLUGIN_ROOT}}/scripts/setup-progress.sh" resume
```
If state exists (output is not "fresh"), use AskUserQuestion to prompt:
**Question:** "Found a previous setup session. Would you like to resume or start fresh?"
**Options:**
1. **Resume from step $LAST_STEP** - Continue where you left off
2. **Start fresh** - Begin from the beginning (clears saved state)
If user chooses "Start fresh":
```bash
bash "${OMC_SETUP_PLUGIN_ROOT:-${CLAUDE_PLUGIN_ROOT}}/scripts/setup-progress.sh" clear
```
## Phase Execution
### For `--local` or `--global` flags:
Read the file at `${OMC_SETUP_PLUGIN_ROOT:-${CLAUDE_PLUGIN_ROOT}}/skills/omc-setup/phases/01-install-claude-md.md` and follow its instructions.
(The phase file handles early exit for flag mode.)
### For full setup (default or --force):
Execute phases sequentially. For each phase, read the corresponding file and follow its instructions:
1. **Phase 1 - Install CLAUDE.md**: Read `${OMC_SETUP_PLUGIN_ROOT:-${CLAUDE_PLUGIN_ROOT}}/skills/omc-setup/phases/01-install-claude-md.md` and follow its instructions.
2. **Phase 2 - Environment Configuration**: Read `${OMC_SETUP_PLUGIN_ROOT:-${CLAUDE_PLUGIN_ROOT}}/skills/omc-setup/phases/02-configure.md` and follow its instructions. Phase 2 must delegate HUD/statusLine setup to the `hud` skill; do not generate or patch `statusLine` paths inline here.
3. **Phase 3 - Integration Setup**: Read `${OMC_SETUP_PLUGIN_ROOT:-${CLAUDE_PLUGIN_ROOT}}/skills/omc-setup/phases/03-integrations.md` and follow its instructions.
4. **Phase 4 - Completion**: Read `${OMC_SETUP_PLUGIN_ROOT:-${CLAUDE_PLUGIN_ROOT}}/skills/omc-setup/phases/04-welcome.md` and follow its instructions.
## Graceful Interrupt Handling
**IMPORTANT**: This setup process saves progress after each phase via `${OMC_SETUP_PLUGIN_ROOT:-${CLAUDE_PLUGIN_ROOT}}/scripts/setup-progress.sh`. If interrupted (Ctrl+C or connection loss), the setup can resume from where it left off.
## Keeping Up to Date
After installing oh-my-claudecode updates (via npm or plugin update):
**Automatic**: Just run `/oh-my-claudecode:omc-setup` - it will detect you've already configured and offer a quick "Update CLAUDE.md and clear retired setup values" option that skips the rest of the wizard.
The quick update path must still perform Phase 2 Step 2.4 so upgrades remove the retired `defaultExecutionMode` value; it must not write any replacement execution-mode setting.
**Manual options**:
- `/oh-my-claudecode:omc-setup --local` to update project config only
- `/oh-my-claudecode:omc-setup --global` to update global config only
- `/oh-my-claudecode:omc-setup --force` to re-run the full wizard (reconfigure preferences)
This ensures you have the newest features and agent configurations without the token cost of repeating the full setup.
© Yeachan-Heo · MIT · Yeachan-Heo/oh-my-claudecode