Claude Code uses CLAUDE.md. Codex uses AGENTS.md. Gemini uses .gemini/settings.json. OpenCode uses opencode.json. Same project, same rules, four different formats. Here's exactly how they differ and how to unify them.
CLAUDE.md — Claude Code's Instruction File
Claude Code reads a Markdown file at the project root. It supports structured instructions, coding conventions, and project-specific rules. The format is free-form Markdown — flexible but unstructured.
# CLAUDE.md\n\n## Project Rules\n- Use TypeScript strict mode\n- Tests use Vitest, not Jest\n- API responses use camelCase\n\n## Architecture\n- Next.js App Router\n- Prisma ORM with PostgreSQLAGENTS.md — Codex's Instruction File
Codex reads AGENTS.md, backed by the Linux Foundation's emerging standard. Similar free-form Markdown, but with different conventions for agent roles and task boundaries.
# AGENTS.md\n\n## Coding Agent\nYou are a senior TypeScript developer.\nFollow existing patterns in src/.\nRun tests before committing.\n\n## Review Agent\nFocus on security and performance.opencode.json — OpenCode's Config
OpenCode uses a structured JSON format. More rigid than Markdown, but machine-parseable. Defines agents with specific models and instructions.
agents\nname\ndefault\nmodel\nkimi-k2.5\ninstructions\nUse TypeScript strict mode....gemini/settings.json — Gemini CLI's Config
Gemini CLI uses a settings file in a hidden directory. JSON format with model preferences and context settings.
The Problem: Same Rules, Four Files
Notice the pattern? Every file says roughly the same thing:
Language
Testing
Architecture
Style
Four files. Same rules. One will drift within two weeks. Guaranteed.
The Fix: One Source, All Configs
0dai generates all four files from a single ai/ directory:
$ 0dai init\n✓ Detected: Next.js + TypeScript + Prisma\n✓ Generated: CLAUDE.md\n✓ Generated: AGENTS.md\n✓ Generated: opencode.json\n✓ Generated: .gemini/settings.json\n\n$ 0dai sync # after editing ai/\n✓ All 4 configs updated from ai/ sourceEdit your rules once in ai/. Run 0dai sync. Every agent gets the update. No drift. No copy-paste.
Get Started
$ npm install -g @0dai-dev/cli\n$ cd your-project\n$ 0dai init\n$ 0dai doctor # verify everything works