How skills work in AI editors

A skill is a folder with a SKILL.md file (YAML frontmatter with a name and description, then instructions) plus optional scripts and references. Claude Code, Cursor and Windsurf all support this open Agent Skills format. The agent sees each skill's name and description, loads the full instructions when a task matches, and you can also call a skill by name.

What differs is where each tool looks. That's the only thing you need to get right:

ToolGlobal foldersProject foldersReads Claude Code skills?
Claude Code~/.claude/skills/.claude/skills/Yes (native)
Cursor~/.cursor/skills/, ~/.agents/skills/.cursor/skills/, .agents/skills/Yes: also loads ~/.claude/skills/ and .claude/skills/ for compatibility
Windsurf (Devin Desktop)~/.codeium/windsurf/skills/, ~/.config/devin/skills/, ~/.agents/skills/.devin/skills/, .windsurf/skills/, .agents/skills/Only if Claude Code config reading is enabled
Sources: Claude Code skills docs, Cursor skills docs, Devin Desktop (Windsurf) Cascade skills docs, checked 13 October 2026. Windsurf's documentation now lives under the Devin Desktop name.

Install skills for all three

The skills CLI (npx skills) installs a skill into the right folder for each agent you pick. With -g it installs for your user instead of the current project.

Terminal
# One skill, globally, for Claude Code, Cursor and Windsurf npx skills add anthropics/skills --skill frontend-design -g -a claude-code -a cursor -a windsurf # Or let the CLI ask which agents to target npx skills add anthropics/skills --skill webapp-testing -g

Already have skills in ~/.claude/skills/? Cursor picks them up as they are. For Windsurf, either enable Claude Code config reading or reinstall them with -a windsurf. The CLI symlinks by default, so there's one copy on disk and updates reach every agent.

Use skills in Cursor

Cursor discovers skills at startup. In Agent chat the agent uses a skill when it's relevant to your request; to call one yourself, type / and search for the skill name. A skill invoked this way applies to that message.

Cursor Agent chat
/frontend-design build a settings page with a dark mode toggle

To keep a skill active for a whole session, Cursor lets you use it as a Custom Mode. If a skill should only run when you ask, set disable-model-invocation: true in its frontmatter.

Use skills in Windsurf (Devin Desktop)

Cascade invokes a skill automatically when your request matches its description. To activate one explicitly, type @ followed by the skill name in the Cascade input:

Cascade input
@frontend-design redesign this component to match our design system

Slash commands in Windsurf belong to Workflows, not skills, so /skill-name won't find a skill there.

Skills that work well in editors

Skills that act on the open file and produce code fit editors best. A few real ones to start with:

Browse more in the skills directory.

Troubleshooting

A skill doesn't show up

Terminal — verify
# Global skills, all agents npx skills list -g # Look at the folders directly ls ~/.claude/skills/ ~/.cursor/skills/ ~/.codeium/windsurf/skills/

The skill loads but isn't followed

FAQ

Does Cursor read my Claude Code skills?

Yes. Cursor loads skills from .cursor/skills/ and .agents/skills/, and for compatibility also from Claude's folders: .claude/skills/ in the project and ~/.claude/skills/ globally.

Does Windsurf read ~/.claude/skills?

Only if Claude Code config reading is enabled. Otherwise Windsurf (now Devin Desktop) reads ~/.codeium/windsurf/skills/, ~/.config/devin/skills/ and ~/.agents/skills/, plus .windsurf/skills/, .devin/skills/ and .agents/skills/ in the workspace.

How do I invoke a skill in each editor?

Both editors use a skill automatically when your request matches its description. To call one explicitly: in Cursor type / in Agent chat and pick it; in Windsurf type @skill-name in Cascade. In Claude Code it's /skill-name.

How do I update skills used in editors?

Run npx skills update for everything, or npx skills update skill-name for one. Add -g to update only global skills.