If you've built up a collection of Cursor rules, you don't have to start from scratch to use Claude Code or Codex CLI. Converting Cursor rules to SKILL.md skills is straightforward — the instruction content is usually identical, only the metadata format changes.
> Quick Answer: To migrate Cursor rules to SKILL.md, copy the rule file to `~/.claude/skills/rule-name/SKILL.md` and convert the frontmatter, replacing `globs` and `alwaysApply` with a descriptive `name` and `description` that Claude can match contextually.
What changes
| Cursor Rule | SKILL.md Skill |
|---|---|
| `.cursor/rules/rule-name.md` | `~/.claude/skills/skill-name/SKILL.md` |
| `globs: ["*.test.ts"]` | `description: "Triggers on testing tasks"` |
| `alwaysApply: true` | Managed by description matching |
| Flat file | Folder with SKILL.md inside |
Step-by-step migration
1. Find your Cursor rules
```bash
ls .cursor/rules/
```
Each `.md` file is a rule to migrate.
2. Create the SKILL.md folder
For each rule, create a skill folder:
```bash
mkdir -p ~/.claude/skills/rule-name/
```
3. Convert the frontmatter
Cursor rule:
```markdown
---
description: Enforce React component standards
globs: ["src/components/**/*.tsx"]
alwaysApply: false
---
```
SKILL.md equivalent:
```markdown
---
name: react-standards
description: Enforces React component standards when creating or reviewing React components.
---
```
The key change: replace glob patterns with a natural language description. Instead of `globs: ["*.test.ts"]`, write `description: "Applies when writing or reviewing tests."` Claude matches skills based on the description, not file patterns.
4. Copy the instruction body
The markdown body of your Cursor rule is almost always identical to what goes in the SKILL.md. Copy it directly:
```markdown
---
name: react-standards
description: Enforces React component standards when creating or reviewing React components.
---
Use functional components with TypeScript. Always define props
as interfaces. Export as named exports. Co-locate styles, tests,
and stories with the component.
```
5. Handle `alwaysApply` rules
Cursor rules with `alwaysApply: true` apply to every prompt regardless of context. In SKILL.md, you achieve this with a broad description:
```yaml
description: Applies to all code generation and review tasks. General coding standards.
```
A very broad description means Claude will match it to most coding tasks, similar to `alwaysApply`.
6. Test
Start a new Claude Code session and test each converted skill. Ask Claude:
> "What skills do you have access to?"
Then try a task the skill should cover and verify the output matches your expectations.
Migrating in bulk
If you have many Cursor rules, a quick shell script:
```bash
for rule in .cursor/rules/*.md; do
name=$(basename "$rule" .md)
mkdir -p ~/.claude/skills/$name/
cp "$rule" ~/.claude/skills/$name/SKILL.md
echo "Migrated: $name"
done
```
You'll still need to update the frontmatter on each file (replace `globs` and `alwaysApply` with `name` and `description`), but this gets the files in the right place.
Keep both
You don't have to choose. If you use both Cursor and Claude Code, keep the Cursor rules in `.cursor/rules/` and the SKILL.md skills in `~/.claude/skills/`. Maintain them separately or use the conversion approach above to keep them in sync.
---
*Browse cross-agent skills at Agensi.*






