AGENTS.md vs CLAUDE.md vs Cursor rules vs Copilot instructions
Every comparison page on the web is a capability table someone wrote from the vendor docs in an afternoon. None of them can tell you how many real repositories ship each file, how long the median one runs, or how often two of them turn up in the same project. Those answers need a corpus, and RuleStack counts one every night.
| Format | AGENTS.md 2026-08-02 | CLAUDE.md 2026-08-02 | Cursor rules 2026-08-02 | Copilot instructions 2026-08-01 |
|---|---|---|---|---|
| Asserted — what the docs say it can express | ||||
| File | AGENTS.md | CLAUDE.md | .cursor/rules/*.mdc | .github/copilot-instructions.md |
| Status | open-standard | vendor | vendor | vendor |
| Cross-tool | Yes | No | No | No |
| Tools that read it |
|
|
|
|
| Frontmatter | No | No | Yes | Yes |
| Glob targeting | No | No | Yes | Yes |
| Imports other files | No | Yes | Yes | No |
| Nested / per-directory | Yes | Yes | Yes | No |
| Multiple files | Yes | Yes | Yes | Yes |
| User-level scope | No | Yes | No | No |
| When it applies | Always in scope; in a monorepo the nearest AGENTS.md to the edited file wins. | Always in scope. Project file, plus nested files in subdirectories, plus a user-level file (~/.claude/CLAUDE.md) that applies across every project. | Four modes set in frontmatter: Always Apply (every chat session), Apply Intelligently (the agent picks it by description), Apply to Specific Files (globs match the edited file), and Apply Manually (@-mentioned). Rules must carry the .mdc extension — a plain .md file in .cursor/rules is ignored. | copilot-instructions.md is always in scope. Additional .github/instructions/*.instructions.md files load when their applyTo glob matches the open file. |
| Size limits | None | None | None | None |
| Measured — counted from real repositories on 2026-08-03 | ||||
| Repositories carrying it | 396 | 248 | 179 | 126 |
| Share of indexed repos | 57.0% | 35.7% | 25.8% | 18.1% |
| Files indexed | 1,366 | 775 | 1,279 | 309 |
| Median length (words) | 954 | 2,042 | 272 | 417 |
| 90th percentile length | 2,955 | 2,998 | 1,171 | 1,329 |
| Files naming commands | 42.9% | 34.1% | 29.3% | 41.8% |
| Files containing code | 36.5% | 34.5% | 58.0% | 48.2% |
| Median quality score | 52 | 44 | 52 | 60 |
| Median repository stars | 8,629 | 112 | 24 | 18,124 |
How often they turn up together
A capability table cannot answer this at all. Of the repositories carrying the first format, this is the share that also carry the second — counted, both directions, on 2026-08-03.
Cursor rules + Copilot instructions
2026-08-0329
repositories carry both. That is 16.2% of everything with Cursor rules, and 23.0% of everything with Copilot instructions.
CLAUDE.md + Cursor rules
2026-08-0355
repositories carry both. That is 22.2% of everything with CLAUDE.md, and 30.7% of everything with Cursor rules.
CLAUDE.md + Copilot instructions
2026-08-0347
repositories carry both. That is 19.0% of everything with CLAUDE.md, and 37.3% of everything with Copilot instructions.
AGENTS.md + Cursor rules
2026-08-0368
repositories carry both. That is 17.2% of everything with AGENTS.md, and 38.0% of everything with Cursor rules.
AGENTS.md + Copilot instructions
2026-08-0374
repositories carry both. That is 18.7% of everything with AGENTS.md, and 58.7% of everything with Copilot instructions.
AGENTS.md + CLAUDE.md
2026-08-03126
repositories carry both. That is 31.8% of everything with AGENTS.md, and 50.8% of everything with CLAUDE.md.
What each one is for
AGENTS.md
2026-08-02A plain-markdown README for coding agents, deliberately unopinionated: no frontmatter, no globs, no vendor keys. That minimalism is why it became the one file a dozen different agents will read, and why it carries the least per-file targeting power of any format here.
Strengths
- Read by more agents than any other format — one file covers most of a team's tooling
- No schema to get wrong; a plain markdown file always parses
- Nested files let a monorepo scope instructions per package
Weaknesses
- No glob targeting — every rule is loaded for every file, spending context
- No imports, so shared rules must be duplicated across packages
- No frontmatter means no machine-readable metadata for tooling to act on
CLAUDE.md
2026-08-02Claude Code's memory file. Shaped like AGENTS.md but with two things it lacks: @path imports, so shared rules live in one place, and a user-scope layer that follows the developer across repos rather than shipping with the code.
Strengths
- @path imports — shared conventions written once and pulled into each file
- A user-scope file lets personal preferences live outside the team repo
- Nested project files compose with the root file rather than replacing it
Weaknesses
- Single-vendor: no other agent reads it, so multi-tool teams maintain two files
- No glob targeting, same context cost as AGENTS.md — path-scoped rules exist, but in a separate .claude/rules/ file, not in CLAUDE.md itself
Cursor rules
2026-08-02The most expressive format here. Many small .mdc files, each with frontmatter declaring when it should load, so a rule about migrations only enters context when a migration is open. Costs the most to maintain and only one editor reads it.
Strengths
- Glob-scoped activation — the only widely-used format that keeps unrelated rules out of context
- Description-based activation lets the agent pull a rule in on demand
- Many small files are easier to review in a PR than one growing document
Weaknesses
- Cursor-only
- Frontmatter is a schema, and a malformed .mdc silently stops applying
- Fragmentation: rules spread over many files are easy to duplicate and contradict
Copilot instructions
2026-08-01Two layers: one always-on repo file, plus optional glob-scoped instruction files. Lives under .github/ rather than the repo root, which is the tell that it is aimed at the GitHub platform surface as much as the editor.
Strengths
- Reaches Copilot across the editor, github.com and the coding agent from one file
- applyTo globs give per-path targeting without leaving the .github convention
Weaknesses
- Copilot-only
- No imports; shared text is copied between instruction files
- Buried under .github/, so contributors discover it less often than a root file
