Setup and configure oh-my-codex using current CLI behavior
56
63%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Fix and improve this skill with Tessl
tessl review fix ./plugins/oh-my-codex/skills/omx-setup/SKILL.mdUse this skill when users want to install or refresh oh-my-codex for the current project plus user-level OMX directories.
omx setup [--force] [--merge-agents|--no-merge-agents|--clear-merge-agents-policy] [--dry-run] [--verbose] [--scope <user|project>] [--plugin|--legacy|--install-mode <legacy|plugin>]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):
--force: overwrite/reinstall managed artifacts where applicable; it is transient and is neither persisted nor replayed--merge-agents, --no-merge-agents, --clear-merge-agents-policy: exact bare policy selectors (equals/value spellings are rejected). Repeated identical selectors are idempotent; conflicting set/clear selectors fail before setup mutations. An explicit set overrides saved policy. --merge-agents selects the existing managed-section merge branch; --no-merge-agents only suppresses that branch; clear always removes the saved explicit policy and cannot combine with a set selector--dry-run: print actions without mutating files--verbose: print per-file/per-step details--scope: choose install scope (user, project)--plugin: use Codex plugin delivery for bundled skills while archiving/removing legacy OMX-managed prompts/skills, refreshing setup-owned native agent TOMLs for agent_type routing, and keeping setup-owned runtime hooks--legacy: use legacy setup delivery, overriding any persisted plugin install mode--install-mode: explicitly choose setup delivery mode (legacy or plugin); canonical form for scripted setupomx setup performs these steps:
--scope explicit value./.omx/setup-scope.json (with automatic migration of legacy values)omx setup first summarizes the recorded choices and asks whether to keep, review/change, or reset themuser)user (safe for CI/tests)--plugin, --legacy, or --install-mode legacy|plugin, if present./.omx/setup-scope.json, if present and the TTY review decision is keep${CODEX_HOME:-~/.codex}/plugins/cache/**/.codex-plugin/plugin.json with name: oh-my-codex makes plugin the default for both user and project scope, so project setup does not duplicate plugin-provided skills/hooks with legacy .codex/skills and .codex/hooks.jsonuser scope, interactive prompt on TTY (legacy by default, or plugin when a plugin cache is discovered)legacy unless a plugin cache is discoveredagent_type routing, clean up stale generated non-installable native agents, and keep native Codex hooks installed.dist/cli/team.js./.omx/hud-config.jsonomx setup prompts for scope when no scope is provided and stdin/stdout are TTY. If ./.omx/setup-scope.json already exists, setup now summarizes the saved choices first and asks whether to keep them, review/change them, or reset and behave like a fresh setup run.user scope, omx setup also prompts for skill delivery mode when no prior install mode is kept; installed plugin cache discovery makes plugin mode the default prompt/non-interactive choice. In project scope, installed plugin cache discovery selects plugin mode non-interactively to avoid overlapping project legacy skills/hooks with plugin-provided surfaces../AGENTS.md (project root).AGENTS.md exists and neither --force nor --merge-agents is used, interactive TTY runs ask whether to overwrite. Non-interactive runs preserve the file.--merge-agents to keep existing project guidance while allowing setup to refresh OMX-managed AGENTS sections and the generated model capability table idempotently.mergeAgents: true or false in the invoking working root's ./.omx/setup-scope.json, even for --scope user; it is never a global user preference and cannot leak to another root. A valid matching policy is replayed by both immediate and deferred omx update refreshes.--no-merge-agents is contextual, not a preserve, replace, or safety mode: the current prompt, skip, managed-refresh, plugin-default, and force behavior still controls the non-merge path. Absence keeps existing behavior exactly.--clear-merge-agents-policy always removes the policy and cannot combine with a set selector. Malformed, unknown, nonboolean, scopeless, or wrong-scope policy data is treated as absent.user: user directories (~/.codex, ~/.codex/skills, ~/.omx/agents)project: local directories (./.codex, ./.codex/skills, ./.omx/agents)legacy: keep installing/updating OMX skills in the resolved user skill rootplugin: rely on Codex plugin discovery for bundled skills and plugin-scoped lifecycle hooks when Codex reports plugin_hooks; archive/remove legacy OMX-managed prompts/skills, refresh installable setup-owned native agent TOMLs for agent_type routing, and remove only stale generated/non-installable native agents. Setup still enables setup-owned runtime feature flags (plugin_hooks = true and goals = true when supported, or legacy setup-managed hooks/codex_hooks fallback when plugin hooks are not reported).user scope, if historical ~/.agents/skills still exists alongside ${CODEX_HOME:-~/.codex}/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; ~/.agents/skills/ was the skill root in an older Codex CLI release before ~/.codex became the standard home directory. OMX writes only to the canonical ${CODEX_HOME:-~/.codex}/skills/ path. When both directories exist simultaneously, Codex discovers skills from both trees and may show duplicate entries in Enable/Disable Skills. Archive or remove ~/.agents/skills/ to resolve this.project, omx launch automatically uses CODEX_HOME=./.codex unless user explicitly overrides CODEX_HOME.developer_instructions defaults. If developer_instructions already exists, setup asks before overwriting it; non-interactive runs preserve it.--force or --merge-agents, AGENTS updates may still be skipped if an active OMX session is detected (safety guard).project-local) are automatically migrated to project with a one-time warning.Use this map when reconciling setup behavior or debugging a confusing install:
| Surface | Owner | Notes |
|---|---|---|
./.omx/setup-scope.json | omx setup | Persists setup scope, install mode, and an optional explicit AGENTS merge policy per working root. TTY reruns summarize choices and offer keep/review/reset; only valid matching-scope boolean policy replays on update. |
~/.codex/config.toml / ./.codex/config.toml | omx setup generated blocks + user edits | Setup refreshes OMX-managed blocks while preserving supported manual content; setup-owned runtime feature flags include multi_agent, child_agents_md, the Codex hook feature flag (hooks or legacy codex_hooks), and goals. |
~/.codex/hooks.json / ./.codex/hooks.json | omx setup shared ownership | Setup owns OMX native hook wrappers and preserves user-owned hooks. |
| prompts, skills, native agents | omx setup or Codex plugin delivery | Legacy mode installs local files; plugin mode relies on plugin discovery for bundled skills, archives/removes legacy OMX-managed prompt/skill copies, and refreshes setup-owned native agent TOMLs for agent_type routing while cleaning up stale generated/non-installable native agents. |
AGENTS.md | omx setup with overwrite safety | Generated defaults or managed refreshes are guarded by force/session checks. |
./.omx/hud-config.json | omx setup / $hud | Setup creates the focused default; $hud can adjust it later. |
| notification hooks | omx setup / $configure-notifications | Setup wires defaults outside plugin skill delivery; notification skill owns deeper provider configuration. |
$omx-setup is missing or staleThe source repo ships skills/omx-setup/SKILL.md and the catalog marks it active. If Codex does not show $omx-setup, treat it as an installation/discovery issue rather than a missing source skill:
omx setup --verbose in the intended scope.omx doctor and check the reported setup scope, Codex home, skill root, and hook/config status../.codex/skills/omx-setup/SKILL.md exists.${CODEX_HOME:-~/.codex}/skills/omx-setup/SKILL.md exists in legacy mode, or that the oh-my-codex plugin is installed/discovered in plugin mode.~/.agents/skills overlap and follow the cleanup hint printed by setup/doctor.omx setup --force --verboseomx doctorFrom omx doctor, expect:
.omx/state existsconfig.toml; first-party OMX MCP servers and shared MCP registry sync are omitted by default unless setup was run with --mcp compatnpm run buildomx points to another install, run local entrypoint:node bin/omx.js setup --force --verbose
node bin/omx.js doctor--force, stop active OMX session and rerun setup.--merge-agents, stop active OMX session and rerun setup.435d4a9
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.