.cursorrules and .cursor/rules/*.mdc rules become CLAUDE.md; MCP servers from .cursor/mcp.json become settings.json entries.Cursor keeps your setup in .cursorrules, .cursor/rules/*.mdc, and .cursor/mcp.json. Claude Code reads a CLAUDE.md plus settings.json. The rules and MCP config carry over — but the formats differ, so a straight copy loses the structure.
.mdc frontmatter for you, scrubs MCP secrets, and leaves a rollback snapshot.Cursor's .cursor/rules/*.mdc files carry frontmatter (description, globs, alwaysApply) that Claude Code's CLAUDE.md doesn't use, and Cursor's MCP servers live in .cursor/mcp.json while Claude Code expects them in settings.json. Copying the text across keeps the words and drops the wiring.
.cursorrules and each .cursor/rules/*.mdc body into CLAUDE.md, dropping or translating the Cursor frontmatter..cursor/mcp.json as a Claude Code settings.json entry.It's free and it works. The cost is the per-file translation and the risk of quietly dropping a rule or an MCP server along the way.
Install the CLI, then point it at your Cursor repo. Use --policy merge so it keeps your existing Claude Code files and only writes new ones:
curl -fsSL https://bringyour.ai/install.sh | sh bringyour migrate --from cursor --to claude-code --src /path/to/your/repo --policy merge
It reads the repo's .cursor rules and MCP config, writes CLAUDE.md and settings.json into ~/.claude, and — when it changes an existing setup — records a rollback snapshot under .portable/rollback/ first. Pass --src explicitly: Cursor rules are per-repo, so the command needs to know which repo to read. Then confirm the result:
bringyour verify --root ~/.claude
verify reads the manifest written on import and reports what passed, what failed, and any target-tool limitations. migrate and verify are covered by the one-time lifetime license. (preview is free but currently only supports Claude Code ↔ Codex, so for a Cursor source the free path is the manual steps above.)
.cursorrules and .cursor/rules/*.mdc rules become CLAUDE.md; MCP servers from .cursor/mcp.json become settings.json entries.<REDACTED> on import — you re-enter them in settings.json before use. Cross-tool hook bodies are dropped with an advisory rather than silently kept.The secret-scrubbing is deliberate: your keys never travel inside a bundle. Everything runs locally in your own CLI — the migration reads and writes files on your machine and sends nothing to a server.