rule-porter
nedcodes-ok · nedcodes-ok/rule-porter
Chuyển đổi các quy tắc AI IDE giữa các định dạng khác nhau như Cursor, Claude Code, GitHub Copilot, Windsurf và AGENTS.md, cho phép di chuyển cấu hình agent một cách liền mạch.
Convert AI IDE rules between Cursor, Windsurf, CLAUDE.md, AGENTS.md, and Copilot. Bidirectional. Zero dependencies.
Xem trước
Bạn có thể làm gì với nó
- Di chuyển các quy tắc Cursor hiện có sang định dạng `CLAUDE.md` của Claude Code khi chuyển đổi môi trường mã hóa AI.
- Chuyển đổi các quy tắc từ tệp `AGENTS.md` thành các tệp `.mdc` riêng lẻ cho Cursor.
- Chuẩn hóa hướng dẫn AI agent trên nhiều công cụ bằng cách chuyển đổi một bộ quy tắc chính sang các định dạng đích khác nhau.
Kiểm tra an toàn
Không thấy dấu hiệu rủi ro trong các file đã quét.
Quét tự động các file trong repo. Luôn xem lại code trước khi chạy.
Trích từ README
rule-porter
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-md
The problem
Your 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.
What you get
$ 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
Supported formats
| 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 |
Common conversions
# 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
What converts cleanly
- Rule names, descriptions, and body content
- Global vs conditional rule separation
alwaysApplyrules become top-level sections- Globs are restored when converting back to Cursor
What gets flagged
- 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.
Options
--to <format> Target format (required)
--from <format> Source format (default: auto-detect)
--out Output file path
--dry-run Preview without writing
Next step: check your converted rules
After converting, make sure they actually work:
npx cursor-doctor scan # Health check with letter grade
npx cursor-doctor lint # Detailed rule-by-rule linting
cursor-doctor catches broken frontmatter, conflicting instructions, and 100+ other issues. Also: rule-gen generates rules from your codebase using AI. npx rulegen-ai
License
MIT