Catalog
openai/migrate-to-codex

openai

migrate-to-codex

Migrate supported instruction files, skills, agents, and MCP config into Codex project and global files.

global
0installs0uses~1.9k
v1.0Saved Apr 27, 2026

Migrate to Codex

Autonomy

Keep going until the selected migration is completely done: run the migrator, inspect the report, fix migrated Codex instructions/skills/agents/MCP config, and re-run checks without stopping to ask for confirmation of the next step. If the user has selected a target, do not ask before creating, editing, replacing, or deleting generated Codex artifacts in that target (AGENTS.md, .codex/, .agents/, or ~/.codex/). Preserve unrelated existing Codex config entries in .codex/config.toml or ~/.codex/config.toml, such as notify, projects, marketplaces, or unrelated MCP servers; do not ask about them unless they fail validation or directly conflict with the migration. Do not edit source Claude Code files (.claude/, ~/.claude/, .mcp.json, or .claude.json), unrelated project code, secrets, or another repository.

Migration Order

Run the migration in this order for each selected global or project source:

  1. Start by using Codex's built-in TODO/task list tool. Do not create MIGRATION_TODOS.md or any TODO file unless the user explicitly asks. The TODO list input has a plan array whose items each have step and status; use statuses pending, in_progress, and completed. Make the TODOs specific to the selected artifacts. Use literal source → Codex target labels, for example:

    • Inspect .claude/commands → Codex skills/prompts
    • Inspect .claude/agents.codex/agents
    • Inspect .mcp.json.codex/config.toml MCP servers
    • Inspect .claude/settings.json hooks → .codex/hooks.json
    • Migrate safe selected artifacts → Codex files
    • Validate generated .codex/config.toml
    • Validate generated .codex/agents
    • Report migrated artifacts and manual-review items
  2. Read references/differences.md (and refresh Codex docs if its Docs last checked date is old).

  3. Scan and inspect before writing:

    • --scan-only lists active and inactive source surfaces.
    • --plan prints staged Codex artifact paths and report rows.
    • --doctor summarizes readiness, manual-review work, and validation risks.
  4. Convert surfaces in the same order the CLI uses:

    • instructions: CLAUDE.md / AGENTS.md to AGENTS.md
    • plugins: report Claude plugin trees and marketplaces as manual migration work
    • hooks: rewrite supported Claude hooks into .codex/hooks.json and enable [features].codex_hooks = true
    • skills and commands: write Codex skills under .agents/skills/
    • config: write .codex/config.toml from Claude model/sandbox settings and MCP servers, including personality = "friendly" when config is generated
    • subagents: write Codex custom agents under .codex/agents/
  5. Dry-run, then write the selected target. Use --replace only when orphan generated skills or agents should be deleted.

  6. Inspect the terminal output and .codex/migrate-to-codex-report.txt after real runs.

  7. Review generated artifacts in this order: AGENTS.md, .agents/skills/, .codex/config.toml, .codex/hooks.json, .codex/agents/, then report-only plugin items.

  8. Run --validate-target against each target after edits.

  9. Re-run checks and --dry-run after edits.

  10. Return the final migration report as one markdown table per scope that has rows. The tables cover only the non-native follow-up migration work you performed, such as skills created from slash commands, subagents, MCP servers, hooks, unsupported/local plugin notes, and manual-review caveats. Include programmatic native import rows for config, instructions, skills, or supported plugins only if you personally migrated them in this follow-up run.

    If only one scope has rows, render only the table with no heading. If multiple scopes have rows, render one heading before each table. Use **User Config** for user-scope rows. For project-scope rows, use the actual project folder name as the heading, for example **northstar-support-portal**; do not use Current Project as the heading. Do not add prose before or after the table output.

    Use exactly these columns:

    northstar-support-portal

    Status Item Notes
    Added Slash command pr-review Converted into a Codex skill
    Added Subagent release-lead Added as a Codex subagent
    Check before using Hook PreToolUse Converted, but some Claude hook behavior differs in Codex
    Not Added Hook Notification Codex does not have an equivalent notification hook
    Not Added Plugin team-macros Plugin needs manual setup

    Status must be Added, Check before using, or Not Added. Use Added when a Codex-facing artifact was created or changed and needs no special review. Use Check before using when a Codex-facing artifact was created or changed but the migration changed semantics, inferred behavior, preserved tool rules as guidance, or dropped unsupported behavior. Use Not Added when a source artifact was detected but no Codex-facing artifact was created. Item combines the artifact type and concrete item name in one cell. Artifact type must be singular: Skill, Slash command, Subagent, MCP, Hook, or Plugin. Wrap the artifact type in inline code; write the item name as plain text after it. Notes is always required; never leave it empty. Keep notes short, plain, and literal. Avoid internal implementation terms such as runtime expansion. Prefer phrases like Converted into a Codex skill, Added as a Codex subagent, Added to Codex config, Converted into a Codex hook, Converted, but some Claude hook behavior differs in Codex, Codex does not have an equivalent notification hook, Plugin needs manual setup, or Plugin marketplace needs manual setup.

Self-Healing Loop

Keep looping until the selected migration is complete:

  1. Run --plan or --doctor.
  2. Run the migration with --dry-run.
  3. Run the migration for real.
  4. Fix every generated ## MANUAL MIGRATION REQUIRED block and every manual_fix_required or skipped report row that can be resolved inside Codex artifacts.
  5. Run --validate-target.
  6. Re-run the migrator and validator until the report and validator have no actionable generated-artifact fixes left.

