AGENTS.md is the cross-tool briefing. CLAUDE.md is Claude Code's native one. Both are instruction files. They do not hold yesterday's decision, the open task Cursor left, or anything a teammate's agent wrote on another machine. That living layer is a shared project brain.
AGENTS.md is a repo-root Markdown file most coding agents look for: Codex, Cursor, Copilot, Windsurf, Zed, and a long tail of others. Put build commands, stack, and "never touch billing" there. Keep it short. Closest file to the code usually wins in nested folders.
It is not:
.cursor/rules, Claude hooks)| AGENTS.md | CLAUDE.md | ReadmeDB | |
|---|---|---|---|
| Who reads it | Codex, Cursor, Copilot, Windsurf, … | Claude Code (native) | Any MCP client |
| Where it lives | Git, repo root / nested | Git + optional user-level file | Cloud namespace, versioned |
| Agents write it? | Rarely — it should stay stable | Same — briefing, not a journal | Yes — that is the point |
| Open tasks / decisions | Wrong place — file bloats, goes stale | Wrong place | decisions.md, open-tasks.md |
Claude Code's entrypoint is still CLAUDE.md. Do not paste the whole AGENTS.md into it. First line of CLAUDE.md:
@AGENTS.md # Claude-only extras below (hooks, permissions), if any
Cursor and Codex read AGENTS.md natively. One shared file, one Claude bridge. That still only covers instructions.
Same MCP block in Cursor, Claude Code, or Windsurf:
{
"mcpServers": {
"readmedb": {
"url": "https://app.readmedb.com/api/mcp",
"headers": {
"Authorization": "Bearer rdb_your_key"
}
}
}
}Then add one line to AGENTS.md: before coding, read and update decisions.md / open-tasks.md in ReadmeDB. Do not treat this file as the living task list.
Keep the instruction file in git. ReadmeDB is for the stuff that should move every day — the layer AGENTS.md vs CLAUDE.md blog posts never cover because they stop at “which filename.”