Claude Skills Bridge
Treat Claude Code skills as first-class Cursor skills. Discover them on disk, read the matching SKILL.md, and follow it immediately.
Skill locations (search in this order)
- Project skills —
<workspace>/.claude/skills/*/SKILL.md - Personal skills —
~/.claude/skills/*/SKILL.md - Installed Claude plugins —
~/.claude/plugins/cache/*/*/skills/*/SKILL.md
(and any newer plugin skill paths under~/.claude/plugins/)
If a skill name exists in more than one place, prefer project over personal over plugin.
When this applies
- User runs a Claude-style command:
/skill-name … - User names a skill: "use my-deploy-skill", "run code-review on …"
- Task matches a Claude skill description already on disk
- User asks what Claude skills are available
If Cursor already lists a matching path under available_skills, read that path. Otherwise discover via the locations above.
Workflow
1. Discover (only if needed)
List skill dirs / SKILL.md files from the locations above. For a quick inventory:
# Project
find "$WORKSPACE/.claude/skills" -name 'SKILL.md' 2>/dev/null
# Personal
find "$HOME/.claude/skills" -name 'SKILL.md' 2>/dev/null
# Plugins
find "$HOME/.claude/plugins" -path '*/skills/*/SKILL.md' 2>/dev/null
Read only the YAML name + description (and optional argument-hint) from each SKILL.md when listing. Do not load full skill bodies until one is selected.
2. Select
Match by:
- Slash command / folder name (
my-skill.local→my-skill) - Frontmatter
name - Description trigger phrases
If multiple skills match and the intent is ambiguous, ask which one. If none match, say so and offer the inventory.
3. Execute
- Read the full
SKILL.mdwith the Read tool before doing the task. Do not rely on memory or a partial summary. - Follow it as the source of truth — same steps, tools, output format, and constraints.
- Resolve
${CLAUDE_SKILL_DIR}to the directory that contains that skill'sSKILL.md(not the repo root). Example: for~/.claude/plugins/cache/example-tools/example/0.1.0/skills/example-skill/SKILL.md
→CLAUDE_SKILL_DIR= thatexample-skilldirectory. Rewrite script paths accordingly before running them. - Load linked files the skill references (e.g.
reference.md, scripts) only as needed. - Adapt tools, not the workflow — if the skill names Claude-only tooling, use the closest Cursor equivalent (Shell, MCP, browser tools, etc.) while keeping the same procedure and success criteria.
- Mention which Claude skill you are following (name + path) once at the start of the work.
4. List-only requests
When the user asks what Claude skills exist, return a compact table:
| Name | Source | Description (short) | Path |
Sources: project | personal | plugin:<plugin-id>.
Conventions
- Folder suffixes like
.localare still valid skills; match them by base name or full folder name. - Claude plugin skills may declare
allowed-toolswith Bash/node scripts — run those scripts via Shell after resolvingCLAUDE_SKILL_DIR. - Do not copy Claude skills into
~/.cursor/skills/unless the user asks; bridge by reading in place. - Do not create duplicate project docs about this bridge.
Examples
User: /my-skill some-arg
→ Read <workspace>/.claude/skills/my-skill/SKILL.md (or my-skill.local) and follow it.
User: "Use the example-skill from my Claude plugin"
→ Read that skill from ~/.claude/plugins/.../skills/example-skill/SKILL.md and follow it.
User: "What Claude skills do I have?"
→ Inventory project + personal + plugin skills; do not execute any.