Originally published at heycc.cn. This is a mirrored copy — the canonical version is kept up to date at the source.
AGENTS.md: Inside the Open Standard for Briefing Coding Agents
Every AI coding agent needs the same three things before it can be useful in a real repository: how to set up the dev environment, how to run the tests, and how to format a pull request. For the first two years of the agentic-coding boom, every vendor solved this with its own file — .cursorrules for Cursor, CLAUDE.md for Claude Code, .windsurfrules for Windsurf, .clinerules/ for Cline — which meant a team running three agents against one repo maintained three near-duplicate instruction files, or one file that drifted out of sync with the others.
AGENTS.md is the industry's attempt to collapse that duplication into a single, tool-agnostic Markdown file. It is not a new idea in the sense of "structured agent config." It is closer to the opposite: a deliberately unstructured, schema-free README that any agent's context loader can slurp in wholesale. What makes it worth a deep look is not the format (there is barely a format) but the governance story behind it, and, more usefully for a working engineer, the gap between what vendors claim their tools do with the file and what their own documentation actually specifies. This piece audits that gap directly against primary sources and sets up a reproducible test of one tool's documented merge behavior on a real filesystem.
What AGENTS.md actually is (and isn't)
The canonical description, from the project's own site, is deliberately modest: AGENTS.md is "a simple, open format for guiding coding agents," or, as the same page puts it, "a README for agents: a dedicated, predictable place to provide the context and instructions to help AI coding agents work on your project."
There is no JSON Schema, no required frontmatter, no enum of valid section names. The spec's own words are explicit on this point: "AGENTS.md is just standard Markdown. Use any headings you like; the agent simply parses the text you provide." The official minimal example (from the spec repo's README) is three loosely-structured headings:
# Sample AGENTS.md file
## Dev environment tips
- Use `pnpm dlx turbo run where <project_name>` to jump to a package instead of scanning with `ls`.
- Run `pnpm install --filter <project_name>` to add the package to your workspace so Vite, ESLint, and TypeScript can see it.
- Use `pnpm create vite@latest <project_name> -- --template react-ts` to spin up a new React + Vite package with TypeScript checks ready.
- Check the `name` field inside each package's `package.json` to confirm the right name — skip package.json and dive straight into its README.
## Testing instructions
- Find the CI plan in the .github/workflows folder.
- Run `pnpm turbo run test --filter <project_name>` to run every check defined for that package.
- From the package root you can just call `pnpm test`. The commit should pass all tests before you merge.
- To focus on one step, add the Vitest pattern: `pnpm vitest run -t "<test name>"`.
- Fix any test or type errors until the whole suite is green.
- After moving files or changing imports, run `pnpm lint --filter <project_name>` to be sure ESLint and TypeScript rules still pass.
- Add or update tests for the code you change, even if nobody asked.
## PR instructions
- Title format: `[<project_name>] <Title>`
- Always run `pnpm lint` and `pnpm test` before committing.
That's the entire "spec" in practice: a naming convention (file must be called AGENTS.md, placed at repo root or in any subdirectory) plus a social convention (put environment setup, test commands, and PR formatting in there, in whatever prose or headings you like). The file is designed to be read by an LLM as raw context, not parsed by a strict grammar. That is exactly why it could spread so fast: any tool that already had a "read this Markdown file into the system prompt" code path could add support in an afternoon.
The one piece of real behavioral spec is precedence for nested files. Per the official site: "the closest AGENTS.md to the edited file wins; explicit user chat prompts override everything." So a monorepo can carry a root AGENTS.md with org-wide conventions and a packages/api/AGENTS.md with service-specific overrides, and an agent editing a file inside packages/api/ should prefer the nearer file's guidance when the two conflict. Most tools state this rule in prose. Exactly one — OpenAI's Codex CLI — turns it into a fully specified algorithm, which is why the firsthand test later in this piece uses Codex CLI as the subject.
Origin: a naming collision, and a history that's thinner than it looks
The standard's history is messier than the "OpenAI announced a standard" narrative that most coverage repeats. It's worth being precise here about what is and isn't independently verifiable, because this is exactly the kind of fast-moving, multi-vendor claim where secondhand blog posts tend to harden vague timelines into false-precise ones.
What the primary sources actually state: the official agents.md site credits collaborative origin without dates. AGENTS.md "emerged from collaborative efforts across the AI software development ecosystem, including OpenAI Codex, Amp, Jules from Google, Cursor, and Factory," and the page does not name a specific founding date, a May 2025 Amp proposal, or a domain acquisition anywhere on the page (checked directly against agents.md, July 2026). Web searches for corroboration turned up a consistent claim, that AGENTS.md was "released by OpenAI in August 2025," repeated across secondary sources including a third-party explainer at agentsmd.io, which additionally states that "in May 2025... [Amp] proposed AGENT.md (singular)" and that "OpenAI announced they had acquired the agents.md domain," after which "the AMP team honorably agreed to align with OpenAI's approach, redirecting their agent.md domain to support the AGENTS.md standard." That redirect is independently checkable: ampcode.com/AGENT.md returns an HTTP 302 to agents.md today, which is real, verifiable evidence a merge happened. But the May 2025 date and the "acquisition" framing come from a secondary explainer, not from OpenAI, Amp/Sourcegraph, or the Linux Foundation directly, and no primary source with a bylined date was located during this research pass. Treat the May 2025 date as reported-but-unconfirmed, not established fact.
Factory.ai's own announcement (dated August 19, 2025) is a genuine primary source and is more specific about the founding coalition, naming OpenAI, Factory, Sourcegraph/Amp, and Google (Gemini) as collaborators, and describing the goal as "a simple, open standard that gives coding agents a predictable way to understand and operate within software projects." That same announcement notes explicit migration support from .cursorrules, AGENT.md, and CLAUDE.md. In other words, the plural spec was designed to absorb the singular one and the vendor-specific incumbents, which at least confirms a singular-to-plural consolidation happened by August 2025, even if the exact month it started is fuzzier than most coverage implies.
The canonical source repository today is github.com/agentsmd/agents.md (a Next.js site, not something hosted under an openai/ GitHub namespace), which is itself a small governance tell: despite OpenAI driving the plural-filename push, the reference implementation lives in an org-neutral namespace.
December 2025: the Linux Foundation handoff
The most significant governance event in the AGENTS.md timeline is dated and independently corroborated across multiple primary sources. On December 9, 2025, the Linux Foundation announced the formation of the Agentic AI Foundation (AAIF), anchored by three founding project contributions:
- Anthropic's Model Context Protocol (MCP)
- Block's goose
- OpenAI's AGENTS.md
The Linux Foundation's own press release describes AGENTS.md as "a simple, universal standard that gives AI coding agents a consistent source of project-specific guidance needed to operate reliably across different repositories and toolchains," and states plainly that OpenAI "is bringing AGENTS.md to the table, its simple instruction file developers can add to a repository to tell AI coding tools how to behave." This is a meaningful shift for a spec that started as one company's fork of another company's proposal. AAIF's Platinum-tier membership includes AWS, Anthropic, Block, Bloomberg, Cloudflare, Google, Microsoft, and OpenAI. Direct competitors in the coding-agent space are now co-stewards of the same file format.
The practical upshot, per the project's own site, is that AGENTS.md is now "stewarded by the Agentic AI Foundation under the Linux Foundation," no longer solely an OpenAI-owned spec, at least nominally. Whether that changes the pace or direction of the spec's (minimal) evolution is unclear this early, but it does explain why a competitor like Anthropic would have incentive to eventually support the format natively in Claude Code (see below) rather than treat it as a rival vendor's file.
Which tools actually read it, and which fake it
This is the part that matters for a working engineer, and it's also where marketing claims ("60,000+ projects have adopted AGENTS.md," a figure traceable to OpenAI/Linux Foundation press materials with no independently disclosed counting methodology; treat it as a marketing claim, not a verified metric) diverge sharply from "does my specific tool actually load this file into context without me doing anything." Below is a tool-by-tool breakdown built from each vendor's own documentation. Two claims below were corrected during fact-checking for this piece. See the note after Devin and after Gemini CLI.
Native readers
Cursor. Cursor's official docs state that Cursor reads AGENTS.md natively as an alternative to Project Rules, and that nested AGENTS.md files in subdirectories are supported: more specific (closer) instructions take precedence and combine with parent directories, mirroring the spec's own precedence language. Cursor's own modern rules format, .cursor/rules/*.mdc, is a parallel, richer system (see comparison below) that coexists with AGENTS.md rather than replacing it.
OpenAI Codex CLI. Codex's own docs (developers.openai.com/codex/guides/agents-md) describe a genuinely specified discovery/merge algorithm, more precise than the spec text implies. Quoting the doc directly: at global scope, "Codex reads AGENTS.override.md if it exists. Otherwise, Codex reads AGENTS.md. Codex uses only the first non-empty file at this level." At project scope, "starting at the project root (typically the Git root), Codex walks down to your current working directory... In each directory along the path, it checks for AGENTS.override.md, then AGENTS.md, then any fallback names in project_doc_fallback_filenames. Codex includes at most one file per directory." On merge order: "Codex concatenates files from the root down, joining them with blank lines. Files closer to your current directory override earlier guidance because they appear later in the combined prompt." And on size limits: "Codex skips empty files and stops adding files once the combined size reaches the limit defined by project_doc_max_bytes (32 KiB by default)." This is the most rigorously documented implementation of the "closest file wins" rule in the entire ecosystem, tested directly below rather than just paraphrased.
GitHub Copilot. Copilot coding agent added AGENTS.md support on August 28, 2025 (per GitHub's own changelog), supporting either a single root file or nested AGENTS.md files scoped to specific parts of a project. Copilot did not drop its own formats. It continues to also read .github/copilot-instructions.md, .github/instructions/**.instructions.md, CLAUDE.md, and GEMINI.md in parallel, i.e., Copilot became the most promiscuous reader in the ecosystem rather than standardizing on one file. Separately, GitHub Copilot code review added its own AGENTS.md support later. A June 18, 2026 changelog entry confirms that adding an AGENTS.md at the repo root now shapes Copilot's code-review feedback, and Copilot automatically uses an existing AGENTS.md as context for that product surface too.
Devin (Cognition). Devin automatically picks up an existing AGENTS.md file in a repo. Devin's own docs (docs.devin.ai/onboard-devin/agents-md) describe it this way: "Devin supports AGENTS.md - a simple, open standard for providing context and instructions to AI agents. Think of AGENTS.md as a README for agents." This is distinct from Devin's own "Playbooks" feature (reusable task templates with steps, advice, forbidden actions, and acceptance criteria, triggered via Slack macros), a Devin-specific workflow layer sitting on top of, not instead of, AGENTS.md.
Amp, Factory, Jules (Google), VS Code. These are named directly in the official site's origin story as collaborators in the format's development and are listed among adopters in the Linux Foundation's own announcement, alongside Codex, Cursor, Devin, and Gemini CLI. Vendor documentation for these four is thinner on mechanism than Cursor's or Codex's: Amp and Factory's own sites confirm native AGENTS.md discovery at repo root but do not publish a merge algorithm as explicit as Codex's; Jules' support is confirmed via the Linux Foundation's adopter list and Google's own Jules documentation referencing AGENTS.md as a supported context file, without a documented nested-precedence spec; VS Code's Copilot Chat reads AGENTS.md as one of several context sources alongside .github/copilot-instructions.md, per GitHub's changelog, with the same merge behavior as Copilot coding agent rather than a distinct implementation. In short: confirmed as native readers, but with materially less publicly documented mechanism detail than Cursor or Codex CLI. That is a real asymmetry in how much any outside researcher can verify about each tool's actual precedence logic, not just an artifact of this article's coverage.
Tools that need a shim
Claude Code: the most notable holdout. Per Anthropic's own official documentation, Claude Code does not read AGENTS.md: "Claude Code reads CLAUDE.md, not AGENTS.md." The documented workaround is one of two options:
- A symlink:
ln -s AGENTS.md CLAUDE.md(on Windows this requires admin rights or Developer Mode enabled, since symlink creation is privileged by default). - An import line at the top of
CLAUDE.md:@AGENTS.md, with Claude-specific instructions appended below it.
Anthropic's docs do soften this somewhat: running /init in a repo that already has an AGENTS.md file "reads it and incorporates the relevant parts into the generated CLAUDE.md." So onboarding a new repo into Claude Code will absorb an existing AGENTS.md once, at generation time, even though there's no live/ongoing read of the file afterward. /init also folds in .cursorrules, .devin/rules/, and .windsurfrules the same way, treating AGENTS.md as just one of several tool-specific formats to reconcile into CLAUDE.md at setup time rather than a first-class ongoing source of truth.
There is an open feature request tracking this gap: anthropics/claude-code issue #34235, titled "Feature request: support AGENTS.md as a native context file alongside CLAUDE.md." It proposes CLAUDE.md be read first (for Claude-specific overrides) with AGENTS.md read second as a shared cross-tool fallback, explicitly preserving backward compatibility rather than replacing CLAUDE.md outright. The issue was opened March 14, 2026, about four months before this article's research date, and as of this research carries labels area:core, enhancement, and duplicate (the last label implying at least one earlier, likely-closed duplicate request exists), and remains open. Four months and a duplicate label is a real, but modest, signal of sustained demand, not the multi-year backlog "long-standing gap" framing might otherwise imply, and it's worth reading the issue's own comment thread rather than assuming aged consensus from the label alone.
Gemini CLI. Google's own CLI does not natively read AGENTS.md as of this writing. Its native context filename is GEMINI.md. There was a feature request, google-gemini/gemini-cli issue #4970, titled "Support 'AGENT.md' spec + filename." It argued for adopting the singular AGENT.md convention as a zero-config default, and discussed symlinks (noting they're awkward on Windows) as the workaround in the meantime. That issue was closed on August 20, 2025 (marked "completed") once commenters noted that agent.md itself now redirects to agents.md. The reporter called the request "redundant" once the naming had converged, not because Gemini CLI shipped native support. Gemini CLI still doesn't read either filename natively as of this writing. Separately, per Gemini CLI's own configuration reference, settings.json already supports a context.fileName property that "can accept either a single string or an array of strings, allowing you to specify multiple filenames that should be recognized as context files." For example, "context": { "fileName": ["CONTEXT.md", "GEMINI.md"] } would make Gemini CLI also read a CONTEXT.md, and a user could add "AGENTS.md" to that array today. That's manual configuration, not auto-discovery the way Cursor or Codex CLI have it.
Aider. Aider has no dedicated AGENTS.md code path, and no --conventions-file flag either; that flag does not exist in Aider's current CLI. Aider's own docs recommend creating a conventions markdown file (their example is named CONVENTIONS.md, but that name isn't reserved or auto-discovered) and pulling it into context manually with /read CONVENTIONS.md, aider --read CONVENTIONS.md, or persistently via read: CONVENTIONS.md in .aider.conf.yml. That same general-purpose --read flag (or read: config key) can just as easily point at AGENTS.md for manual interoperability. This is functionally a shim, not native support: nothing in Aider auto-discovers CONVENTIONS.md or AGENTS.md at repo root without explicit configuration.
Cline. Cline's native convention is a .clinerules/ directory of instruction files, a different mechanism entirely from a single Markdown file. Teams standardizing on AGENTS.md across tools typically need a manual bridge (a .clinerules entry that references or duplicates AGENTS.md content) rather than getting it read automatically.
Comparison table: native vs. shimmed support
| Tool | Native AGENTS.md read? | Documented merge/precedence mechanism | Native filename if different | Workaround needed |
|---|---|---|---|---|
| Cursor | Yes, incl. nested precedence | Closer file wins; combines with parent dirs | — | None; also has richer .cursor/rules/*.mdc
|
| OpenAI Codex CLI | Yes | Full documented algorithm: override-first, root-down concatenation, 32 KiB cap (see below) | — | None |
| GitHub Copilot coding agent | Yes (root or nested) | Same root/nested model as spec; no published byte cap | — | None; also reads .github/copilot-instructions.md, CLAUDE.md, GEMINI.md |
| GitHub Copilot code review | Yes (repo root) | Root file only; feeds review-comment context | — | None |
| Devin | Yes | Not independently documented beyond "supports AGENTS.md" | — | None |
| Amp (Sourcegraph) | Yes | Not independently documented | — | None |
| Factory | Yes | Not independently documented | — | None |
| Jules (Google) | Yes | Not independently documented | — | None |
| VS Code (Copilot Chat) | Yes | Shares Copilot's root/nested model | — | None |
| Claude Code | No | N/A — one-time /init absorption only, no live read |
CLAUDE.md |
Symlink AGENTS.md → CLAUDE.md, or @AGENTS.md import line |
| Gemini CLI | No | N/A | GEMINI.md |
Add "AGENTS.md" to context.fileName array in settings.json; feature request #4970 for a zero-config default was closed (redundant) in Aug 2025 |
| Aider | No | N/A | None reserved (docs use CONVENTIONS.md as an example) |
--read AGENTS.md flag, or read: AGENTS.md in .aider.conf.yml
|
| Cline | No | N/A |
.clinerules/ (directory) |
Manual duplication/reference into .clinerules
|
A reproducible test: Codex CLI's merge behavior
Codex CLI's own docs are specific enough to be independently testable. They point to a real introspection method: asking Codex to summarize its own loaded instructions. The documented debugging pattern from developers.openai.com/codex/guides/agents-md is to run Codex non-interactively and ask it to report what it loaded, e.g. codex --ask-for-approval never "Summarize the current instructions.", and to repeat that from a nested directory with codex --cd subdir --ask-for-approval never "Show which instruction files are active."
Set up a nested repo with conflicting instructions at two levels, then run the actual introspection command Codex's own docs recommend:
mkdir -p agents-md-test/packages/api && cd agents-md-test
git init -q
printf '# Root AGENTS.md\n\nUse pnpm for all installs.\n' > AGENTS.md
mkdir -p packages/api
printf '# API package AGENTS.md\n\nThis package uses Poetry, not pnpm.\n' > packages/api/AGENTS.md
cd packages/api
codex --ask-for-approval never "Show which instruction files are active, in what order, and which package-manager instruction wins."
To be explicit about what this is: the command above has not been run for this article, so what follows is a prediction derived from Codex's documented assembly algorithm, not a transcript. The documented behaviour says both files load in root-to-cwd order and the Poetry instruction from packages/api/AGENTS.md wins over the root's pnpm instruction, because it is concatenated later into the assembled prompt. If you run it yourself, prefer a lower-level prompt dump over asking the model to describe its own context. Check codex --help in your installed version for a debug or context subcommand. A model's self-report is a second-hand account of the prompt, not the prompt.
The documented algorithm predicts a specific, falsifiable outcome, and the command above is the actual mechanism Codex's own documentation prescribes for checking it, not a guess at one. That's a stronger, more mechanical precedence guarantee than the spec site's vaguer "closest file wins" language: Codex CLI is the one implementation in this survey that turns the social convention into a deterministic, documented algorithm with a byte budget (project_doc_max_bytes, default 32 KiB, configurable in ~/.codex/config.toml) and an explicit override mechanism (AGENTS.override.md, which replaces rather than adds to the regular file at its directory level).
How AGENTS.md differs from tool-specific files
The core design tension is between a portable, low-expressiveness file (AGENTS.md) and tool-specific, high-expressiveness systems that only work in one product.
CLAUDE.md (Claude Code) is not a competing spec so much as a different axis entirely: it's a memory hierarchy, not a single file. Anthropic's documented load order runs broadest to narrowest: managed policy (e.g., /etc/claude-code/CLAUDE.md on Linux/WSL, C:\Program Files\ClaudeCode\CLAUDE.md on Windows) → user (~/.claude/CLAUDE.md) → project (./CLAUDE.md or ./.claude/CLAUDE.md) → local (./CLAUDE.local.md). Critically, Anthropic's docs specify these files are concatenated, not override-replaced: every discovered file is included, ordered from filesystem root down to the working directory, with CLAUDE.local.md appended last within each directory. This is the opposite default from Codex CLI's AGENTS.override.md, which replaces rather than adds to a same-level file, a genuine mechanism difference between the two ecosystems' most-documented tools rather than just a naming difference. AGENTS.md has no equivalent of the user-level (~/) or org-managed-policy tiers; it is fundamentally a per-repository (or per-directory-within-a-repository) convention, with no standardized personal or fleet-wide layer.
.cursor/rules/*.mdc is the most structurally sophisticated of the tool-specific formats. It's Markdown with YAML frontmatter carrying real fields: alwaysApply (boolean), description (free text the agent uses to judge relevance), and globs (file-pattern based auto-attachment). This gives Cursor four distinct activation modes — Always Apply, Apply Intelligently (description-based), Apply to Specific Files (glob-triggered), and Apply Manually (invoked with @rule-name) — none of which have any equivalent in AGENTS.md, which is always-on, whole-file context with no conditional attachment logic at all. This is the clearest illustration of the trade AGENTS.md makes: it sacrifices Cursor's fine-grained, glob-scoped, intelligently-attached rule system for maximum portability across a dozen-plus tools.
The practical pattern that's emerging, and that GitHub Copilot's "read everything" approach exemplifies, is coexistence, not replacement: teams keep AGENTS.md as the lowest-common-denominator source of truth (setup, test, PR conventions any agent should follow) and layer tool-specific files on top for capabilities AGENTS.md can't express: Cursor's glob-scoped rules for "only apply this rule when editing *.tsx," or a CLAUDE.md with an @AGENTS.md import plus Claude-specific instructions appended below it, exactly as Anthropic's docs recommend.
Where this analysis pushes past the vendor docs
Three judgment calls in this piece go beyond restating what a vendor's changelog says:
- The mechanism asymmetry is a real finding, not a coverage artifact. Codex CLI publishes an algorithm precise enough to falsify (root-down concatenation, override-vs-add semantics, a byte cap); Amp, Factory, Jules, and Devin publish essentially "we support it" with no equivalent detail. That's not because this article dug less on those four. It's because those vendors haven't documented their precedence logic publicly at the same depth. A team relying on nested AGENTS.md files with Amp or Factory today has no documented way to predict which file wins in a conflict, and should test it empirically rather than assume Codex-style root-down concatenation.
-
The override-vs-concatenate split between Codex and Claude Code is a substantive design disagreement, not a cosmetic one: an
AGENTS.override.mdin Codex silently drops the siblingAGENTS.mdat that directory level, while Claude Code's hierarchy always includes every discoveredCLAUDE.md/CLAUDE.local.md. A file author who assumes "closer file wins" means "closer file is merged in" (true for Claude Code, false for Codex when an override file is present) will mispredict what an agent actually sees. -
The origin story most secondary coverage repeats (May 2025, domain acquisition) is less pinned-down than it reads. This matters practically: if a team is deciding whether to bet on AGENTS.md's long-term stewardship, "OpenAI acquired a domain and won a filename war in a few months" versus "a slower, less-documented multi-party convergence" are different confidence signals about how contested the format might still be. The verifiable fact — the
ampcode.com/AGENT.md→agents.mdredirect existing today — is stronger evidence of current consolidation than any secondhand date is evidence of how it happened.
Decision framework: what should a repo actually ship?
| Repo situation | Recommended setup |
|---|---|
| Single agent tool, team doesn't care about portability | Just use that tool's native file (CLAUDE.md, .cursor/rules/, etc.) — no need for AGENTS.md |
| Multiple agent tools in rotation (Cursor + Codex CLI + Copilot) | Root AGENTS.md as the shared source of truth; all three read it natively with no shim |
| Multiple tools including Claude Code |
AGENTS.md plus a two-line CLAUDE.md with @AGENTS.md import and any Claude-specific overrides below it — avoids the symlink's Windows privilege requirement |
| Multiple tools including Gemini CLI |
AGENTS.md plus "context": { "fileName": ["AGENTS.md", "GEMINI.md"] } in .gemini/settings.json until #4970 ships a default |
| Monorepo with per-package conventions | Root AGENTS.md for org-wide rules, nested AGENTS.md per package for local overrides — but verify empirically per tool whether nested files merge (Claude Code-style) or replace (Codex override-style) before relying on precedence |
| Team also wants glob-scoped or conditionally-attached rules | AGENTS.md for the universal baseline, .cursor/rules/*.mdc (or equivalent) layered on top for the capabilities AGENTS.md structurally cannot express |
Checked against the AGENTS.md spec itself (2026-07-02)
Checked directly against primary sources during this revision: Devin's docs page (docs.devin.ai/onboard-devin/agents-md), which corrected a fabricated quote; Gemini CLI issue #4970 body text, which corrected a misattributed claim about a settings.json workaround; Gemini CLI's own configuration reference for the actual context.fileName setting; anthropics/claude-code issue #34235, which confirmed a creation date of March 14, 2026 and current labels; the Linux Foundation's AAIF press release for the December 9, 2025 date and exact quoted language; the official agents.md site, confirming it does not state a May 2025 date or domain-acquisition detail (that detail traces to a secondary source, agentsmd.io, and is flagged as such above); and OpenAI's own Codex CLI documentation for the exact merge-algorithm wording and the documented introspection command used in the firsthand artifact section. The "60,000+ projects" adoption figure could not be independently verified beyond its origin in OpenAI/Linux Foundation press materials and is presented above as a marketing claim, not a verified metric.
Re-verified 2026-07-16. A second pass against current primary sources found two claims that had drifted: google-gemini/gemini-cli issue #4970 was described as "open" but was actually closed on August 20, 2025 (as redundant, once the reporters noticed agent.md now redirects to agents.md, not because Gemini CLI added native support, which it still hasn't); and the Aider section referenced a --conventions-file flag that does not exist in Aider's CLI. Aider's own docs point to the general-purpose --read flag or a read: key in .aider.conf.yml, which is not conventions-specific but works identically for pointing at AGENTS.md. Both are corrected above. Everything else — the agents.md precedence and origin text, the Codex CLI merge algorithm and introspection commands, the Anthropic/Claude Code documentation (still explicitly "Claude Code reads CLAUDE.md, not AGENTS.md," now hosted at code.claude.com/docs/en/memory), the Cursor nested-precedence claims, the Devin quote, the GitHub Copilot coding-agent (Aug 28, 2025) and code-review (June 18, 2026) changelog entries, the December 9, 2025 AAIF/Linux Foundation announcement and its Platinum member list, and the Factory.ai announcement — checked out unchanged against the live pages and the gh issue view output for anthropics/claude-code#34235 (still open, same three labels, created March 14, 2026) as of this date.
Sources
- AGENTS.md official site: canonical spec text, minimal example, precedence rule, adopter list
-
OpenAI Codex CLI — Custom instructions with AGENTS.md: documented discovery/merge algorithm,
project_doc_max_bytes,AGENTS.override.md, introspection command - Devin docs — AGENTS.md: primary source for Devin's exact description of AGENTS.md
- google-gemini/gemini-cli issue #4970: "Support 'AGENT.md' spec + filename" request; verified body text and confirmed it was closed August 20, 2025
-
Gemini CLI configuration reference:
context.fileNamesettings.json property - anthropics/claude-code issue #34235: feature request and verified creation date/labels
-
Anthropic — Claude Code memory documentation: CLAUDE.md hierarchy, concatenation behavior,
/initAGENTS.md absorption - Linux Foundation — Formation of the Agentic AI Foundation (AAIF): December 9, 2025 announcement, founding projects, membership tiers
- Factory.ai — AGENTS.md announcement: founding coalition detail, migration support from AGENT.md/.cursorrules/CLAUDE.md
-
Cursor docs — Rules: native AGENTS.md support, nested precedence,
.cursor/rules/*.mdcformat - GitHub Changelog — Copilot coding agent AGENTS.md support: August 28, 2025 native support announcement
-
Aider docs — Specifying coding conventions:
CONVENTIONS.mdexample and the--read/read:mechanism for pointing Aider at any file, including AGENTS.md (no dedicated--conventions-fileflag exists) - agentsmd.io — AGENT.md vs AGENTS.md history: secondary source for the May 2025 Amp proposal and domain-redirect narrative, cited and flagged as secondary in this piece

Top comments (0)