- Claude Code và Codex có thể coexist trong cùng 1 repo mà không xung đột - chỉ cần chia sẻ 1 knowledge base chung và mirror 2 config layer mỏng.
- AGENTS.md là canonical file (đọc bởi cả hai), CLAUDE.md chỉ cần 1 dòng @import.
- Skills là markdown thuần, cùng file chạy được ở cả .claude/skills/ lẫn .agents/.
- Khi Claude Code looping 10 phút, session handoff sang Codex mất 30 giây - và Codex fix xong.
TL;DR
Claude Code và OpenAI Codex không phải cuộc chiến either/or. Chúng có thể chạy song song trong cùng 1 folder, đọc cùng codebase, và bù đắp điểm yếu cho nhau. Setup mất 5 phút. Sau đó bạn mở 2 terminal: một chạy claude, một chạy codex - và phân công theo thế mạnh từng tool.
- Claude Code: brainstorm kiến trúc, reasoning phức tạp, context window 1M token
- Codex: autonomous execution nhiều giờ, /goal loop, token-efficient
- Skills portable: cùng 1 file markdown dùng được ở cả hai
- Session handoff: bị stuck ở Claude Code → paste summary sang Codex → tiếp tục trong 30 giây
Khi 1 Agent Không Đủ
Bất kỳ ai dùng Claude Code đủ lâu đều biết cảm giác này: cùng 1 lỗi, looping 10 phút, tokens cứ tụt dần. Nate Herk - developer nổi tiếng trong cộng đồng Claude Code - chia sẻ trên X rằng anh đã bị Codex "giải cứu" nhiều lần: paste cùng project sang Codex, và lỗi mà Claude Code không giải quyết được lại fix xong trong vài giây.
Nhưng vấn đề không phải Claude Code tệ hơn Codex. Vấn đề là 2 model có điểm mạnh khác nhau và hầu hết developer chỉ dùng 1 trong khi có thể dùng cả hai.
Ba Lớp Của Mọi AI Coding Project
Mỗi dự án AI coding đều chia thành 3 lớp - và đây là insight quan trọng nhất:
- Shared Knowledge - wiki, docs, scripts, brand assets, decisions, archived context. Toàn bộ là markdown. Cả Claude Code lẫn Codex đều đọc được. Layer này không bao giờ thay đổi khi bạn thêm tool mới.
- Skills & Workflows - các prompt và workflow có thể tái sử dụng. Cùng format markdown, khác folder:
.claude/skills/cho Claude Code,.agents/cho Codex. - Tool-specific Config -
settings.jsoncho Claude Code,config.tomlcho Codex. Mỏng, dễ mirror, ít thay đổi.
Trick ở đây là nhận ra lớp đầu tiên chiếm 80% giá trị của project và không cần đụng tới khi thêm tool mới. Chỉ 2 layer sau mới cần mirror.
Setup Trong 5 Phút
Bước 1 - Chọn canonical file: Dùng AGENTS.md làm source of truth. Lý do: AGENTS.md là open standard của Linux Foundation, được adopt bởi 60,000+ project open-source, và Claude Code tự động fall back sang AGENTS.md nếu không tìm thấy CLAUDE.md.
Bước 2 - CLAUDE.md chỉ cần 1 dòng:
@AGENTS.md
# Claude-specific additions (nếu có)
- Dùng /compact khi session dài
- Ưu tiên Explore subagent cho repo scanning
Claude Code đọc file import tại session start, rồi append các rule Claude-specific phía sau. Không cần duplicate. Không drift.
Cấu trúc folder hoàn chỉnh:
my-project/
├── AGENTS.md ← canonical (cả hai đọc)
├── CLAUDE.md ← chỉ @AGENTS.md + Claude-specific
├── .claude/
│ ├── skills/ ← Claude Code skills
│ └── settings.json
├── .agents/ ← Codex skills (cùng file!)
└── wiki/ ← shared knowledge
Giới hạn cần nhớ: AGENTS.md có hard limit 32-64 KiB (truncate không báo lỗi nếu vượt). CLAUDE.md khuyến nghị dưới 200-300 dòng. LLM chỉ follow được ~150-200 instructions tin cậy - và Claude Code system prompt đã dùng ~50 slot rồi.
Skills Portable và Session Handoff
Skills là điểm mạnh nhất của setup này. Skills trong Claude Code là markdown với YAML frontmatter. Skills trong Codex cũng là markdown với YAML frontmatter. Cùng format, khác folder. Drop cùng 1 file vào .claude/skills/ và .agents/ - cả hai tool đều chạy được, không cần rewrite.
Nate Herk đã build skill session-handoff trong Claude Code. Khi agent bị stuck:
- Gọi
/session-handoff→ Claude Code tóm tắt: files active, decisions đã làm, next steps - Copy summary → paste vào Codex
- Codex tiếp tục từ đúng điểm đó - không cần re-explain context
Đây là move quan trọng nhất: một session bị stuck không bao giờ phải stay stuck.
Sub-agents: Markdown vs TOML
Sub-agents là chỗ duy nhất format thực sự diverge:
- Claude Code: markdown file mô tả sub-agent (name, model, tools). Model tự route dựa trên description - bạn không cần gọi tường minh.
- Codex: TOML file mô tả cùng thông tin đó. Nhưng Codex không auto-invoke - phải gọi bằng tên.
Kết quả: cùng 1 job, 2 file format, 2 invocation pattern. Không có cách dùng chung 1 file cho cả hai ở layer này - nhưng convert rất nhanh: "Hey Codex, đọc CLAUDE.md và tạo AGENTS.md tương đương, setup .codex config, đưa skills vào .agents folder" - Codex tự làm trong ~30 giây.
Cạm Bẫy Cần Tránh
File conflicts khi chạy song song: Nếu cả hai agent đang edit cùng 1 file, chúng sẽ overwrite nhau. Giải pháp: phân chia file ownership rõ ràng trước khi bắt đầu. Claude Code sở hữu gì, Codex sở hữu gì.
Codex automations bug: Codex interactive sessions dùng GPT-5.5, nhưng Codex automations mặc định chạy GPT-5.2 - model yếu hơn đáng kể. Nếu schedule automation mà quên manually chỉnh model, AGENTS.md được tune cho GPT-5.5 sẽ không hoạt động như kỳ vọng. Fix: vào từng automation, manually set GPT-5.5.
Đừng copy-paste rules: Anti-pattern phổ biến nhất là maintain 2 file riêng biệt với nội dung trùng. Khi stack thay đổi, bạn sẽ quên update 1 trong 2 và có diverged rules. Dùng @import, dùng 1 source of truth.
Đừng commit AGENTS.override.md: File này dành cho local tweaks, machine-specific paths. Add vào .gitignore ngay khi tạo - một khi committed thì nó không còn là override nữa.
Điểm Mấu Chốt
Nate Herk kết bài bằng 1 câu đơn giản: "Nếu bạn đã thành thạo Claude Code, bạn cơ bản đã thành thạo Codex. Mental model giống nhau. Tên file khác nhau."
Setup này không phải về việc tool nào tốt hơn. Nó về việc không bị locked vào 1 ecosystem. Khi Claude Code down 1 ngày, bạn vẫn build ở cùng tốc độ vì Codex đã được wire vào cùng project. Khi Codex looping, session handoff về Claude Code trong 30 giây.
Hai subscription, hai terminal, cùng 1 codebase - và một session bị stuck không bao giờ cần stay stuck.
via Nate Herk (@nateherk) · Blink Blog - AGENTS.md vs CLAUDE.md · MindStudio - Codex vs Claude Code
