CLAUDE.md rules and mission become the repo-root AGENTS.md.Copying CLAUDE.md to AGENTS.md moves the one file you can see. It silently leaves behind the parts you can't — skills, memories, and per-project rules that made your Claude Code agent behave the way it does.
Claude Code spreads its configuration across several places: CLAUDE.md rules, ~/.claude/skills/, memory files, and per-project .claude/ settings and hooks. Codex reads a single AGENTS.md at the repository root. A copy-and-rename carries the top-level rules and drops everything without a one-to-one slot — skills, memories, and hooks have to be mapped and flattened, not moved.
~/.claude/CLAUDE.md to AGENTS.md at your repo root and rework the section headings.~/.claude/skills/ into AGENTS.md prose — Codex has no skills system..claude/ rules merge in.It works, and it's genuinely free. The catch is that it's error-prone, it doesn't tell you up front what won't map cleanly, and you repeat it every time your source config changes.
Install the CLI and dry-run the conversion. preview requires no license and changes nothing on disk:
curl -fsSL https://bringyour.ai/install.sh | sh bringyour preview --from claude-code --to codex
It reports whether the move is supported and confirms, in its own words, Move supported: yes and Original files will not be changed. Check your environment the same way — also license-free — with bringyour doctor, which lists the harnesses it detects and nothing else. Even if you never pay, previewing first de-risks the manual path: you go in knowing the move is supported and your files are safe.
Once the preview looks right, one command reads Claude Code and writes AGENTS.md into your repo. Use --policy merge so it keeps your existing files and only writes new ones:
bringyour migrate --from claude-code --to codex --policy merge
Before writing anything, migrate records a rollback snapshot under .portable/rollback/, then converts. Prefer the explicit two-step? Export a portable bundle, import it, then verify:
bringyour export --from claude-code --out my-agent.json bringyour import --to codex --in my-agent.json --root . bringyour verify --root .
verify reads the portable-manifest.json written on import and reports what passed, what failed, and which behavioral checks defer to the agent's first session. migrate, export, import, and verify are covered by the one-time lifetime license; preview and doctor are always free.
CLAUDE.md rules and mission become the repo-root AGENTS.md.CLAUDE-SETTINGS-NOT-PORTED.md.Hooks and MCP servers can't be represented one-to-one in AGENTS.md — the converter wraps or documents them and records the non-equivalent pieces as validation notes, rather than pretending they ported cleanly. That honesty is the point: you see exactly what to check before you trust the imported setup.