Cursor rules vs Claude.md vs Copilot instructions: which AI tool format wins?
Every major AI coding assistant — Cursor, Claude Code, GitHub Copilot, Windsurf, Cline, Aider, Continue, Cody — supports a project rules file. Each one calls it something different and reads it from a different path. The format wars look intense from the outside.
They're mostly cosmetic. Here's what actually differs and what doesn't.
Where each tool reads from
| Tool | Path | Format |
|---|---|---|
| Cursor (legacy) | .cursorrules |
Plain markdown |
| Cursor (modern) | .cursor/rules/*.mdc |
Markdown + YAML frontmatter, multi-file with globs |
| Claude Code | CLAUDE.md |
Plain markdown, nested files merged |
| GitHub Copilot | .github/copilot-instructions.md |
Plain markdown, aggressive truncation |
| Windsurf | .windsurfrules |
Plain markdown |
| Cline | .clinerules (file or directory) |
Plain markdown |
| Aider | CONVENTIONS.md |
Plain markdown, must be loaded explicitly |
| Continue | .continuerules + ~/.continue/config.yaml |
Plain markdown + YAML rules |
| Cody | .sourcegraph/cody.md |
Plain markdown |
What's actually different
Frontmatter support. Only Cursor's modern .mdc format expects YAML frontmatter (with description, globs, alwaysApply). Every other tool reads plain markdown. Going from .mdc to anything else means stripping the frontmatter; going the other direction means adding default values.
File globs. Only Cursor .mdc supports scoping rules to specific file patterns (globs: ["**/*.tsx"]). If you want different rules for your TypeScript files vs your tests, only Cursor handles it natively. Every other tool reads one file for the whole project.
Multi-file composition. Cursor .mdc and Cline's directory mode let you split rules across files. Claude Code merges nested CLAUDE.md files in subdirectories. Everything else is single-file.
Length tolerance. Copilot is the strictest — it truncates aggressively, so anything past 200 lines is risky. Claude is the most generous, comfortably handling 600+ lines. Cursor and Windsurf are in between.
Auto-loading. Most tools load their file automatically on every session. Aider is the exception — CONVENTIONS.md must be loaded with --read CONVENTIONS.md or by adding read: CONVENTIONS.md to .aider.conf.yml.
What's the same
The actual content. The conventions a Next.js project follows are the same conventions whether your AI is Cursor or Claude or Copilot. The behavioral rules ("ask before installing dependencies") apply to every tool. The patterns to follow and avoid are stack-specific, not tool-specific.
This means you can write your rules once, in a format-neutral way, and emit per-tool dialects on demand. That's exactly what the generator and converter on this site do.
Which one wins?
None of them, in any meaningful sense. They all read more or less the same content, just at different paths and with cosmetic differences in format.
The real questions are:
- Do you need globs? Only Cursor
.mdcgives you them. If you genuinely need different rules for different file types, that's your tool. - Are you in a monorepo? Claude's nested CLAUDE.md merging and Cursor's globs are both useful. Single-file tools (Copilot, Aider) require workarounds.
- What's your team using? If everyone is on Cursor, write
.mdcfiles. If your team is split across tools, commit all the formats — every AI tool reads its own file and ignores the rest. The "Download all 9 formats" button on this site's converter produces them all in one ZIP.
How to keep them in sync
Pick one canonical version. Edit only that. Regenerate the others on every change.
This site's converter is built for exactly this workflow: paste your canonical file in, pick "All 9 formats," download. Commit all of them. Update them together.
Or generate from scratch via the wizard — same input produces the same output every time, so you can re-export deterministically when conventions change.
The format wars are a red herring
The interesting decisions in writing AI rules aren't about format. They're about content: how specific to be, how opinionated, what to include, what to leave out. That's a separate guide.