Do not edit source Claude Code files, unrelated project code, secrets, or another repository during this loop. If a report row requires source-provider changes or product judgment, leave the generated Codex artifact with clear manual guidance instead of changing the source.

Commands

Choose the migrator command.

MIGRATE_TO_CODEX='python3 .codex/skills/migrate-to-codex/scripts/migrate-to-codex.py'

Inspect the migration before writing.

$MIGRATE_TO_CODEX --source ~/.claude/ --scan-only
$MIGRATE_TO_CODEX --source ~/.claude/ --target ~/.codex/ --plan
$MIGRATE_TO_CODEX --source ~/.claude/ --target ~/.codex/ --doctor

Dry-run, then run without --dry-run, for global and project.

$MIGRATE_TO_CODEX --source ~/.claude/ --target ~/.codex/ --dry-run
$MIGRATE_TO_CODEX --source ~/.claude/ --target ~/.codex/
$MIGRATE_TO_CODEX --source ./.claude/ --target ./.codex/ --dry-run
$MIGRATE_TO_CODEX --source ./.claude/ --target ./.codex/

Run the post-migration validator against each target after edits.

$MIGRATE_TO_CODEX --validate-target ~/.codex/
$MIGRATE_TO_CODEX --validate-target ./.codex/

Run $MIGRATE_TO_CODEX --help for flags (--scan-only, --plan, --doctor, --validate-target, defaults, and so on). Deep tables and more links are in references/differences.md.

Files18
18 files · 124.2 KB

Select a file to preview

Overall Score

81/100

Grade

B

Good

Safety

80

Quality

85

Clarity

82

Completeness

76

Summary

This skill guides an AI agent through migrating Claude Code configuration, instructions, skills, agents, hooks, and MCP servers into Codex project and global files. It orchestrates a Python-based migrator CLI, inspects conversion outputs, fixes generated artifacts, and produces structured migration reports with manual-review guidance.

Detected Capabilities

Execute Python migration scripts with multiple CLI flags (--scan-only, --plan, --doctor, --dry-run, --validate-target, --replace)Read and parse Claude Code configuration files (.claude/, .mcp.json, .claude.json, settings.json)Write Codex configuration files (.codex/config.toml, .codex/hooks.json, .codex/agents/*.toml, .agents/skills/*/SKILL.md)Create, update, and delete Codex artifact files in project and global scopesInspect and validate generated TOML, JSON, and Markdown filesProduce structured migration reports with status tracking and manual-fix guidanceSymlink or copy instruction files between source and targetPreserve unsupported metadata as embedded manual-review blocks in generated files

Trigger Keywords

Phrases that MCP clients use to match this skill to user intent.

migrate to codexclaude code migrationconvert claude skillscodex setupmove mcp serversmigrate subagentsclaude to codex

Risk Signals

WARNING

Recursive file deletion via --replace flag to remove orphaned skills and subagents

SKILL.md 'Self-Healing Loop' section; cli.py deploy_tree() logic
WARNING

File write operations to project and global Codex directories without explicit user confirmation when --replace is selected

SKILL.md 'Autonomy' section; cli.py write_artifact() function
INFO

Environment variable read access to load Claude settings and MCP configuration

scripts/migrate/mcps.py, scripts/migrate/codex_config.py — reads JSON settings files containing potentially sensitive MCP auth config
INFO

Symlink creation from source to target instruction files

cli.py convert_instructions() and write_artifact() with SourceSymlink payload
INFO

No hardcoded credentials, command injection, or privilege escalation patterns detected

Static pre-scan clean

Referenced Domains

External domains referenced in skill content, detected by static analysis.

code.claude.comdevelopers.openai.comdocs.claude.comwww.apache.org

Use Cases

  • Migrate all Claude Code settings and configuration to Codex
  • Convert Claude Code skills and commands into Codex skills
  • Migrate Claude Code subagents to Codex custom agents
  • Convert Claude Code hooks into Codex hook configuration
  • Consolidate Claude Code MCP servers into Codex config
  • Validate migrated Codex artifacts for completeness
  • Review and fix unsupported Claude Code features in Codex

Quality Notes

  • SKILL.md provides excellent autonomy guidance and explicit scoping: agent should not ask for confirmation on writes to `.codex/`, `.agents/`, or `AGENTS.md` when target is selected.
  • Clear migration order with 10 explicit steps and self-healing loop guidance for handling validation failures and manual-fix blocks.
  • Comprehensive `--doctor`, `--plan`, and `--validate-target` scanning flags allow the agent to inspect before writing, reducing risk of unintended changes.
  • Status field documentation (Added, Check before using, Not Added) provides clear semantics for report interpretation.
  • Supporting files well-organized: `references/differences.md` is extensive, covering all major migration deltas between Claude Code and Codex across instructions, skills, MCP, hooks, subagents, and plugins.
  • Skill correctly preserves unsupported Claude-only behavior (hooks, permissionMode, tool lists, skills preload) as embedded manual-review blocks in generated Codex files rather than silently dropping them.
  • No error handling guidance for missing source files, malformed JSON/TOML, or filesystem permission failures — relies on Python script exit codes and output.
  • Report output formatting is deterministic and well-specified (single table per scope, specific Status/Item/Notes columns), making it parseable and predictable.
  • Skill does not document what happens if source and target overlap (e.g., source is `.codex/` itself), which could cause subtle data loss.
Model: claude-haiku-4-5-20251001Analyzed: Apr 27, 2026

Reviews

Add this skill to your library to leave a review.

No reviews yet

Be the first to share your experience.

Add openai/migrate-to-codex to your library

Command Palette

Search for a command to run...