Codex Import: What Moves From Claude Code, What Breaks

The most expensive part of switching AI coding tools was never the subscription. It was the half-year of accumulated setup: your CLAUDE.md, dozens of hand-tuned skills, MCP server authorizations, and slash commands you could type blind. That is exactly what OpenAI just offered to pack up and move into Codex for you.

What OpenAI built

On August 11, OpenAI consolidated its external-agent import documentation into a single spec. ChatGPT desktop now has an Import option that scans for Claude Code, Claude Cowork, and Cursor; the Codex CLI accepts /import for Claude Code and Cursor. A few checkboxes later, your local configs, skills, plugins, project context, and the last 30 days of chat are copied over.

Note the word copied: the official docs state the import modifies or deletes nothing on the source side. OpenAI is handing competitors’ users a free moving truck — with the old apartment left untouched. And after reading the entire flow’s documentation, one term never appears: /export. You can move in, but not out.

What actually moves

OpenAI published a side-by-side migration map:

  • Instruction files: CLAUDE.md becomes AGENTS.md.
  • Settings: settings.json becomes config.toml — Claude Code’s JSON-plus-markdown hybrid collapses into a single TOML file.
  • Skills stay skills, plugins stay plugins — though plugin compatibility depends on the target (see below).
  • MCP server configs map to Codex MCP, Hooks map to Codex hooks, subagents map to Codex agents.
  • Custom slash commands — the team-level /xxx shortcuts — are converted into skills, renamed and re-scoped. This is less a move than a remodel.
  • Project memory becomes Memories; the last 30 days of chat go into ChatGPT chats. Local project folders are adopted in place, not uploaded.

One detail shows how carefully this was built: imported Claude Code sessions are often too long for Codex to read in one pass. Instead of erroring out, Codex records the conversation’s length and quota, then auto-summarizes older context the first time you resume it. No manual cleanup needed.

Three months of escalation

  • May (CLI 0.140.0): /import arrives, moving Claude Code settings, skills, and chat history. Cursor users were out of luck.
  • June 9 (app 26.608): Import moves into the desktop app and first-run onboarding.
  • July 21 (CLI 0.145.0): Expanded to six migration areas — settings, MCP servers, plugins, sessions, commands, project-level memory.
  • August 7 (CLI 0.147.0): Adds Cursor skill import plus continued sync of already-imported sessions.

Three iterations in three months. OpenAI is not waiting for Claude Code users to leave on their own.

One-way door

There is no command to move Codex configs out. What you change in Codex never writes back to Claude Code. The desktop app’s auto-sync switch only pulls new changes from Claude Code and Cursor into ChatGPT. The upstream keeps updating; the downstream keeps receiving.

Anthropic did the opposite in early March with its Memory Import tool, which pulls ChatGPT and Gemini preferences into Claude — and whose docs explicitly allow exporting Claude memory back out. Both directions open. OpenAI’s is one-way.

And OpenAI’s own open-source codex-plugin-cc (Apache 2.0, March 30) runs Codex inside Claude Code as slash commands — including /codex:transfer, which converts the current session into a persistent Codex thread using the same import rules. In four months, OpenAI went from “moving into the rival’s house” to “taking the residents with us.”

The four things that don’t survive

Community reports from developers who completed real migrations: roughly 90% of configs convert automatically. The remaining 10% is where it hurts.

  1. Permissions. Your hand-tuned fine-grained whitelist in Claude Code hits Codex’s three coarse sandbox levels: read-only, workspace-writable, fully open. You must re-derive the intent behind that whitelist and translate it into one of three buckets.
  2. Hooks. Claude Code’s richer hook model (conditional grouping, async chains) has no Codex equivalent. Complex hook chains are not converted — they’re redesigned. OpenAI’s own docs warn behavior may differ after import; review before use.
  3. The model itself. Codex speaks only OpenAI’s Responses protocol; Anthropic models are not accepted. Your CLAUDE.md, skills, and MCP configs move in, but the executor becomes GPT — and those prompts were tuned for Claude’s temperament. The only workaround is a compatibility gateway registered as a custom model provider. This is the single item in the whole checklist with no native equivalent.
  4. Chat history boundaries. Only local sessions move. claude.ai web conversations and Cursor web chats don’t come over. The CLI draws a hard line: last 30 days, max 50 messages.

One developer counted Claude Code’s skill fields: 18 total, only 6 are portable — 12 are Claude Code-specific. You can carry roughly a third of your skills.

OpenAI supplies a post-import review checklist: skill and agent permissions, MCP servers needing re-login, hooks whose behavior may shift, plugins to follow up manually, and command templates with parameters and file paths. One-click migration, then a half-hour manual audit. That’s the real flow.

Why this matters: the moat moved

Model benchmark scores rotate every six months — you’re on top today, dethroned next quarter. But configs, memory, skills, and session history don’t rotate. They sit on developers’ machines and get thicker every day. That accumulated asset is both the developer’s capital and the lock-in moat for OpenAI and Anthropic.

OpenAI’s move is aimed at draining the competitor’s moat. But draining someone else’s water means digging the channel wide open — and channels are bidirectional. SKILL.md, AGENTS.md, and standard MCP definitions are quietly becoming de facto standards. The more universal the formats, the harder it is for anyone to lock anyone in. What one command moves into Codex today can, in principle, move elsewhere tomorrow.

The practical answer for developers is simple: bet your assets on portable formats, not on any single tool.

What to do before you migrate

  • Audit your hooks first. Anything with conditional grouping or async chains will need a redesign, not a conversion. Budget real time for it.
  • Re-architect permissions, don’t translate them. Map your fine-grained whitelist to Codex’s three sandbox levels by intent, not by rule name.
  • Expect to rebuild a third of your skills. The 12 Claude Code-specific skill fields have no portable equivalent yet.
  • Keep CLAUDE.md portable from day one. Write it as AGENTS.md-compatible: tool-agnostic instructions, no vendor-specific syntax. That file is your real asset.
  • Treat MCP as the standard it is. Standard MCP definitions move cleanly; vendor-proprietary integrations don’t.

The tool war has shifted from model scores to user assets. Your config is the battlefield — and portable formats are the only armor.

Related News