Copilot instructions vs GEMINI.md vs .cursorrules
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 | Copilot instructions 2026-08-01 | GEMINI.md 2026-08-01 | .cursorrules 2026-08-02 |
|---|---|---|---|
| Asserted — what the docs say it can express | |||
| File | .github/copilot-instructions.md | GEMINI.md | .cursorrules |
| Status | vendor | vendor | deprecated |
| Cross-tool | No | No | No |
| Tools that read it |
|
|
|
| Frontmatter | Yes | No | No |
| Glob targeting | Yes | No | No |
| Imports other files | No | Yes | No |
| Nested / per-directory | No | Yes | No |
| Multiple files | Yes | Yes | No |
| User-level scope | No | Yes | No |
| When it applies | copilot-instructions.md is always in scope. Additional .github/instructions/*.instructions.md files load when their applyTo glob matches the open file. | Hierarchical memory: a global ~/.gemini/GEMINI.md, then the project file, then nested files, concatenated from broadest to narrowest. | Always in scope, single file at the repo root. |
| Size limits | None | None | None |
| Measured — counted from real repositories on 2026-08-04 | |||
| Repositories carrying it | 126 | 33 | 27 |
| Share of indexed repos | 18.1% | 4.7% | 3.9% |
| Files indexed | 309 | 46 | 308 |
| Median length (words) | 417 | 257 | 366 |
| 90th percentile length | 1,299 | 1,704 | 1,104 |
| Files naming commands | 41.4% | 52.2% | 13.6% |
| Files containing code | 48.2% | 45.6% | 25.0% |
| Median quality score | 60 | 60 | 41 |
| Median repository stars | 18,123 | 11,320 | 26 |
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-04.
.cursorrules + GEMINI.md
2026-08-044
repositories carry both. That is 14.8% of everything with .cursorrules, and 12.1% of everything with GEMINI.md.
.cursorrules + Copilot instructions
2026-08-045
repositories carry both. That is 18.5% of everything with .cursorrules, and 4.0% of everything with Copilot instructions.
Copilot instructions + GEMINI.md
2026-08-0414
repositories carry both. That is 11.1% of everything with Copilot instructions, and 42.4% of everything with GEMINI.md.
What each one is for
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
GEMINI.md
2026-08-01Gemini CLI's memory file, structurally close to CLAUDE.md — @imports and a user-scope layer — which is why repos that carry both usually carry near-identical text in each.
Strengths
- @path imports and a global user file, same composition model as CLAUDE.md
- Explicit hierarchy from global to local
Weaknesses
- Google-only
- No glob targeting
.cursorrules
2026-08-02Cursor's original single-file format, superseded by .cursor/rules/*.mdc. Tracked here precisely because it is dead: how much of the ecosystem is still shipping a deprecated file is a measurable answer, and a large share of the "best cursor rules" pages on the web still teach this format.
Strengths
- One file, nothing to configure
Weaknesses
- Deprecated — do not start here
- No targeting, no composition, no metadata
