install
source · Clone the upstream repo
git clone https://github.com/Yeachan-Heo/oh-my-codex
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/Yeachan-Heo/oh-my-codex "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/omx-setup" ~/.claude/skills/yeachan-heo-oh-my-codex-omx-setup && rm -rf "$T"
manifest:
skills/omx-setup/SKILL.mdsource content
OMX Setup
Use this skill when users want to install or refresh oh-my-codex for the current project plus user-level OMX directories.
Command
omx setup [--force] [--dry-run] [--verbose] [--scope <user|project>]
If you only want lightweight
AGENTS.md scaffolding for an existing repo or subtree, use omx agents-init [path] instead of full setup.
Supported setup flags (current implementation):
: overwrite/reinstall managed artifacts where applicable--force
: print actions without mutating files--dry-run
: print per-file/per-step details--verbose
: choose install scope (--scope
,user
)project
What this setup actually does
omx setup performs these steps:
- Resolve setup scope:
explicit value--scope- else persisted
(with automatic migration of legacy values)./.omx/setup-scope.json - else interactive prompt on TTY (default
)user - else default
(safe for CI/tests)user
- Create directories and persist effective scope
- Install prompts, native agent configs, skills, and merge config.toml (scope determines target directories)
- Verify Team CLI API interop markers exist in built
dist/cli/team.js - Generate project-root
from./AGENTS.md
(or skip when existing and no force)templates/AGENTS.md - Configure notify hook references and write
./.omx/hud-config.json
Important behavior notes
only prompts for scope when no scope is provided/persisted and stdin/stdout are TTY.omx setup- Local project orchestration file is
(project root)../AGENTS.md - If
exists andAGENTS.md
is not used, interactive TTY runs ask whether to overwrite. Non-interactive runs preserve the file.--force - Scope targets:
: user directories (user
,~/.codex
,~/.codex/skills
)~/.omx/agents
: local directories (project
,./.codex
,./.codex/skills
)./.omx/agents
- Migration hint: in
scope, if historicaluser
still exists alongside~/.agents/skills
, current setup prints a cleanup hint. Why the paths differ:${CODEX_HOME:-~/.codex}/skills
is the path current Codex CLI natively loads as its skill root;${CODEX_HOME:-~/.codex}/skills/
was the skill root in an older Codex CLI release before~/.agents/skills/
became the standard home directory. OMX writes only to the canonical~/.codex
path. When both directories exist simultaneously, Codex discovers skills from both trees and may show duplicate entries in Enable/Disable Skills. Archive or remove${CODEX_HOME:-~/.codex}/skills/
to resolve this.~/.agents/skills/ - If persisted scope is
,project
launch automatically usesomx
unless user explicitly overridesCODEX_HOME=./.codex
.CODEX_HOME - With
, AGENTS overwrite may still be skipped if an active OMX session is detected (safety guard).--force - Legacy persisted scope values (
) are automatically migrated toproject-local
with a one-time warning.project
Recommended workflow
- Run setup:
omx setup --force --verbose
- Verify installation:
omx doctor
- Start Codex with OMX in the target project directory.
Expected verification indicators
From
omx doctor, expect:
- Prompts installed (scope-dependent: user or project)
- Skills installed (scope-dependent: user or project)
- AGENTS.md found in project root
exists.omx/state- OMX MCP servers configured in scope target
(config.toml
or~/.codex/config.toml
)./.codex/config.toml
Troubleshooting
- If using local source changes, run build first:
npm run build
- If your global
points to another install, run local entrypoint:omx
node bin/omx.js setup --force --verbose node bin/omx.js doctor
- If AGENTS.md was not overwritten during
, stop active OMX session and rerun setup.--force