For years, every AI coding tool wanted its instructions in a different file. AGENTS.mdis the answer the ecosystem converged on: one plain-Markdown file that Codex, Cursor, Copilot, Gemini, and two dozen other agents all read. Here’s what it is, who’s behind it, the format, and how it stacks up against CLAUDE.md and .cursorrules.
Key takeaways
AGENTS.md is a “README for agents” — plain Markdown, no required frontmatter, no required fields.
It’s a real standard: Linux-Foundation-stewarded, used in 60,000+ repos, read by 24+ tools.
Nested files resolve by “closest file wins”; an explicit chat instruction always overrides.
The big exception: Claude Code doesn’t read it natively — use a CLAUDE.md import or symlink.
What is AGENTS.md?
AGENTS.mdis a standardized Markdown file that acts as a README written for AI agents instead of humans. It’s the predictable place to put the things that would clutter a human-facing README: how to set up the project, the exact build and test commands, code conventions, and the norms an agent should follow. Per the spec, it’s “just standard Markdown — use any headings you like; the agent simply parses the text you provide.”
That simplicity is the point. There’s no schema to learn, no frontmatter to get wrong, and nothing tool-specific. You write what you want the agent to know, and every agent that supports the standard reads it.
Who’s behind it
AGENTS.mddidn’t come from one vendor trying to own a format. It emerged from collaboration across OpenAI Codex, Amp (Sourcegraph), Google Jules, Cursor, and Factory, and is now stewarded by the Agentic AI Foundation under the Linux Foundation. By 2026 the official site reports usage in more than 60,000 open-source repositories and native support across two dozen-plus tools. That neutral governance is exactly why it has a shot at being the standard rather than one more format.
The format
There’s no required structure — these headings are just a common convention:
# AGENTS.md
## Setup
- Install deps: `pnpm install`
- Copy `.env.example` to `.env.local`
## Build & test
- Build: `pnpm build`
- Test: `pnpm test` (must pass before any commit)
- Lint: `pnpm lint`
## Conventions
- TypeScript strict mode; prefer named exports
- Components are typed function components, no default exports
- Files under 800 lines, functions under 50
## Don't
- Don't add a dependency without flagging it
- Don't touch the generated `/dist` directory
Nested files for monorepos
In a monorepo you can place an AGENTS.md in any subdirectory. The resolution rule is simple: the closest AGENTS.md to the file being edited wins, and an explicit instruction in chat overrides everything. OpenAI Codex, the reference implementation, merges files from the Git root down to the working directory, with closer files taking precedence.
Which tools support AGENTS.md
Tool
Reads AGENTS.md natively?
OpenAI Codex
Yes (reference implementation)
Cursor
Yes, including nested files
GitHub Copilot
Yes (nearest file wins)
Gemini CLI / Jules
Yes
Aider, Zed, Warp, goose, opencode, Factory, Devin
Yes
Claude Code
No — reads CLAUDE.md (workaround below)
AGENTS.md vs CLAUDE.md vs .cursorrules
AGENTS.md is the portable lowest common denominator. The tool-native formats trade portability for power:
Format
Portability
Extra power
AGENTS.md
Read by 24+ tools
None — plain Markdown by design
CLAUDE.md
Claude Code only
@imports, CLAUDE.local.md, hierarchical memory
.cursor/rules/*.mdc
Cursor only
Globs, per-mode activation, @file refs
The Claude Code catch
Claude Code does not read AGENTS.md natively (as of mid-2026). A repo with only an AGENTS.md loads zero project instructions in Claude Code — silently. The two standard workarounds: a thin CLAUDE.md that does @AGENTS.md (Claude Code expands the import), or a symlink ln -s AGENTS.md CLAUDE.md. This is a fast-moving area, so check the current Claude Code docs.
Lead with commands. The single highest-value content is the exact setup, build, and test commands — an agent that can run your tests can verify its own work.
State conventions as rules, not essays. “Prefer named exports” beats three sentences about module philosophy.
Include a “Don’t” section.Negative constraints (don’t touch generated files, don’t add deps silently) prevent the most expensive mistakes.
Keep it current. A stale AGENTS.md actively misleads every agent that reads it.
Why a cross-tool standard is a big deal
Before AGENTS.md, encoding your project’s norms meant maintaining the same content in .cursorrules, CLAUDE.md, and copilot-instructions.md— and watching them drift. A shared standard collapses most of that into one file. That’s also exactly the thesis behind Skillwright: keep your rules and skills in one canonical library, treat AGENTS.mdas a first-class output, and compile to the tool-specific formats (including Claude Code’s CLAUDE.md and Cursor’s .mdc) so nothing drifts.
AGENTS.md is a plain-Markdown file that acts as a 'README for agents' — a predictable place to put build steps, test commands, code conventions, and project norms for AI coding agents. It has no required fields and no required frontmatter; agents simply parse the text you write.
Is AGENTS.md a real standard?
Yes. It emerged from collaboration across OpenAI Codex, Amp, Google Jules, Cursor, and Factory, and is now stewarded by the Agentic AI Foundation under the Linux Foundation. As of 2026 it's used in 60,000+ repositories and read by two dozen-plus tools.
Which tools support AGENTS.md?
A growing list: OpenAI Codex, Cursor, GitHub Copilot, Google Gemini CLI and Jules, Aider, Zed, Warp, goose, opencode, Factory, Devin/Windsurf, JetBrains Junie, Amp, RooCode, Kilo Code, and more. The notable exception is Claude Code, which reads CLAUDE.md rather than AGENTS.md natively.
What's the difference between AGENTS.md and CLAUDE.md?
AGENTS.md is a portable, cross-tool open standard in plain Markdown. CLAUDE.md is Anthropic's native, Claude-Code-only file that supports extra features like @imports, CLAUDE.local.md overrides, and hierarchical memory. AGENTS.md works everywhere but is simpler; CLAUDE.md is richer but Claude-only.
Does Claude Code read AGENTS.md?
Not natively as of mid-2026 — Claude Code loads CLAUDE.md. A repo with only an AGENTS.md will load zero project instructions in Claude Code (with no error). The common workarounds are a thin CLAUDE.md that imports it with @AGENTS.md, or a symlink (ln -s AGENTS.md CLAUDE.md). Verify against the latest Claude Code docs, as this may change.
Can one AGENTS.md replace all my other rule files?
For simple projects, often yes. But tools like Cursor still offer richer scoping (.mdc globs) and Claude Code has its own memory model, so in practice teams keep AGENTS.md as the source of truth and generate or maintain the tool-specific files alongside it.