Files
everything-claude-code/.cursor/MIGRATION.md
Affaan Mustafa 261332dc50 feat: add Cursor IDE support with pre-translated configs
Add complete .cursor/ directory with rules, agents, skills, commands,
and MCP config adapted for Cursor's format. This makes ecc-universal
a truly cross-IDE package supporting Claude Code, Cursor, and OpenCode.

- 27 rule files with YAML frontmatter (description, globs, alwaysApply)
- 13 agent files with full model IDs and readonly flags
- 30 skill directories (identical Agent Skills standard, no translation)
- 31 command files (5 multi-* stubbed for missing codeagent-wrapper)
- MCP config with Cursor env interpolation syntax
- README.md and MIGRATION.md documentation
- install.sh --target cursor flag for project-scoped installation
- package.json updated with .cursor/ in files and cursor keywords
2026-02-11 02:31:52 -08:00

69 lines
3.7 KiB
Markdown

# Migrating from Claude Code to Cursor
This guide maps Claude Code concepts to their Cursor equivalents.
## Concept Mapping
| Claude Code | Cursor | Notes |
|-------------|--------|-------|
| `~/.claude/rules/` | `.cursor/rules/` | Project-scoped; YAML frontmatter with `description`, `globs`, `alwaysApply` |
| `~/.claude/agents/` | `.cursor/agents/` | `model: opus``model: anthropic/claude-opus-4-5`; `tools``readonly` |
| `~/.claude/skills/` | `.cursor/skills/` | Identical Agent Skills standard (SKILL.md) |
| `~/.claude/commands/` | `.cursor/commands/` | Compatible markdown format |
| `~/.claude.json` mcpServers | `.cursor/mcp.json` | Uses `${env:VAR_NAME}` interpolation syntax |
| Hooks (PreToolUse/PostToolUse/Stop) | No equivalent | Use linters, formatters, pre-commit hooks, CI/CD |
| Contexts | Rules with `alwaysApply: false` | Manually activated via @ mentions |
| `model: opus` | `model: anthropic/claude-opus-4-5` | Full model ID required |
| `model: sonnet` | `model: anthropic/claude-sonnet-4-5` | Full model ID required |
| `tools: ["Read", "Grep"]` | `readonly: true` | Read-only tools mapped to readonly flag |
| `tools: ["Read", "Write", "Bash"]` | `readonly: false` | Write tools mapped to full access |
## Feature Parity Matrix
| Feature | Claude Code | Cursor | Status |
|---------|-------------|--------|--------|
| Rules | Global + Project | Project only | Available |
| Agents | Full tool control | readonly flag | Available |
| Skills | Agent Skills standard | Agent Skills standard | Identical |
| Commands | Slash commands | Slash commands | Available |
| MCP Servers | Native support | Native support | Available |
| Hooks | PreToolUse/PostToolUse/Stop | Not available | Use alternatives |
| Contexts | Context files | Rules (alwaysApply: false) | Partial |
| Multi-model orchestration | codeagent-wrapper | Not available | Not available |
| Global config | ~/.claude/ | Project .cursor/ only | Different scope |
## Key Differences
### Rules
- **Claude Code**: Rules stored globally in `~/.claude/rules/` with subdirectories
- **Cursor**: Rules stored in project `.cursor/rules/` with YAML frontmatter for metadata
- **Translation**: Subdirectory paths flattened with hyphens (e.g., `common/security.md``common-security.md`)
### Agents
- **Claude Code**: Specify individual tools via `tools: [...]` array
- **Cursor**: Binary `readonly: true/false` flag
- **Translation**: Read-only tools (Read, Grep, Glob) → `readonly: true`; any write tool → `readonly: false`
### Model IDs
- **Claude Code**: Short names (`opus`, `sonnet`, `haiku`)
- **Cursor**: Full Anthropic model IDs (`anthropic/claude-opus-4-5`, `anthropic/claude-sonnet-4-5`)
### Hooks → Alternatives
Claude Code hooks have no direct equivalent in Cursor. Alternatives:
- **Formatting on save**: Configure Cursor's format-on-save with Prettier, Black, gofmt
- **Linting**: Use Cursor's built-in linter integration (ESLint, Ruff, golangci-lint)
- **Pre-commit**: Use `husky` or `pre-commit` for git hooks
- **CI/CD**: Move stop-hook checks to GitHub Actions or similar
### MCP Configuration
- **Claude Code**: Environment values use placeholder strings (e.g., `"YOUR_GITHUB_PAT_HERE"`)
- **Cursor**: Environment values use interpolation syntax (e.g., `"${env:GITHUB_PERSONAL_ACCESS_TOKEN}"`)
## Tips for Migrating
1. **Start with rules**: Install common + your language-specific rules first
2. **Add agents gradually**: Start with planner and code-reviewer, add others as needed
3. **Skills are plug-and-play**: The skills/ directory works identically in both tools
4. **Set up MCP**: Copy mcp.json and configure your environment variables
5. **Replace hooks with CI**: Set up pre-commit hooks and CI checks for what you lose from Claude Code hooks