15 releases (8 breaking)
| 0.9.0 | Feb 4, 2026 |
|---|---|
| 0.7.0 | Feb 3, 2026 |
#660 in Development tools
430KB
9K
SLoC
skill-manager (skm)
A CLI tool for managing AI coding assistant skills across Claude, OpenCode, and Cursor.
What This Does
AI coding assistants like Claude Code, OpenCode, and Cursor support custom "skills" - markdown files containing prompts, instructions, or agent definitions that extend their capabilities. The problem: each tool expects these files in different locations with different formats.
skill-manager lets you maintain a single collection of skills and install them to any supported tool. It handles the path conventions and file transformations automatically.
How It Works
┌──────────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Sources │ │ Bundles │ │ Targets │
│ │ │ │ │ │
│ anthropics/skills │ ───► │ pdf/ │ ───► │ .claude/ │
│ ~/my-skills │ │ xlsx/ │ │ .opencode/ │
│ │ │ pptx/ │ │ .cursor/ │
└──────────────────────┘ └─────────────────┘ └─────────────────┘
- Sources are directories (local or git repos) containing skill bundles
- Bundles are folders with
skills/,agents/, and/orcommands/subdirectories - Targets are the tool-specific directories where skills get installed
When you run skm pdf, it copies the bundle's files to the appropriate locations for your chosen tool, applying any necessary transformations.
Installation
cargo install skill-manager
This installs the skm binary. Requires Rust to be installed.
Quick Start
# Add the official Anthropic skills repo
skm sources add https://github.com/anthropics/skills
# See what's available
skm
# Install a skill bundle
skm pdf
# Install to OpenCode or Cursor instead
skm pdf -o # OpenCode
skm pdf -c # Cursor
# See what's installed
skm here
# Remove a bundle
skm rm pdf
Commands
skm list
Interactive browser with fuzzy search for exploring available bundles. Type to filter by bundle name, author, description, or skill names. Press Esc to quit, Enter to view bundle details.
Available Bundles (type to search)
> pdf Comprehensive PDF manipulation... 1s 0a 0c (anthropics/skills)
xlsx Comprehensive spreadsheet... 1s 0a 0c (anthropics/skills)
pptx Presentation creation, editing... 1s 0a 0c (anthropics/skills)
frontend-design Create distinctive, production... 1s 0a 0c (anthropics/skills)
skm add <bundle> or skm <bundle>
Install a bundle to the current directory. Bundles are searched in priority order across all configured sources.
skm pdf # Install to Claude (default)
skm pdf -o # Install to OpenCode
skm pdf -c # Install to Cursor
skm pdf -g # Install globally
skm add xlsx --skills # Install only skills
skm add pptx --agents # Install only agents
skm sources
Interactive menu to view, add, remove, and reorder sources by priority. Sources are checked in order when searching for bundles.
skm sources # Interactive management
skm sources list # Just list sources
skm sources add https://github.com/anthropics/skills # Add a git source
skm sources add ~/my-skills # Add a local directory
skm sources remove https://github.com/anthropics/skills # Remove a source
skm here
Show and manage skills installed in the current directory.
skm here # Show all installed skills
skm here --tool claude # Filter by tool
skm here --remove # Interactive removal
skm here --clean # Remove all (with confirmation)
skm here --clean --yes # Remove all without confirmation
skm rm <bundle>
Remove all installed files belonging to a bundle from the current directory.
skm rm pdf # Remove with confirmation prompt
skm rm pdf -y # Skip confirmation
skm rm pdf -o # Remove only OpenCode files
skm update
Pull latest changes from all git sources.
Supported Skill Formats
skm supports multiple skill repository formats, making it compatible with popular community skill repos.
Flat Bundle Format
The original format - a directory with subdirectories for each type:
my-bundle/
├── skills/ # Reusable skill definitions
│ └── helper.md
├── agents/ # Agent definitions
│ └── reviewer.md
├── commands/ # Slash commands (e.g., /commit)
│ └── commit.md
└── rules/ # Rules/guidelines
└── style.md
Anthropic/Marketplace Format
Compatible with anthropics/skills and huggingface/skills:
skills/
├── xlsx/
│ └── SKILL.md # With YAML frontmatter (name, description)
├── pdf/
│ └── SKILL.md
└── docx/
└── SKILL.md
Each skill folder becomes a separate installable bundle. The skill name is extracted from YAML frontmatter if present.
# Add the official Anthropic skills repo
skm sources add https://github.com/anthropics/skills
# Install individual skills
skm xlsx
skm pdf
Community Resources Format
For community repos with resources/ directory structure:
resources/
├── skills/
│ └── my-skill/
│ ├── meta.yaml # name, author, description
│ └── skill.md
└── commands/
└── my-command/
├── meta.yaml
└── command.md
Each resource folder becomes a separate bundle, named from meta.yaml.
Where Files Get Installed
| Source | Claude | OpenCode | Cursor |
|---|---|---|---|
skills/foo.md |
.claude/skills/bundle/foo.md |
.opencode/skill/bundle-foo/SKILL.md |
.cursor/skills/bundle-foo/SKILL.md |
agents/foo.md |
.claude/agents/bundle/foo.md |
.opencode/agent/bundle-foo.md |
.cursor/rules/bundle-foo/RULE.md |
commands/foo.md |
.claude/commands/bundle/foo.md |
.opencode/command/bundle-foo.md |
.cursor/rules/bundle-foo/RULE.md |
rules/foo.md |
.claude/rules/bundle/foo.md |
.opencode/rule/bundle-foo/RULE.md |
.cursor/rules/bundle-foo/RULE.md |
OpenCode and Cursor skills/rules require YAML frontmatter with a name field - skm adds this automatically if missing.
Configuration
Config file: ~/.config/skm/config.toml
default_tool = "claude"
[[sources]]
type = "git"
url = "https://github.com/anthropics/skills"
[[sources]]
type = "local"
path = "~/.my-skills"
Sources are searched in order (first match wins). Use skm sources to manage priority.
Shell Completions
skm completions bash > ~/.local/share/bash-completion/completions/skm
skm completions zsh > ~/.zfunc/_skm
skm completions fish > ~/.config/fish/completions/skm.fish
License
MIT
Dependencies
~15–27MB
~404K SLoC