CLI tool for managing AI agent skills across multiple platforms
Project description
Agent Skill Manager
ALL codes are written by Claude Code.
A comprehensive CLI tool for managing AI agent skills across multiple platforms. Download, deploy, update, and manage skills for AI coding assistants like Claude Code, Cursor, Windsurf, and more.
Features
- 📥 Download skills from GitHub with metadata tracking
- � Discover all skills in a repository automatically
- � Deploy skills to multiple AI agents (global or project-level)
- � Symlink support - save disk space with symbolic links
- � Update skills automatically from GitHub sources
- 🗑️ Uninstall with safe deletion (move to trash) or hard delete
- ♻️ Restore deleted skills from trash
- 📋 List all installed skills with version information
- ⚡ CLI-first - full command-line parameter support for automation
Supported AI 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/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 |
.agents/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 |
.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/ |
| Replit | replit |
.agents/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"] }
Installation
Recommended: Install with uv tool
The best way to install is using uv tool:
# Install from PyPI
uv tool install agent-skill-manager
# Verify installation
sm --version
# Start using
sm install
Why uv tool?
- Isolated environment (no package conflicts)
- Easy updates:
uv tool upgrade agent-skill-manager - Clean uninstall:
uv tool uninstall agent-skill-manager - Works across all projects
Alternative: Run Without Installing
For one-time use or testing:
# Run directly with uvx (no installation needed)
uvx agent-skill-manager
# Or run specific commands
uvx --from agent-skill-manager sm install
uvx --from agent-skill-manager sm list
Other Installation Methods
# Using pip
pip install agent-skill-manager
# Using pipx (isolated like uv tool)
pipx install agent-skill-manager
# From source (for development)
git clone https://github.com/ackness/skill-manager.git
cd skill-manager
uv sync
uv pip install -e .
Usage Methods Comparison
| Method | Command | Use Case |
|---|---|---|
| uvx (no install) | uvx --from agent-skill-manager sm install |
One-time use, testing, CI/CD |
| uv tool install | uv tool install agent-skill-manager then sm install |
Regular use, isolated |
| pip install | pip install agent-skill-manager then sm install |
Traditional installation |
| From source | git clone ... then uv pip install -e . |
Development |
Quick Start
# Run without installing (using uvx)
uvx --from agent-skill-manager sm install
uvx --from agent-skill-manager sm list
# Or after installation, use sm command directly:
sm install # Install a skill from GitHub (interactive)
sm list # List installed skills
sm update --all # Update all skills
sm deploy # Deploy local skills to agents
sm uninstall # Uninstall a skill (safe delete)
sm agents # List all supported agents
Commands
| Command | Description |
|---|---|
sm install [url] |
Download and deploy skills (with discovery) |
sm download [url] |
Download a skill from GitHub |
sm deploy |
Deploy local skills to agents |
sm discover [url] |
Discover all skills in a repository |
sm uninstall |
Remove skills (safe delete/hard delete) |
sm restore |
Restore deleted skills from trash |
sm update [--all] |
Update skills from GitHub |
sm list |
Show installed skills with versions |
sm agents |
List all supported agents |
sm --version / sm -v |
Show version information |
CLI Options
| Option | Description |
|---|---|
-a, --agent AGENT |
Target agent(s), can be specified multiple times |
-t, --type TYPE |
Deployment type: global (default) or project |
-d, --dest PATH |
Custom destination directory (default: ~/.skill-manager/skills/) |
-s, --skills NAME |
Skill name(s) to install (default: all discovered skills) |
--no-symlink |
Disable symlinks, copy files instead (symlinks on by default) |
--no-discover |
Disable auto-discovery (on by default) |
--no-deploy |
Download only, skip deployment |
-y, --yes |
Skip confirmation prompts |
Network Configuration
The tool supports proxy, GitHub token, and GitHub mirror via environment variables:
| Variable | Description | Example |
|---|---|---|
GITHUB_TOKEN / GH_TOKEN |
GitHub personal access token (increases API rate limit) | ghp_xxxx |
HTTP_PROXY / HTTPS_PROXY |
HTTP/HTTPS proxy URL | http://127.0.0.1:7890 |
ALL_PROXY |
Fallback proxy for both HTTP and HTTPS | socks5://127.0.0.1:1080 |
GITHUB_MIRROR |
GitHub download mirror prefix | https://mirror.ghproxy.com |
# Example: use proxy for faster downloads
export HTTPS_PROXY=http://127.0.0.1:7890
sm install https://github.com/cloudflare/skills -a windsurf
# Example: use GitHub token to avoid rate limits
export GITHUB_TOKEN=ghp_your_token_here
sm install https://github.com/cloudflare/skills -a windsurf
# Example: use GitHub mirror (for users in China)
export GITHUB_MIRROR=https://mirror.ghproxy.com
sm install https://github.com/cloudflare/skills -a windsurf
# PowerShell (Windows)
$env:HTTPS_PROXY="http://127.0.0.1:7890"
$env:GITHUB_TOKEN="ghp_your_token_here"
sm install https://github.com/cloudflare/skills -a windsurf
[!TIP] Get a GitHub token at https://github.com/settings/tokens (only
public_reposcope needed). Network status is shown during GitHub operations.
Usage Examples
Install skills from a GitHub repository
# Install all skills from a repo (auto-discovery and symlinks enabled by default)
sm install https://github.com/cloudflare/skills -a windsurf -a cursor
# Install specific skills only
sm install https://github.com/cloudflare/skills -s mcp -s browser-rendering -a windsurf
# Full CLI mode - no prompts
sm install https://github.com/user/repo/tree/main/skills/my-skill -a claude-code -t global
# Disable auto-discovery to install only the specific path
sm install https://github.com/user/repo/tree/main/skills/my-skill --no-discover -a cursor
# Disable symlinks, copy files instead
sm install https://github.com/cloudflare/skills --no-symlink -a windsurf
# Download to custom location
sm install https://github.com/user/repo/tree/main/skills/my-skill -d ./my-skills -a cursor
Install skills from a local directory
# Install from a previously downloaded skills directory
sm install ~/.skill-manager/skills -a windsurf -a cursor
# Install specific skills from local directory
sm install ~/my-skills -s my-skill-name -a claude-code
# Install from any local directory containing SKILL.md files
sm install ./path/to/skills -a windsurf
Discover skills in a repository
# Scan a repository to find all skills
sm discover https://github.com/cloudflare/skills
# Shows a table of all found skills with their paths
Interactive mode
sm install
# Enter URL when prompted, all skills are pre-selected by default
# Follow the prompts to select agents and deploy
Update all skills
sm update --all
# Automatically updates all skills installed from GitHub
List installed skills with versions
sm list
# Shows a table for each agent with:
# - Skill Name
# - Version/Updated timestamp
# - Source (GitHub/Local)
# - GitHub URL (for updatable skills)
Safe delete and restore
# Uninstall with safe delete (default)
sm uninstall
# Restore if needed
sm restore
Using symlinks
Symlinks allow you to maintain a single copy of skills while deploying to multiple agents:
# Download skills to a central location and symlink to agents (default behavior)
sm install https://github.com/cloudflare/skills -d ~/skills -a windsurf -a cursor -a claude-code
# Disable symlinks if needed
sm install https://github.com/cloudflare/skills --no-symlink -a windsurf
[!NOTE] On Windows, symlinks require Developer Mode or administrator privileges. If symlinks are not supported, the tool will automatically fall back to copying.
Version Tracking
The tool uses two methods for version identification:
-
GitHub Metadata (for installed skills)
- Tracks installation and update timestamps
- Stores repository information
- Enables automatic updates
-
File Modification Time (for local skills)
- Uses SKILL.md modification time as fallback
- For skills without metadata
Directory Structure
Default Skills Cache
Downloaded skills are stored in ~/.skill-manager/skills/ by default (cross-platform).
Global Installation
Skills are available to all projects:
~/.claude/skills/ # Claude Code
~/.cursor/skills/ # Cursor
~/.codeium/windsurf/skills/ # Windsurf
# ... other agents
Project Installation
Skills are only available in the current project:
project-root/
.claude/skills/
.cursor/skills/
# ... other agents
Configuration
Each skill installed from GitHub includes metadata in .skill_metadata.json:
{
"source": "github",
"github_url": "https://github.com/...",
"owner": "user",
"repo": "repo-name",
"branch": "main",
"path": "skills/skill-name",
"installed_at": "2026-01-20T14:30:52+00:00",
"updated_at": "2026-01-20T14:30:52+00:00"
}
Development
Adding Support for New Agents
Edit src/skill_manager/agents.py and add the agent configuration:
"agent-id": {
"name": "Agent Name",
"project": ".agent/skills/",
"global": "~/.agent/skills/",
}
Running Tests
uv run pytest
Code Formatting
uv run ruff format .
uv run ruff check . --fix
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Related Projects
License
MIT License - See LICENSE file for details
Author
ackness - ackness8@gmail.com
Acknowledgments
- Built following the Agent Skills specification
- Supports all major AI coding assistants
Project details
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 agent_skill_manager-0.2.3.tar.gz.
File metadata
- Download URL: agent_skill_manager-0.2.3.tar.gz
- Upload date:
- Size: 46.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
633a9bafd3206cbf5917e33479501e9f59dcf8510132c60fc435d1bddb5eeec0
|
|
| MD5 |
46aa27790c062422b47165421e82c58d
|
|
| BLAKE2b-256 |
5ba206216ecf6be0ed47326673bf0cdda9b4d6fbb55aa595ee8a0125c10b9181
|
File details
Details for the file agent_skill_manager-0.2.3-py3-none-any.whl.
File metadata
- Download URL: agent_skill_manager-0.2.3-py3-none-any.whl
- Upload date:
- Size: 30.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e3a7173c6b4c0a47d33f4603fc1a0c63b11dad6be3598d213e65d3a3361ac807
|
|
| MD5 |
26d4092c1d88f53277e12b6d5abe1c1d
|
|
| BLAKE2b-256 |
22925b64950ee8860ae23803e6dd518cc1c581168aef789552ae2475e9099f86
|