Switch AI editors without rewriting all your rules.
Convert Cursor rules to Claude Code, GitHub Copilot, Windsurf, or AGENTS.md. And back. Bidirectional. Zero dependencies.
npx rule-porter --to agents-mdYour rules are locked into one tool's format. Cursor uses .mdc files with YAML frontmatter and glob patterns. Claude Code uses CLAUDE.md. Copilot uses .github/copilot-instructions.md. None of them understand each other.
$ npx rule-porter --to agents-md
Converting 12 Cursor rules → AGENTS.md
✓ 9 rules converted cleanly
⚠ 3 rules had glob patterns (preserved as comments)
Written: AGENTS.md
Converting back works too:
npx rule-porter --from agents-md --to cursor
# → 12 individual .mdc files with frontmatter and globs restored| Format | Read | Write | File |
|---|---|---|---|
| Cursor | ✅ | ✅ | .cursor/rules/*.mdc |
| Cursor (legacy) | ✅ | — | .cursorrules |
| AGENTS.md | ✅ | ✅ | AGENTS.md |
| Claude Code | ✅ | ✅ | CLAUDE.md |
| GitHub Copilot | ✅ | ✅ | .github/copilot-instructions.md |
| Windsurf | ✅ | ✅ | .windsurfrules |
# Cursor → other formats
npx rule-porter --to agents-md
npx rule-porter --to claude-md
npx rule-porter --to copilot
npx rule-porter --to windsurf
# Other formats → Cursor
npx rule-porter --from agents-md --to cursor
npx rule-porter --from claude-md --to cursor
# Between any two formats
npx rule-porter --from agents-md --to claude-md
# Migrate legacy .cursorrules to .mdc
npx rule-porter --from cursorrules-legacy --to cursor
# Preview without writing
npx rule-porter --to agents-md --dry-run- Rule names, descriptions, and body content
- Global vs conditional rule separation
alwaysApplyrules become top-level sections- Globs are restored when converting back to Cursor
- Glob patterns become comments in flat formats (markdown doesn't support file scoping)
- Manual-attach rules (no globs, not alwaysApply) get flagged for review
- No silent data loss. Every non-1:1 conversion produces a warning.
--to <format> Target format (required)
--from <format> Source format (default: auto-detect)
--out <path> Output file path
--dry-run Preview without writing
After converting, make sure they actually work:
npx cursor-doctor scan # Health check with letter grade
npx cursor-doctor lint # Detailed rule-by-rule lintingcursor-doctor catches broken frontmatter, conflicting instructions, and 100+ other issues. Also: rule-gen generates rules from your codebase using AI. npx rulegen-ai
MIT