mirror of
https://github.com/affaan-m/everything-claude-code.git
synced 2026-03-30 13:43:26 +08:00
69 lines
3.7 KiB
Markdown
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
|