The open agent skills ecosystem - Python CLI
Project description
skillsmd
Python CLI for using agent skills.
Supports OpenCode, Claude Code, Codex, Cursor, and 36 more.
It is a port of Vercel Skills to Python. Commands that search for skills do that on Vercel skills.sh.
Install a Skill
uvx skillsmd add vercel-labs/agent-skills
Source Formats
# GitHub shorthand (owner/repo)
uvx skillsmd add vercel-labs/agent-skills
# Full GitHub URL
uvx skillsmd add https://github.com/vercel-labs/agent-skills
# Direct path to a skill in a repo
uvx skillsmd add https://github.com/vercel-labs/agent-skills/tree/main/skills/web-design-guidelines
# GitLab URL
uvx skillsmd add https://gitlab.com/org/repo
# Any git URL
uvx skillsmd add git@github.com:vercel-labs/agent-skills.git
# Local path
uvx skillsmd add ./my-local-skills
Options
| Option | Description |
|---|---|
-g, --global |
Install to user directory instead of project |
-a, --agent <agents...> |
Target specific agents (e.g., claude-code, codex). See Supported Agents |
-s, --skill <skills...> |
Install specific skills by name (use '*' for all skills) |
-l, --list |
List available skills without installing |
-y, --yes |
Skip all confirmation prompts |
--all |
Install all skills to all agents without prompts |
Examples
# List skills in a repository
uvx skillsmd add vercel-labs/agent-skills --list
# Install specific skills
uvx skillsmd add vercel-labs/agent-skills --skill frontend-design --skill skill-creator
# Install a skill with spaces in the name (must be quoted)
uvx skillsmd add owner/repo --skill "Convex Best Practices"
# Install to specific agents
uvx skillsmd add vercel-labs/agent-skills -a claude-code -a opencode
# Non-interactive installation (CI/CD friendly)
uvx skillsmd add vercel-labs/agent-skills --skill frontend-design -g -a claude-code -y
# Install all skills from a repo to all agents
uvx skillsmd add vercel-labs/agent-skills --all
# Install all skills to specific agents
uvx skillsmd add vercel-labs/agent-skills --skill '*' -a claude-code
# Install specific skills to all agents
uvx skillsmd add vercel-labs/agent-skills --agent '*' --skill frontend-design
Installation Scope
| Scope | Flag | Location | Use Case |
|---|---|---|---|
| Project | (default) | ./<agent>/skills/ |
Committed with your project, shared with team |
| Global | -g |
~/<agent>/skills/ |
Available across all projects |
Installation Methods
When installing interactively, you can choose:
| Method | Description |
|---|---|
| Symlink (Recommended) | Creates symlinks from each agent to a canonical copy. Single source of truth, easy updates. |
| Copy | Creates independent copies for each agent. Use when symlinks aren't supported. |
Other Commands
| Command | Description |
|---|---|
uvx skillsmd list |
List installed skills (alias: ls) |
uvx skillsmd find [query] |
Search for skills interactively or by keyword |
uvx skillsmd remove [skills] |
Remove installed skills from agents |
uvx skillsmd check |
Check for available skill updates |
uvx skillsmd update |
Update all installed skills to latest versions |
uvx skillsmd init [name] |
Create a new SKILL.md template |
skills list
List all installed skills. Similar to npm ls.
# List all installed skills (project and global)
uvx skillsmd list
# List only global skills
uvx skillsmd ls -g
# Filter by specific agents
uvx skillsmd ls -a claude-code -a cursor
skills find
Search for skills interactively or by keyword.
# Interactive search (fzf-style)
uvx skillsmd find
# Search by keyword
uvx skillsmd find pdf
skills check / skills update
# Check if any installed skills have updates
uvx skillsmd check
# Update all skills to latest versions
uvx skillsmd update
skills init
# Create SKILL.md in current directory
uvx skillsmd init
# Create a new skill in a subdirectory
uvx skillsmd init my-skill
skills remove
Remove installed skills from agents.
# Remove interactively (select from installed skills)
uvx skillsmd remove
# Remove specific skill by name
uvx skillsmd remove web-design-guidelines
# Remove multiple skills
uvx skillsmd remove frontend-design web-design-guidelines
# Remove from global scope
uvx skillsmd remove --global web-design-guidelines
# Remove from specific agents only
uvx skillsmd remove --agent claude-code cursor my-skill
# Remove all installed skills without confirmation
uvx skillsmd remove --all
# Remove all skills from a specific agent
uvx skillsmd remove --skill '*' -a cursor
# Remove a specific skill from all agents
uvx skillsmd remove my-skill --agent '*'
# Use 'rm' alias
uvx skillsmd rm my-skill
| Option | Description |
|---|---|
-g, --global |
Remove from global scope (~/) instead of project |
-a, --agent |
Remove from specific agents (use '*' for all) |
-s, --skill |
Specify skills to remove (use '*' for all) |
-y, --yes |
Skip confirmation prompts |
--all |
Shorthand for --skill '*' --agent '*' -y |
What are Agent Skills?
Agent skills are reusable instruction sets for coding agents, defined in SKILL.md files with YAML frontmatter containing a name and description.
Skills let agents perform tasks like:
- Generating release notes from git history
- Creating PRs following your team's conventions
- Integrating with external tools (Linear, Notion, etc.)
Discover skills at skills.sh
Supported Agents
Skills can be installed to any of these agents:
| Agent | --agent |
Project Path | Global Path |
|---|---|---|---|
| Amp, Kimi Code CLI | amp, kimi-cli |
.agents/skills/ |
~/.config/agents/skills/ |
| Antigravity | antigravity |
.agent/skills/ |
~/.gemini/antigravity/global_skills/ |
| Augment | augment |
.augment/rules/ |
~/.augment/rules/ |
| Claude Code | claude-code |
.claude/skills/ |
~/.claude/skills/ |
| OpenClaw | openclaw |
skills/ |
~/.moltbot/skills/ |
| Cline | cline |
.cline/skills/ |
~/.cline/skills/ |
| CodeBuddy | codebuddy |
.codebuddy/skills/ |
~/.codebuddy/skills/ |
| Codex | codex |
.codex/skills/ |
~/.codex/skills/ |
| Command Code | command-code |
.commandcode/skills/ |
~/.commandcode/skills/ |
| Continue | continue |
.continue/skills/ |
~/.continue/skills/ |
| Crush | crush |
.crush/skills/ |
~/.config/crush/skills/ |
| Cursor | cursor |
.cursor/skills/ |
~/.cursor/skills/ |
| Droid | droid |
.factory/skills/ |
~/.factory/skills/ |
| Gemini CLI | gemini-cli |
.gemini/skills/ |
~/.gemini/skills/ |
| GitHub Copilot | github-copilot |
.github/skills/ |
~/.copilot/skills/ |
| Goose | goose |
.goose/skills/ |
~/.config/goose/skills/ |
| Junie | junie |
.junie/skills/ |
~/.junie/skills/ |
| iFlow CLI | iflow-cli |
.iflow/skills/ |
~/.iflow/skills/ |
| Kilo Code | kilo |
.kilocode/skills/ |
~/.kilocode/skills/ |
| Kiro CLI | kiro-cli |
.kiro/skills/ |
~/.kiro/skills/ |
| Kode | kode |
.kode/skills/ |
~/.kode/skills/ |
| MCPJam | mcpjam |
.mcpjam/skills/ |
~/.mcpjam/skills/ |
| Mistral Vibe | mistral-vibe |
.vibe/skills/ |
~/.vibe/skills/ |
| Mux | mux |
.mux/skills/ |
~/.mux/skills/ |
| OpenCode | opencode |
.opencode/skills/ |
~/.config/opencode/skills/ |
| OpenClaude IDE | openclaude |
.openclaude/skills/ |
~/.openclaude/skills/ |
| OpenHands | openhands |
.openhands/skills/ |
~/.openhands/skills/ |
| Pi | pi |
.pi/skills/ |
~/.pi/agent/skills/ |
| Qoder | qoder |
.qoder/skills/ |
~/.qoder/skills/ |
| Qwen Code | qwen-code |
.qwen/skills/ |
~/.qwen/skills/ |
| Replit | replit |
.agent/skills/ |
N/A (project-only) |
| Roo Code | roo |
.roo/skills/ |
~/.roo/skills/ |
| Trae | trae |
.trae/skills/ |
~/.trae/skills/ |
| Trae CN | trae-cn |
.trae/skills/ |
~/.trae-cn/skills/ |
| Windsurf | windsurf |
.windsurf/skills/ |
~/.codeium/windsurf/skills/ |
| Zencoder | zencoder |
.zencoder/skills/ |
~/.zencoder/skills/ |
| Neovate | neovate |
.neovate/skills/ |
~/.neovate/skills/ |
| Pochi | pochi |
.pochi/skills/ |
~/.pochi/skills/ |
| AdaL | adal |
.adal/skills/ |
~/.adal/skills/ |
[!NOTE] Kiro CLI users: After installing skills, manually add them to your custom agent's
resourcesin.kiro/agents/<agent>.json:{ "resources": ["skill://.kiro/skills/**/SKILL.md"] }
The CLI automatically detects which coding agents you have installed. If none are detected, you'll be prompted to select which agents to install to.
Creating Skills
Skills are directories containing a SKILL.md file with YAML frontmatter:
---
name: my-skill
description: What this skill does and when to use it
---
# My Skill
Instructions for the agent to follow when this skill is activated.
## When to Use
Describe the scenarios where this skill should be used.
## Steps
1. First, do this
2. Then, do that
Required Fields
name: Unique identifier (lowercase, hyphens allowed)description: Brief explanation of what the skill does
Optional Fields
metadata.internal: Set totrueto hide the skill from normal discovery. Internal skills are only visible and installable whenINSTALL_INTERNAL_SKILLS=1is set. Useful for work-in-progress skills or skills meant only for internal tooling.
---
name: my-internal-skill
description: An internal skill not shown by default
metadata:
internal: true
---
Skill Discovery
The CLI searches for skills in these locations within a repository:
- Root directory (if it contains
SKILL.md) skills/skills/.curated/skills/.experimental/skills/.system/.agents/skills/.agent/skills/.augment/rules/.claude/skills/./skills/.cline/skills/.codebuddy/skills/.codex/skills/.commandcode/skills/.continue/skills/.crush/skills/.cursor/skills/.factory/skills/.gemini/skills/.github/skills/.goose/skills/.junie/skills/.iflow/skills/.kilocode/skills/.kiro/skills/.kode/skills/.mcpjam/skills/.vibe/skills/.mux/skills/.opencode/skills/.openclaude/skills/.openhands/skills/.pi/skills/.qoder/skills/.qwen/skills/.roo/skills/.trae/skills/.windsurf/skills/.zencoder/skills/.neovate/skills/.pochi/skills/.adal/skills/
If no skills are found in standard locations, a recursive search is performed.
Compatibility
Skills are generally compatible across agents since they follow a shared Agent Skills specification. Some features may be agent-specific.
Troubleshooting
"No skills found"
Ensure the repository contains valid SKILL.md files with both name and description in the frontmatter.
Skill not loading in agent
- Verify the skill was installed to the correct path
- Restart the agent, if running in cli
- Check the agent's documentation for skill loading requirements
- Ensure the
SKILL.mdfrontmatter is valid YAML
Permission errors
Ensure you have write access to the target directory.
Environment Variables
| Variable | Description |
|---|---|
INSTALL_INTERNAL_SKILLS |
Set to 1 or true to show and install skills marked as internal: true |
# Install internal skills
INSTALL_INTERNAL_SKILLS=1 uvx skillsmd add vercel-labs/agent-skills --list
Related Links
- Agent Skills Specification
- Skills Directory
- Amp Skills Documentation
- Antigravity Skills Documentation
- Factory AI / Droid Skills Documentation
- Claude Code Skills Documentation
- Clawdbot Skills Documentation
- Cline Skills Documentation
- CodeBuddy Skills Documentation
- Codex Skills Documentation
- Command Code Skills Documentation
- Crush Skills Documentation
- Cursor Skills Documentation
- Gemini CLI Skills Documentation
- GitHub Copilot Agent Skills
- iFlow CLI Skills Documentation
- Kimi Code CLI Skills Documentation
- Kiro CLI Skills Documentation
- Kode Skills Documentation
- OpenCode Skills Documentation
- Qwen Code Skills Documentation
- OpenHands Skills Documentation
- Pi Skills Documentation
- Qoder Skills Documentation
- Replit Skills Documentation
- Roo Code Skills Documentation
- Trae Skills Documentation
- Vercel Agent Skills Repository
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file skillsmd-0.1.0.tar.gz.
File metadata
- Download URL: skillsmd-0.1.0.tar.gz
- Upload date:
- Size: 35.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.9.28 {"installer":{"name":"uv","version":"0.9.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d66c585dcaf7e67822b8707d755e339403256f9ab97d5187614b7375af9a90b8
|
|
| MD5 |
790e03f531380553fc41e730cad52f98
|
|
| BLAKE2b-256 |
5540f483ce5e0017e06416cdd9489ae53d51d3a7a6d2fe4d01f7af16d96b6931
|
File details
Details for the file skillsmd-0.1.0-py3-none-any.whl.
File metadata
- Download URL: skillsmd-0.1.0-py3-none-any.whl
- Upload date:
- Size: 44.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.9.28 {"installer":{"name":"uv","version":"0.9.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6eb1762a9f8164b6085c214a8b9a355017b00eb609430fc0320f27f3e04c225f
|
|
| MD5 |
6e54b0861be2aa5edef5d99f48439b3f
|
|
| BLAKE2b-256 |
49fdcad8d1d56eaca3c2e0078170cda93b9be219c40604dc6a4e2682f19e5107
|