A CLI tool for managing Agent Skills.
Supported Coding Agents: Claude Code, OpenCode, Codex, Gemini CLI (+ custom integrations)
Current Limitations:
- Windows is not supported (uses Unix symlinks)
The tool clones repositories containing skills to a local cache directory. When you enable a skill, it creates symlinks in all your registered coding agents' skill directories. Disabling a skill removes the symlinks while keeping the repository cached for fast re-enabling.
Local repositories (/path/to/dir, ~/dir, ./dir) skip cloning entirely — symlinks point directly to the source directory. Changes you make to local skill files are reflected immediately without needing sm upgrade.
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/jroslaniec/agent-skill-manager/releases/latest/download/agent-skill-manager-installer.sh | shcargo install --path .After installation, configure which coding agents you use:
# Interactive setup - select your coding agents
sm configure
# Or add individually
sm integrations add claude-code
sm integrations add opencodeThen add skills:
sm add github.com/anthropics/skills/skills/pdfThe easiest way to manage skills is through the interactive UI:
# Manage all skills from all repositories
sm
# Add repository and interactively select skills
sm add -i github.com/anthropics/skills/skillsAdd skills to your global Claude Code configuration:
# Add a skill
sm add github.com/anthropics/skills/skills/pdf
# Add multiple skills
sm add \
github.com/anthropics/skills/skills/pdf \
github.com/anthropics/skills/skills/docx
# Add a local skill directly (auto-registers parent as local repo)
sm add /path/to/my-skill
sm add /path/to/my-skill/SKILL.md
# Interactive mode - select skills from a repository
sm add -i github.com/anthropics/skills/skillsIf you want to add a repository without enabling skills, use:
# HTTPS (any host)
sm repo add github.com/anthropics/skills/skills
sm repo add gitlab.com/owner/repo
# SSH
sm repo add git@github.com:owner/repo.git
sm repo add git@gitlab.com:owner/repo.git
# Local paths
sm repo add /path/to/local/repo
sm repo add ~/projects/my-skills
sm repo add ./relative/path
# File URLs
sm repo add file:///path/to/repoRepositories should contain skill and/or agent directories:
- Each skill directory needs a
SKILL.mdfile - Each agent directory needs an
AGENT.mdfile
repo-root/
├── skill-name-1/
│ └── SKILL.md
├── skill-name-2/
│ └── SKILL.md
├── agent-name-1/
│ └── AGENT.mdYou can also add a repository from a nested path:
sm repo add github.com/owner/repo/path/to/skills
sm repo add /path/to/local/repo/skillsExample with nested structure:
repo-root/
├── tools/
│ └── agent-skills/
│ ├── skill-a/
│ │ └── SKILL.md
│ └── agent-b/
│ └── AGENT.mdFor this structure, use: sm repo add github.com/owner/repo/tools/agent-skills
Pin repositories to specific commits to prevent accidental updates:
# Add repository pinned to specific commit
sm repo add github.com/owner/repo@abc12345
# Pin existing repository to current commit
sm repo pin github.com/owner/repo
# Unpin to allow upgrades
sm repo unpin github.com/owner/repo
# Upgrade to latest commit
sm repo upgrade github.com/owner/repo
# Upgrade to specific commit (auto-pins)
sm repo upgrade github.com/owner/repo@abc12345
# Upgrade all unpinned repositories
sm upgrade
sm upgrade --force # Skip confirmationNote: Local repositories cannot be pinned or unpinned (no SHA tracking). Running sm upgrade on local repos re-scans the directory for new or removed skills and agents without performing any git operations. Deleting a local repo (sm repo delete) removes symlinks and config but does not delete the source directory.
# Interactive mode (easiest)
sm
# Enable using full reference
sm skill enable github.com/anthropics/skills/skills/pdf
sm enable github.com/anthropics/skills/skills/pdf
# Or just the skill name if already registered
sm skill enable pdf
sm enable pdf
# Disable (works with both name and full reference)
sm skill disable pdf
sm disable pdfSubagents are similar to skills but integrated into specific coding agents (Claude Code, OpenCode, etc.):
# List all subagents
sm subagents list
sm subagents list --all
# Enable subagents
sm subagents enable my-agent
sm subagent enable owner/repo/my-agent
# Disable subagents
sm subagents disable my-agent
sm subagent disable owner/repo/my-agent
# Interactive management
sm # Bare command shows both skills and agentsSubagents are discovered automatically from AGENT.md files in repositories, just like skills are discovered from SKILL.md files.
# List skills
sm list
sm list --all
# List repositories
sm repo list
# Remove a repository and all its skills
sm repo delete github.com/anthropics/skills/skills
# Show cache directory location
sm cache dir
# Purge everything (remove all repositories, skills, and cache)
sm purgeConfigure which coding agents receive your skills:
# Interactive setup
sm configure
# Add built-in integrations
sm integrations add claude-code # ~/.claude/skills/
sm integrations add opencode # ~/.config/opencode/skill/
sm integrations add codex # ~/.codex/skills/
sm integrations add gemini-cli # ~/.gemini/skills/
# Add custom integration
sm integrations add cursor --path ~/.cursor/skills
# List integrations (shows all presets + custom)
sm integrations list
# Remove an integration
sm integrations remove cursorAliases are supported: claude → claude-code, gemini → gemini-cli
The tool supports multiple aliases for convenience:
repositories,repository,repos,repo- Repository commandsskills,skill,sk- Skill commandssubagents,subagent- Subagent commandsintegrations,integration,int- Integration commandslist,ls- Shortcut forskills listenable- Shortcut forskills enabledisable- Shortcut forskills disableconfigure,config- Configure integrations