Install one skill in every agent you use

Every coding agent keeps skills in its own folder. Here's how to install one with the skillmd CLI, target specific agents, or skip the CLI entirely.

Contents

If you run more than one coding agent, you already know the annoyance: each one wants skills in its own directory, with its own naming rules, and there is no shared install path between them. Copying a SKILL.md file by hand works until you need to do it five times for five agents, and then it doesn’t.

SkillMD fixes this with one CLI that knows where every supported agent looks for skills. Install once, target the agents you actually use, and every skill you add has already passed a safety review before it reaches you.

The problem: every agent has its own skills folder

There’s no standard location for skills across agents. Claude Code looks in .claude/skills. Cursor looks in .cursor/skills. Codex, Windsurf, and OpenCode each have their own directory too:

  • claude-code -> .claude/skills
  • cursor -> .cursor/skills
  • codex -> .codex/skills
  • windsurf -> .windsurf/skills
  • opencode -> .opencode/skills

A skill installs as <directory>/<skill-name>/SKILL.md. If you use two or three agents on the same project, you’re either duplicating files manually or picking one agent and leaving the others without your skills. Neither is a good option, so SkillMD handles the mapping for you.

Install the CLI

npm i -g skillmds

The package is skillmds, but the command you’ll actually type is skillmd. The same package also ships an MCP server, which we’ll get to below.

Find a skill, then install it

Search first if you don’t already know the exact name:

skillmd search "pdf extraction" --verified

The --verified flag limits results to skills that passed review, which is worth keeping on by default. Once you know what you want, install it with <owner>/<name>:

skillmd add anthropic/docx

skillmd add detects which agents you have set up in the current project and installs into each of their directories. If it can’t detect any, it defaults to Claude Code. Every install is linted before anything is written to disk, so a broken or malformed skill won’t silently land in your project.

Targeting specific agents

Auto-detection is convenient, but sometimes you want a skill in exactly the agents you name, not whatever the CLI happens to find. Use -a/--agent with a space-separated list of agent ids:

skillmd add anthropic/docx -a claude-code cursor

This installs into .claude/skills and .cursor/skills only, regardless of what else is detected in the project. Use this when you’re setting up a new machine, onboarding a teammate onto a specific agent, or you just don’t want a skill cluttering an agent you’re not using it in.

Project scope vs global scope

By default, skillmd add writes into the current project. Add -g/--global to install into your home directory instead, making the skill available across every project for that agent:

skillmd add anthropic/docx -g

Combine it with -a to go global for one agent only:

skillmd add anthropic/docx -g -a claude-code

Project scope is right for skills tied to a specific codebase or client. Global scope is right for skills you reach for constantly, like a formatting or documentation skill you want in every repo you touch.

Installing without the CLI

Sometimes you don’t want to install a package, or you’re scripting an environment where a global npm install isn’t practical. Every skill’s raw SKILL.md is fetchable directly:

curl -s https://api.skillmd.com/api/skills/anthropic/docx/raw -o SKILL.md

The endpoint is served as text/markdown, so you can pipe it straight into a file. Save it into your agent’s skills directory under the skill’s name:

mkdir -p .claude/skills/docx
curl -s https://api.skillmd.com/api/skills/anthropic/docx/raw -o .claude/skills/docx/SKILL.md

This is the same file the CLI would have written, just without the detection, linting, or multi-agent targeting. Useful for one-off installs or CI pipelines where you already know exactly which agent and directory you’re targeting.

Installing through MCP

If your agent talks MCP, you can skip a manual install step entirely and let the agent search and install skills on its own. Run the server with:

npx -y skillmds

No arguments, no flags. It starts an MCP server over stdio and exposes tools including skillmd_search, skillmd_get, and skillmd_install. Point any MCP-capable agent at it and it can look up a skill and install it in the same turn.

For Claude Code specifically, there’s a one-line add:

claude mcp add skillmd -- npx -y skillmds

After that, Claude Code can call skillmd_search and skillmd_install directly instead of you running commands in a separate terminal.

Keeping skills up to date

A few more commands round out day-to-day use:

skillmd list
skillmd update
skillmd remove docx

skillmd list shows what’s installed in the current project. skillmd update re-fetches any skill that has changed upstream since you installed it. skillmd remove takes a skill name and deletes it from wherever it was installed.

Next steps

Every skill listed on SkillMD passes a safety review before it’s publicly visible, so search results and skillmd add are both pulling from the same reviewed set. If you want the full command reference, agent id list, and MCP tool schemas, head to /docs.