When you update project instructions: keep CLAUDE.md and AGENTS.md aligned.
Do not maintain two full copies. Pick one as the source of truth and make the other an adapter.
Same idea, different file names and formats. Here's what each tool expects.
Claude keeps everything in one folder. Codex splits config and skills into two folders.
your-project/
CLAUDE.md
.claude/
settings.json
agents/
researcher.md
skills/
youtube-video/
SKILL.md
your-project/
AGENTS.md
.codex/
config.toml
agents/
researcher.toml
.agents/
skills/
youtube-video/
SKILL.md
When you forget where something lives, this table has the answer.
CLAUDE.mdAGENTS.md.claude/.codex/.claude/skills/<name>/SKILL.md.agents/skills/<name>/SKILL.md.claude/agents/<name>.md.codex/agents/<name>.toml.claude/settings.json.codex/config.tomlCLAUDE.local.mdAGENTS.override.md~/.claude/~/.codex/ + ~/.agents/skills/~/.claude/CLAUDE.md~/.codex/AGENTS.mdCLAUDE.mdAGENTS.mdWorth reading before you start. These are the differences you can't paper over.
Claude reads from .claude/skills/. Codex reads from .agents/skills/. Same basic SKILL.md shape, but Claude-specific tool names or hooks may need small edits for Codex.
A Claude agent is a .md file with a small YAML header. A Codex agent is a .toml file. The instructions inside are the same idea, just wrapped differently.
You can't copy .claude/settings.json into .codex/config.toml. They're different formats and configure different things. Keep them separate.
Both tools support a CLAUDE.md or AGENTS.md inside a subfolder for scoped instructions. Codex chains them from the repo root down to your current directory. The closer file wins.
Claude agents are markdown files. Codex agents are TOML files. The role prompt can be similar, but the wrapper and execution model are different.
Put reusable knowledge in docs/, references/, and templates/. Then both tools can read the same source instead of drifting apart.
Split your project into three layers. Shared knowledge in one place, workflows in another, tool-specific config in their own folders.
Separate content this way and you never write the same thing twice.
Lives in references/, docs/, templates/. Any agent reads it. Don't duplicate.
Same basic SKILL.md shape in two folders: .claude/skills/ for Claude, .agents/skills/ for Codex. Sync the files, then adapt tool-specific details if needed.
Stays in .claude/ and .codex/. These don't overlap. Don't try to merge them.
Open the Claude-built project in Codex and paste this prompt. Codex can create the adapter files for you.
I built this project in Claude Code and want it to also work well in Codex.
Please inspect the project and create a Codex adapter setup.
Do these things:
AGENTS.md at the project root.
CLAUDE.md as the source of project knowledge.AGENTS.md is the Codex-facing adapter..codex/config.toml.
.agents/skills/.
.claude/skills/ into .agents/skills/.SKILL.md and supporting files together..codex/skills/..codex/agents/ for any important Claude agents.
.md files in .claude/agents/..toml files in .codex/agents/.developer_instructions..gitignore if needed.
Before editing, show me the files you plan to create or change.
The whole conversion idea: do not rebuild the project. Add a Codex layer beside the Claude layer.
The setup only works if both tools stay in sync. These are the habits that matter.
CLAUDE.md and AGENTS.md aligned.Do not maintain two full copies. Pick one as the source of truth and make the other an adapter.
.agents/skills/ if Codex should use it..codex/agents/<name>.toml if Codex should spawn it.docs/, references/, or templates/ so every tool can read the same source.Global vs project: both tools support both Global files live in your home folder and apply everywhere. Project files live inside one repo. Claude mirrors .claude/ into .claude/, Codex splits global files: ~/.codex/ for config and agents, ~/.agents/skills/ for skills.