@phu-le/skills
v0.1.2
Published
Migrate and sync your AI agent skills across Claude Code, Cursor, Codex, and 50 more tools
Maintainers
Keywords
Readme
@phu-le/skills
Fork of vercel-labs/skills with multi-agent sync, managed workflows, and plugin extraction.
Moving from Claude Code to Cursor? Trying Codex? Don't leave your skills behind.
@phu-le/skills lets you install skills from GitHub, import your Claude Code plugin skills, and distribute them to every AI agent you use.
No dotfiles or special setup required — works out of the box with any of the 50+ supported agents.
Supports OpenCode, Claude Code, Codex, Cursor, and 50 more.
Quick Start
# Install a skill from GitHub
npx @phu-le/skills add vercel-labs/agent-skills -g
# See what's installed
npx @phu-le/skills list -g
# Keep skills up to date
npx @phu-le/skills updateThat's it. No dotfiles, no config files, no setup. Just works.
Workflows
Reference docs:
- docs/npx-skills-cheatsheet.md — Native
npx skillscommand reference - docs/cheatsheet.md — Multi-agent sync workflow (import, distribute, extract)
- docs/fork-strategy.md — Upstream sync and rebase strategy
- AGENTS.md — Architecture and development guide
Skill Consumer — Install from GitHub
npx skills add vercel-labs/agent-skills -g # install globally
npx skills list -g # see what's installed
npx skills update # keep skills fresh
npx skills remove my-skill -g # remove when doneMulti-Agent Sync — Share Across All Your Agents
Share skills across all your AI agents from a single canonical store (~/.agents/skills/):
skills agents # see which agents are installed
skills import ~/.claude/skills/standards-go -g # import a skill into canonical store
skills extract-claude-plugins -y # extract plugin skills from Claude Code
skills distribute -g -y # fan out to all non-universal agents
skills remove standards-go -g -y # remove (source untouched, tracked in intent)Universal agents (Codex, Cursor, Gemini CLI, OpenCode, etc.) share ~/.agents/skills/ directly — no symlinks needed. Non-universal agents (Qwen, Kiro, KiloCode, Windsurf) get per-skill symlinks via distribute. Claude Code is excluded from distribute since it's typically the skill source.
Skill Author — Create Your Own
npx skills init my-skill # scaffold SKILL.md
npx skills import ./my-skill -g # symlink into canonical store
npx skills distribute -g -y # fan out to all your agentsAdvanced: Dotfiles Integration
For users with dotfiles repos managed via GNU Stow, you can auto-sync watched directories:
// ~/.agents/.skill-config.json
{ "stowManaged": true, "stowRepoPath": "~/dotfiles", "watchedDirs": ["~/dotfiles/skills"], "autoGit": true }npx skills managed-sync -g -y # import new + distribute in one stepSafety flags
All destructive commands support --dry-run to preview changes without modifying the filesystem:
skills import ./my-skill -g --dry-run -y
skills distribute -g --dry-run -y
skills remove my-skill -g --dry-run -y
skills extract-claude-plugins --dry-run
skills managed-sync -g --dry-run -yInstall a Skill
npx skills add vercel-labs/agent-skillsSource Formats
# GitHub shorthand (owner/repo)
npx skills add vercel-labs/agent-skills
# Full GitHub URL
npx skills add https://github.com/vercel-labs/agent-skills
# Direct path to a skill in a repo
npx skills add https://github.com/vercel-labs/agent-skills/tree/main/skills/web-design-guidelines
# GitLab URL
npx skills add https://gitlab.com/org/repo
# Any git URL
npx skills add [email protected]:vercel-labs/agent-skills.git
# Local path
npx skills add ./my-local-skillsOptions
| 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 |
| --copy | Copy files instead of symlinking to agent directories |
| -y, --yes | Skip all confirmation prompts |
| --all | Install all skills to all agents without prompts |
Examples
# List skills in a repository
npx skills add vercel-labs/agent-skills --list
# Install specific skills
npx skills add vercel-labs/agent-skills --skill frontend-design --skill skill-creator
# Install a skill with spaces in the name (must be quoted)
npx skills add owner/repo --skill "Convex Best Practices"
# Install to specific agents
npx skills add vercel-labs/agent-skills -a claude-code -a opencode
# Non-interactive installation (CI/CD friendly)
npx skills add vercel-labs/agent-skills --skill frontend-design -g -a claude-code -y
# Install all skills from a repo to all agents
npx skills add vercel-labs/agent-skills --all
# Install all skills to specific agents
npx skills add vercel-labs/agent-skills --skill '*' -a claude-code
# Install specific skills to all agents
npx skills add vercel-labs/agent-skills --agent '*' --skill frontend-designInstallation 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 |
| ---------------------------- | --------------------------------------------- |
| npx skills list | List installed skills (alias: ls) |
| npx skills find [query] | Search for skills interactively or by keyword |
| npx skills remove [skills] | Remove installed skills from agents |
| npx skills update [skills] | Update installed skills to latest versions |
| npx skills init [name] | Create a new SKILL.md template |
| skills import <path> -g | Import skills into canonical store via symlink |
| skills distribute -g -y | Distribute canonical skills to all agents |
| skills extract-claude-plugins -y | Extract Claude Code plugin skills to canonical |
| skills agents | List all supported agents and install status |
| skills managed-sync -g -y | Import + distribute in one step |
skills list
List all installed skills. Similar to npm ls.
# List all installed skills (project and global)
npx skills list
# List only global skills
npx skills ls -g
# Filter by specific agents
npx skills ls -a claude-code -a cursorskills find
Search for skills interactively or by keyword.
# Interactive search (fzf-style)
npx skills find
# Search by keyword
npx skills find typescriptskills update
# Update all skills (interactive scope prompt)
npx skills update
# Update a single skill by name
npx skills update my-skill
# Update multiple specific skills
npx skills update frontend-design web-design-guidelines
# Update only global or project skills
npx skills update -g
npx skills update -p
# Non-interactive (auto-detects scope: project if in a project, else global)
npx skills update -y| Option | Description |
| --------------- | ------------------------------------------------------------------------- |
| -g, --global | Only update global skills |
| -p, --project | Only update project skills |
| -y, --yes | Skip scope prompt (auto-detect: project if in a project dir, else global) |
| [skills...] | Update specific skills by name instead of all |
skills init
# Create SKILL.md in current directory
npx skills init
# Create a new skill in a subdirectory
npx skills init my-skillskills remove
Remove installed skills from agents.
# Remove interactively (select from installed skills)
npx skills remove
# Remove specific skill by name
npx skills remove web-design-guidelines
# Remove multiple skills
npx skills remove frontend-design web-design-guidelines
# Remove from global scope
npx skills remove --global web-design-guidelines
# Remove from specific agents only
npx skills remove --agent claude-code cursor my-skill
# Remove all installed skills without confirmation
npx skills remove --all
# Remove all skills from a specific agent
npx skills remove --skill '*' -a cursor
# Remove a specific skill from all agents
npx skills remove my-skill --agent '*'
# Use 'rm' alias
npx skills 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 that extend your coding agent's capabilities. They're defined in SKILL.md
files with YAML frontmatter containing a name and description.
Skills let agents perform specialized 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 |
|-------|-----------|--------------|-------------|
| AiderDesk | aider-desk | .aider-desk/skills/ | ~/.aider-desk/skills/ |
| Amp, Kimi Code CLI, Replit, Universal | amp, kimi-cli, replit, universal | .agents/skills/ | ~/.config/agents/skills/ |
| Antigravity | antigravity | .agents/skills/ | ~/.gemini/antigravity/skills/ |
| Augment | augment | .augment/skills/ | ~/.augment/skills/ |
| IBM Bob | bob | .bob/skills/ | ~/.bob/skills/ |
| Claude Code | claude-code | .claude/skills/ | ~/.claude/skills/ |
| OpenClaw | openclaw | skills/ | ~/.openclaw/skills/ |
| Cline, Dexto, Warp | cline, dexto, warp | .agents/skills/ | ~/.agents/skills/ |
| CodeArts Agent | codearts-agent | .codeartsdoer/skills/ | ~/.codeartsdoer/skills/ |
| CodeBuddy | codebuddy | .codebuddy/skills/ | ~/.codebuddy/skills/ |
| Codemaker | codemaker | .codemaker/skills/ | ~/.codemaker/skills/ |
| Code Studio | codestudio | .codestudio/skills/ | ~/.codestudio/skills/ |
| Codex | codex | .agents/skills/ | ~/.codex/skills/ |
| Command Code | command-code | .commandcode/skills/ | ~/.commandcode/skills/ |
| Continue | continue | .continue/skills/ | ~/.continue/skills/ |
| Cortex Code | cortex | .cortex/skills/ | ~/.snowflake/cortex/skills/ |
| Crush | crush | .crush/skills/ | ~/.config/crush/skills/ |
| Cursor | cursor | .agents/skills/ | ~/.cursor/skills/ |
| Deep Agents | deepagents | .agents/skills/ | ~/.deepagents/agent/skills/ |
| Devin for Terminal | devin | .devin/skills/ | ~/.config/devin/skills/ |
| Droid | droid | .factory/skills/ | ~/.factory/skills/ |
| Firebender | firebender | .agents/skills/ | ~/.firebender/skills/ |
| ForgeCode | forgecode | .forge/skills/ | ~/.forge/skills/ |
| Gemini CLI | gemini-cli | .agents/skills/ | ~/.gemini/skills/ |
| GitHub Copilot | github-copilot | .agents/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 | .agents/skills/ | ~/.config/opencode/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/ |
| Rovo Dev | rovodev | .rovodev/skills/ | ~/.rovodev/skills/ |
| Roo Code | roo | .roo/skills/ | ~/.roo/skills/ |
| Tabnine CLI | tabnine-cli | .tabnine/agent/skills/ | ~/.tabnine/agent/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: The default agent automatically loads skills from
.kiro/skills/and~/.kiro/skills/— no configuration needed. If you use a custom agent, add skills to itsresourcesin.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 thatRequired 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/.aider-desk/skills/.agents/skills/.augment/skills/.bob/skills/.claude/skills/.codeartsdoer/skills/.codebuddy/skills/.codemaker/skills/.codestudio/skills/.commandcode/skills/.continue/skills/.cortex/skills/.crush/skills/.devin/skills/.factory/skills/.forge/skills/.goose/skills/.junie/skills/.iflow/skills/.kilocode/skills/.kiro/skills/.kode/skills/.mcpjam/skills/.vibe/skills/.mux/skills/.openhands/skills/.pi/skills/.qoder/skills/.qwen/skills/.rovodev/skills/.roo/skills/.tabnine/agent/skills/.trae/skills/.windsurf/skills/.zencoder/skills/.neovate/skills/.pochi/skills/.adal/skills/
Plugin Manifest Discovery
If .claude-plugin/marketplace.json or .claude-plugin/plugin.json exists, skills declared in those files are also discovered:
// .claude-plugin/marketplace.json
{
"metadata": { "pluginRoot": "./plugins" },
"plugins": [
{
"name": "my-plugin",
"source": "my-plugin",
"skills": ["./skills/review", "./skills/test"]
}
]
}This enables compatibility with the Claude Code plugin marketplace ecosystem.
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. However, some features may be agent-specific:
| Feature | OpenCode | OpenHands | Claude Code | Cline | CodeBuddy | Codex | Command Code | Kiro CLI | Cursor | Antigravity | Roo Code | Github Copilot | Amp | OpenClaw | Neovate | Pi | Qoder | Zencoder |
| --------------- | -------- | --------- | ----------- | ----- | --------- | ----- | ------------ | -------- | ------ | ----------- | -------- | -------------- | --- | -------- | ------- | --- | ----- | -------- |
| Basic skills | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| allowed-tools | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No |
| context: fork | No | No | Yes | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No |
| Hooks | No | No | Yes | Yes | No | No | No | Yes | No | No | No | No | No | No | No | No | No | No |
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
- 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 npx skills add vercel-labs/agent-skills --listRelated Links
- Agent Skills Specification
- Skills Directory
- Amp Skills Documentation
- Antigravity Skills Documentation
- Factory AI / Droid Skills Documentation
- Claude Code Skills Documentation
- OpenClaw Skills Documentation
- Cline Skills Documentation
- CodeBuddy Skills Documentation
- Codex Skills Documentation
- Command Code Skills Documentation
- Crush Skills Documentation
- Cursor Skills Documentation
- Firebender 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
