Convert Cursor rules to AGENTS.md
AGENTS.md is plain Markdown with no frontmatter, stewarded by the Agentic AI Foundation under the Linux Foundation. Its site lists Codex, Jules, Copilot's coding agent, Devin, Zed, Cursor and many others as supporting it, which makes it a good shared home for project rules.
Because AGENTS.md has no fields for globs or descriptions, scoped Cursor rules cannot be carried over one-to-one. The converter merges always-on rules, adds a short scope note to the rest (or leaves them out), and lists every decision in the report.
Input
Everything runs in your browser. Files are never uploaded.
Output
Converted files appear here. Conversion report
How each rule type converts
| In Cursor rules (.mdc) | Becomes | Result |
|---|---|---|
alwaysApply: true | Section in AGENTS.md | Kept |
globs: some/dir/** | Nested some/dir/AGENTS.md | Kept |
Other globs | Section with an “applies to files matching …” note | Adapted |
description only | Section with an “apply when relevant” note | Adapted |
| Manual rules | Section with an “only when asked” note, or dropped | Adapted |
| Frontmatter | Removed (AGENTS.md has none) | Dropped |
Steps
- Drop your
.cursor/rulesfiles or.cursorrulesinto the converter. - Choose whether scoped rules should be inlined with notes or left out.
- Optionally enable bridge files to also get a CLAUDE.md and GEMINI.md that just import AGENTS.md.
- Download, place AGENTS.md at the repo root, and delete or keep the Cursor files (see below).
Worked example
This output is generated by the same converter you use above, from an illustrative rule set.
Input
.cursor/rules/project.mdc
---
description:
globs:
alwaysApply: true
---
# Project
- Next.js App Router with TypeScript in strict mode.
- Use pnpm. Run `pnpm test` and `pnpm lint` before committing.
- Never commit secrets; read config from environment variables. .cursor/rules/react-components.mdc
---
description: React component conventions
globs: src/components/**/*.tsx
alwaysApply: false
---
- Function components only; no default exports.
- Co-locate tests as `Component.test.tsx`. .cursor/rules/database.mdc
---
description: Read before writing or changing database migrations
globs:
alwaysApply: false
---
- Never edit a migration that has already been applied.
- Every new table needs a primary key and created_at. .cursor/rules/release.mdc
---
description:
globs:
alwaysApply: false
---
- Bump the version in package.json and update CHANGELOG.md. Output
AGENTS.md
## Project
- Next.js App Router with TypeScript in strict mode.
- Use pnpm. Run `pnpm test` and `pnpm lint` before committing.
- Never commit secrets; read config from environment variables.
## React Components
_Applies when working on files matching `src/components/**/*.tsx`._
- Function components only; no default exports.
- Co-locate tests as `Component.test.tsx`.
## Database
_Apply when relevant: Read before writing or changing database migrations_
- Never edit a migration that has already been applied.
- Every new table needs a primary key and created_at.
## Release
_Apply only when explicitly asked to._
- Bump the version in package.json and update CHANGELOG.md. Report for this example
- kept Project: Merged into AGENTS.md (always on).
- adapted React Components: AGENTS.md has no way to mark a rule as file-scoped, so it was inlined with a note: Applies when working on files matching `src/components/**/*.tsx`.
- adapted Database: AGENTS.md has no way to mark a rule as agent-decided, so it was inlined with a note: Apply when relevant: Read before writing or changing database migrations
- adapted Release: AGENTS.md has no way to mark a rule as manual, so it was inlined with a note: Apply only when explicitly asked to.
Things to watch for
- Cursor reads both AGENTS.md and
.cursor/rules. You don't have to choose: move always-on rules into AGENTS.md and keep genuinely file-specific rules as.mdcfiles, so you don't lose scoping in Cursor. - If you keep both, remove the duplicated always-on rules from
.cursor/rulesafterwards, or Cursor will see them twice. - Shorter is better. Published AGENTS.md guides consistently recommend a focused file with build and test commands near the top, not long lists of generic advice.
- Claude Code reads AGENTS.md directly only when no CLAUDE.md exists. Bridge files avoid surprises for teammates who use it.
FAQ
Does Cursor read AGENTS.md?
Yes. Cursor's rules documentation describes AGENTS.md in the project root as a simpler alternative to .cursor/rules, and nested AGENTS.md files apply to their directories.
Should I delete .cursorrules after converting?
Cursor's docs call .cursorrules legacy. Once AGENTS.md or .cursor/rules has the same content, removing it avoids duplicate or conflicting instructions.
What happens to rules that only apply to some files?
If the glob is a whole directory (like packages/api/**), the rule becomes a nested AGENTS.md in that directory. Otherwise it is kept as a section with a note naming the files it applies to, or left out if you choose.
Sources
Related conversions
- Cursor rules → CLAUDE.md Move from Cursor to Claude Code and keep file-scoped rules scoped.
- CLAUDE.md ↔ AGENTS.md Share one instructions file between Claude Code and other agents.
- Cursor rules → Copilot copilot-instructions.md plus path-specific applyTo files.
- Which file does each tool read? Compatibility table with sources.