Cursor rules vs Claude skills: what's the difference?

Both give an AI coding agent standing instructions, but they solve different problems. Cursor rules shape how the agent behaves in a codebase (style, conventions, constraints). Agent Skills (SKILL.md files, which started with Claude and are now an open standard) package a specific job that the agent loads only when needed. And Cursor now supports skills too, so for most teams it's "both," not "either."

Quick comparison

Cursor rules Agent Skills (SKILL.md)
File .mdc files in .cursor/rules/ (or a plain AGENTS.md) A folder containing SKILL.md, plus optional scripts/, references/, assets/
Works in Cursor Claude Code, Cursor, and other tools that support the Agent Skills standard
How it loads Always, by file glob, by agent judgment from the description, or when @-mentioned Description is always visible. The full body loads when relevant or when invoked with /skill-name
Best for Coding conventions, architecture constraints, "always do X in this repo" Repeatable procedures: reviews, triage, research, writing, deploy steps
Can bundle scripts No Yes

How Cursor rules work

Project rules are .mdc files in .cursor/rules, with frontmatter that controls when they apply:

  • Always Apply (alwaysApply: true): included in every chat
  • Apply Intelligently: the agent decides based on the rule's description
  • Apply to Specific Files: included when files match globs
  • Apply Manually: only when you @-mention the rule

Cursor also has User Rules (in settings), Team Rules (set by admins), and supports AGENTS.md as a plain-markdown alternative. Cursor's docs suggest keeping rules under 500 lines.

How Agent Skills work

A skill is a folder with a SKILL.md file. The frontmatter has a name and a description of what it does and when to use it. The body holds the instructions. Claude Code reads skills from ~/.claude/skills/ and .claude/skills/. Cursor reads .cursor/skills/, .agents/skills/, and also .claude/skills/ for compatibility. Read what a SKILL.md file is for the full format.

Because only the descriptions stay in context until a skill is used, you can install a lot of skills without bloating every prompt.

When to use which

Use a Cursor rule when the instruction should shape all work in a scope. "Use our logger, never console.log." "Components live in packages/ui." "Prefer server actions over API routes."

Use a skill when it's a task with steps you'd otherwise re-explain. Reviewing a diff, turning a bug report into a ticket, explaining an error, writing a follow-up email from meeting notes.

Use both: rules for the house style, skills for the jobs. Cursor even ships a /migrate-to-skills command that converts "Apply Intelligently" rules and slash commands into skills, since those are essentially skills already.

Portability is the deciding factor

If your team uses more than one tool (say, Cursor in the editor and Claude Code in the terminal), skills are the portable choice. One SKILL.md folder works in both. A .mdc rule only works in Cursor.

Free skills that work in both

These free Skillvize skills are plain SKILL.md folders, so drop them in .claude/skills/ or .cursor/skills/:

Or clone them all from the free-skills repo. More developer picks are in free Claude Code skills for developers.

Browse all skills →