Skillwright
 Blog

June 3, 2026 · 11 min read · by Harish Ganapathi

AGENTS.md: One File for Every AI Coding Agent

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

ToolReads AGENTS.md natively?
OpenAI CodexYes (reference implementation)
CursorYes, including nested files
GitHub CopilotYes (nearest file wins)
Gemini CLI / JulesYes
Aider, Zed, Warp, goose, opencode, Factory, DevinYes
Claude CodeNo — 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:

FormatPortabilityExtra power
AGENTS.mdRead by 24+ toolsNone — plain Markdown by design
CLAUDE.mdClaude Code only@imports, CLAUDE.local.md, hierarchical memory
.cursor/rules/*.mdcCursor onlyGlobs, 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.

For the full five-way breakdown including SKILL.md and Copilot instructions, see SKILL.md vs CLAUDE.md vs .cursorrules vs AGENTS.md.

How to write a good AGENTS.md

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.

If you’re adopting AGENTS.md across a stack of tools, read how to manage AI coding rules across tools next.

Frequently asked questions

What is AGENTS.md?

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.