New to Claude Skills? Learn how to install them →

Mopenai on GitHub

Migrate to Codex

OfficialFree

Streamline your migration to Codex projects seamlessly.

by openai24.8k stars on openai/skills
Updated Jun 24, 2026
Get this skill

Free · Opens the source repo

What Migrate to Codex does

Migrate to Codex is a specialized tool designed to facilitate the migration of instruction files, skills, agents, and MCP configurations into Codex projects and global files. This skill automates the process of transferring your existing setups from Claude Code to Codex, ensuring that your configurations are preserved while adapting to the new environment. It operates autonomously, continuing the migration process without requiring user confirmation for each step, thus improving efficiency and reducing the risk of interruptions.

The migration process follows a structured order, starting with the Codex built-in TODO/task list tool to track progress. The skill inspects and converts various artifacts such as commands, agents, and settings, transforming them into compatible Codex formats. It also validates the generated configurations, ensuring that existing entries in your Codex setup remain intact unless they conflict with the new migration. This careful handling minimizes the risk of data loss or configuration errors during the transition.

This skill is particularly useful for developers and teams transitioning from Claude Code to Codex, providing a comprehensive solution to streamline the process. By automating the migration, it allows users to focus on refining their Codex projects rather than getting bogged down in manual transfers. The built-in reporting feature further enhances usability by summarizing the migration outcomes and highlighting areas that may require manual review, ensuring a smooth transition to the Codex environment.

When to use it

Use this tool when you need to migrate existing Claude Code configurations and artifacts to Codex, especially in larger projects where manual migration would be cumbersome.

When not to use it

This skill may not be suitable for users who are starting fresh with Codex and do not have existing Claude Code configurations to migrate.

What you can build with it

Migrating a Large Project

Use this skill to efficiently migrate a large project from Claude Code to Codex, ensuring all configurations are preserved.

Automating Migration Tasks

Leverage the autonomous nature of this skill to automate repetitive migration tasks without manual intervention.

Validating Migration Outcomes

After migration, use the reporting feature to review what was migrated and identify any areas needing manual attention.

How to install Migrate to Codex

View source

1. Install with the skills CLI

npx skills add openai/skills/migrate-to-codex --agent claude-code

2. Or install it manually

Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.

Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs

Inside SKILL.md

Written by openai

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. Before finishing, update the TODO list so every finished step is marked completed and no step remains in_progress. 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

    StatusItemNotes
    AddedSlash command pr-reviewConverted into a Codex skill
    AddedSubagent release-leadAdded as a Codex subagent
    Check before usingHook PreToolUseConverted, but some Claude hook behavior differs in Codex
    Not AddedHook NotificationCodex does not have an equivalent notification hook
    Not AddedPlugin team-macrosPlugin 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.

Frequently asked questions about Migrate to Codex

Similar skills