Catalog PyPI
PACKAGE EXPLORERView in registry

agent-skill-manager

PyPI

CLI tool for managing AI agent skills across multiple platforms

agentsaiclaudeclicursorskillswindsurf
Versions collected1
Direct dependencies4From release 0.3.0
Last observed20 Oct, 23:24 UTC

README

Version 0.3.0 documentation

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.

PyPI version Python 3.13+ License: MIT

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
  • 🏎️ Fast downloads - 3-tier strategy: git sparse-checkout → Tree API + raw URLs → Contents API fallback

Supported AI Agents

Agent--agentProject PathGlobal Path
Amp, Kimi Code CLIamp, kimi-cli.agents/skills/~/.config/agents/skills/
Antigravityantigravity.agent/skills/~/.gemini/antigravity/skills/
Augmentaugment.augment/rules/~/.augment/rules/
Claude Codeclaude-code.claude/skills/~/.claude/skills/
OpenClawopenclawskills/~/.moltbot/skills/
Clinecline.cline/skills/~/.cline/skills/
CodeBuddycodebuddy.codebuddy/skills/~/.codebuddy/skills/
Codexcodex.agents/skills/~/.codex/skills/
Command Codecommand-code.commandcode/skills/~/.commandcode/skills/
Continuecontinue.continue/skills/~/.continue/skills/
Crushcrush.crush/skills/~/.config/crush/skills/
Cursorcursor.cursor/skills/~/.cursor/skills/
Droiddroid.factory/skills/~/.factory/skills/
Gemini CLIgemini-cli.agents/skills/~/.gemini/skills/
GitHub Copilotgithub-copilot.agents/skills/~/.copilot/skills/
Goosegoose.goose/skills/~/.config/goose/skills/
Juniejunie.junie/skills/~/.junie/skills/
iFlow CLIiflow-cli.iflow/skills/~/.iflow/skills/
Kilo Codekilo.kilocode/skills/~/.kilocode/skills/
Kiro CLIkiro-cli.kiro/skills/~/.kiro/skills/
Kodekode.kode/skills/~/.kode/skills/
MCPJammcpjam.mcpjam/skills/~/.mcpjam/skills/
Mistral Vibemistral-vibe.vibe/skills/~/.vibe/skills/
Muxmux.mux/skills/~/.mux/skills/
OpenCodeopencode.agents/skills/~/.config/opencode/skills/
OpenHandsopenhands.openhands/skills/~/.openhands/skills/
Pipi.pi/skills/~/.pi/agent/skills/
Qoderqoder.qoder/skills/~/.qoder/skills/
Qwen Codeqwen-code.qwen/skills/~/.qwen/skills/
Replitreplit.agents/skills/N/A (project-only)
Roo Coderoo.roo/skills/~/.roo/skills/
Traetrae.trae/skills/~/.trae/skills/
Trae CNtrae-cn.trae/skills/~/.trae-cn/skills/
Windsurfwindsurf.windsurf/skills/~/.codeium/windsurf/skills/
Zencoderzencoder.zencoder/skills/~/.zencoder/skills/
Neovateneovate.neovate/skills/~/.neovate/skills/
Pochipochi.pochi/skills/~/.pochi/skills/
AdaLadal.adal/skills/~/.adal/skills/

[!NOTE] Kiro CLI users: After installing skills, manually add them to your custom agent's resources in .kiro/agents/<agent>.json:

{
  "resources": ["skill://.kiro/skills/**/SKILL.md"]
}

Installation

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

MethodCommandUse Case
uvx (no install)uvx --from agent-skill-manager sm installOne-time use, testing, CI/CD
uv tool installuv tool install agent-skill-manager then sm installRegular use, isolated
pip installpip install agent-skill-manager then sm installTraditional installation
From sourcegit 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

CommandDescription
sm install [url]Download and deploy skills (with discovery)
sm download [url]Download a skill from GitHub
sm deployDeploy local skills to agents
sm discover [url]Discover all skills in a repository
sm uninstallRemove skills (safe delete/hard delete)
sm restoreRestore deleted skills from trash
sm update [--all]Update skills from GitHub
sm listShow installed skills with versions
sm agentsList all supported agents
sm --version / sm -vShow version information

CLI Options

OptionDescription
-a, --agent AGENTTarget agent(s), can be specified multiple times
-t, --type TYPEDeployment type: global (default) or project
-d, --dest PATHCustom destination directory (default: ~/.skill-manager/skills/)
-s, --skills NAMESkill name(s) to install (default: all discovered skills)
--no-symlinkDisable symlinks, copy files instead (symlinks on by default)
--no-discoverDisable auto-discovery (on by default)
--no-deployDownload only, skip deployment
-y, --yesSkip confirmation prompts

Network Configuration

The tool supports proxy, GitHub token, and GitHub mirror via environment variables:

VariableDescriptionExample
GITHUB_TOKEN / GH_TOKENGitHub personal access token (increases API rate limit)ghp_xxxx
HTTP_PROXY / HTTPS_PROXYHTTP/HTTPS proxy URLhttp://127.0.0.1:7890
ALL_PROXYFallback proxy for both HTTP and HTTPSsocks5://127.0.0.1:1080
GITHUB_MIRRORGitHub download mirror prefixhttps://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_repo scope 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

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:

  1. GitHub Metadata (for installed skills)

    • Tracks installation and update timestamps
    • Stores repository information
    • Enables automatic updates
  2. 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.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

MIT License - See LICENSE file for details

Author

ackness - ackness8@gmail.com

Acknowledgments

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Versions 1

Collected releases
VersionPublishedDirect dependenciesOpen version
0.3.07 Feb 20264

Package advisories

0
No matching advisories collected

This describes our collected data; it is not a security assessment.

Repository

PENDING
ackness/skill-manager

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 23:24 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package:ae7de0057bbc812eca1938580cfc8bebf19fda3b67ef1bf4d0475c90f0103748