agent-skill-manager 0.2.0__tar.gz → 0.2.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {agent_skill_manager-0.2.0 → agent_skill_manager-0.2.1}/PKG-INFO +18 -13
- {agent_skill_manager-0.2.0 → agent_skill_manager-0.2.1}/README.md +17 -12
- {agent_skill_manager-0.2.0 → agent_skill_manager-0.2.1}/pyproject.toml +1 -1
- agent_skill_manager-0.2.1/skills/agent_skill_manager/SKILL.md +504 -0
- {agent_skill_manager-0.2.0 → agent_skill_manager-0.2.1}/src/skill_manager/__init__.py +1 -1
- {agent_skill_manager-0.2.0 → agent_skill_manager-0.2.1}/src/skill_manager/cli.py +14 -10
- {agent_skill_manager-0.2.0 → agent_skill_manager-0.2.1}/uv.lock +1 -1
- agent_skill_manager-0.2.0/skills/agent_skill_manager/SKILL.md +0 -386
- {agent_skill_manager-0.2.0 → agent_skill_manager-0.2.1}/.gitignore +0 -0
- {agent_skill_manager-0.2.0 → agent_skill_manager-0.2.1}/.pre-commit-config.yaml +0 -0
- {agent_skill_manager-0.2.0 → agent_skill_manager-0.2.1}/.python-version +0 -0
- {agent_skill_manager-0.2.0 → agent_skill_manager-0.2.1}/examples/.gitkeep +0 -0
- {agent_skill_manager-0.2.0 → agent_skill_manager-0.2.1}/scripts/.gitkeep +0 -0
- {agent_skill_manager-0.2.0 → agent_skill_manager-0.2.1}/src/skill_manager/agents.py +0 -0
- {agent_skill_manager-0.2.0 → agent_skill_manager-0.2.1}/src/skill_manager/deployment.py +0 -0
- {agent_skill_manager-0.2.0 → agent_skill_manager-0.2.1}/src/skill_manager/github.py +0 -0
- {agent_skill_manager-0.2.0 → agent_skill_manager-0.2.1}/src/skill_manager/metadata.py +0 -0
- {agent_skill_manager-0.2.0 → agent_skill_manager-0.2.1}/src/skill_manager/removal.py +0 -0
- {agent_skill_manager-0.2.0 → agent_skill_manager-0.2.1}/src/skill_manager/validation.py +0 -0
- {agent_skill_manager-0.2.0 → agent_skill_manager-0.2.1}/tests/.gitkeep +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agent-skill-manager
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.1
|
|
4
4
|
Summary: CLI tool for managing AI agent skills across multiple platforms
|
|
5
5
|
Project-URL: Homepage, https://github.com/ackness/skill-manager
|
|
6
6
|
Project-URL: Repository, https://github.com/ackness/skill-manager
|
|
@@ -199,8 +199,8 @@ sm agents # List all supported agents
|
|
|
199
199
|
| `-a, --agent AGENT` | Target agent(s), can be specified multiple times |
|
|
200
200
|
| `-t, --type TYPE` | Deployment type: `global` (default) or `project` |
|
|
201
201
|
| `-d, --dest PATH` | Custom destination directory for downloads |
|
|
202
|
-
| `--symlink` |
|
|
203
|
-
| `--discover` |
|
|
202
|
+
| `--no-symlink` | Disable symlinks, copy files instead (symlinks on by default) |
|
|
203
|
+
| `--no-discover` | Disable auto-discovery (on by default) |
|
|
204
204
|
| `--no-deploy` | Download only, skip deployment |
|
|
205
205
|
| `-y, --yes` | Skip confirmation prompts |
|
|
206
206
|
|
|
@@ -209,19 +209,21 @@ sm agents # List all supported agents
|
|
|
209
209
|
### Install all skills from a repository
|
|
210
210
|
|
|
211
211
|
```bash
|
|
212
|
-
#
|
|
213
|
-
sm install https://github.com/cloudflare/skills
|
|
212
|
+
# Install all skills from a repo (auto-discovery and symlinks enabled by default)
|
|
213
|
+
sm install https://github.com/cloudflare/skills -a windsurf -a cursor
|
|
214
214
|
|
|
215
|
-
# Use symlinks to save disk space (
|
|
216
|
-
sm install https://github.com/cloudflare/skills
|
|
217
|
-
```
|
|
218
|
-
|
|
219
|
-
### Install a single skill with CLI options
|
|
215
|
+
# Use symlinks to save disk space (enabled by default, use --no-symlink to disable)
|
|
216
|
+
sm install https://github.com/cloudflare/skills -a claude-code
|
|
220
217
|
|
|
221
|
-
```bash
|
|
222
218
|
# Full CLI mode - no prompts
|
|
223
219
|
sm install https://github.com/user/repo/tree/main/skills/my-skill -a claude-code -t global
|
|
224
220
|
|
|
221
|
+
# Disable auto-discovery to install only the specific path
|
|
222
|
+
sm install https://github.com/user/repo/tree/main/skills/my-skill --no-discover -a cursor
|
|
223
|
+
|
|
224
|
+
# Disable symlinks, copy files instead
|
|
225
|
+
sm install https://github.com/cloudflare/skills --no-symlink -a windsurf
|
|
226
|
+
|
|
225
227
|
# Download to custom location
|
|
226
228
|
sm install https://github.com/user/repo/tree/main/skills/my-skill -d ./my-skills -a cursor
|
|
227
229
|
```
|
|
@@ -275,8 +277,11 @@ sm restore
|
|
|
275
277
|
Symlinks allow you to maintain a single copy of skills while deploying to multiple agents:
|
|
276
278
|
|
|
277
279
|
```bash
|
|
278
|
-
# Download skills to a central location and symlink to agents
|
|
279
|
-
sm install https://github.com/cloudflare/skills
|
|
280
|
+
# Download skills to a central location and symlink to agents (default behavior)
|
|
281
|
+
sm install https://github.com/cloudflare/skills -d ~/skills -a windsurf -a cursor -a claude-code
|
|
282
|
+
|
|
283
|
+
# Disable symlinks if needed
|
|
284
|
+
sm install https://github.com/cloudflare/skills --no-symlink -a windsurf
|
|
280
285
|
```
|
|
281
286
|
|
|
282
287
|
> [!NOTE]
|
|
@@ -174,8 +174,8 @@ sm agents # List all supported agents
|
|
|
174
174
|
| `-a, --agent AGENT` | Target agent(s), can be specified multiple times |
|
|
175
175
|
| `-t, --type TYPE` | Deployment type: `global` (default) or `project` |
|
|
176
176
|
| `-d, --dest PATH` | Custom destination directory for downloads |
|
|
177
|
-
| `--symlink` |
|
|
178
|
-
| `--discover` |
|
|
177
|
+
| `--no-symlink` | Disable symlinks, copy files instead (symlinks on by default) |
|
|
178
|
+
| `--no-discover` | Disable auto-discovery (on by default) |
|
|
179
179
|
| `--no-deploy` | Download only, skip deployment |
|
|
180
180
|
| `-y, --yes` | Skip confirmation prompts |
|
|
181
181
|
|
|
@@ -184,19 +184,21 @@ sm agents # List all supported agents
|
|
|
184
184
|
### Install all skills from a repository
|
|
185
185
|
|
|
186
186
|
```bash
|
|
187
|
-
#
|
|
188
|
-
sm install https://github.com/cloudflare/skills
|
|
187
|
+
# Install all skills from a repo (auto-discovery and symlinks enabled by default)
|
|
188
|
+
sm install https://github.com/cloudflare/skills -a windsurf -a cursor
|
|
189
189
|
|
|
190
|
-
# Use symlinks to save disk space (
|
|
191
|
-
sm install https://github.com/cloudflare/skills
|
|
192
|
-
```
|
|
193
|
-
|
|
194
|
-
### Install a single skill with CLI options
|
|
190
|
+
# Use symlinks to save disk space (enabled by default, use --no-symlink to disable)
|
|
191
|
+
sm install https://github.com/cloudflare/skills -a claude-code
|
|
195
192
|
|
|
196
|
-
```bash
|
|
197
193
|
# Full CLI mode - no prompts
|
|
198
194
|
sm install https://github.com/user/repo/tree/main/skills/my-skill -a claude-code -t global
|
|
199
195
|
|
|
196
|
+
# Disable auto-discovery to install only the specific path
|
|
197
|
+
sm install https://github.com/user/repo/tree/main/skills/my-skill --no-discover -a cursor
|
|
198
|
+
|
|
199
|
+
# Disable symlinks, copy files instead
|
|
200
|
+
sm install https://github.com/cloudflare/skills --no-symlink -a windsurf
|
|
201
|
+
|
|
200
202
|
# Download to custom location
|
|
201
203
|
sm install https://github.com/user/repo/tree/main/skills/my-skill -d ./my-skills -a cursor
|
|
202
204
|
```
|
|
@@ -250,8 +252,11 @@ sm restore
|
|
|
250
252
|
Symlinks allow you to maintain a single copy of skills while deploying to multiple agents:
|
|
251
253
|
|
|
252
254
|
```bash
|
|
253
|
-
# Download skills to a central location and symlink to agents
|
|
254
|
-
sm install https://github.com/cloudflare/skills
|
|
255
|
+
# Download skills to a central location and symlink to agents (default behavior)
|
|
256
|
+
sm install https://github.com/cloudflare/skills -d ~/skills -a windsurf -a cursor -a claude-code
|
|
257
|
+
|
|
258
|
+
# Disable symlinks if needed
|
|
259
|
+
sm install https://github.com/cloudflare/skills --no-symlink -a windsurf
|
|
255
260
|
```
|
|
256
261
|
|
|
257
262
|
> [!NOTE]
|
|
@@ -0,0 +1,504 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: skill-manager
|
|
3
|
+
description: Manage AI agent skills - download from GitHub, discover skills in repositories, deploy to multiple agents with symlink support, update, uninstall with safe deletion, and track versions. Use when users want to install, manage, or update skills for AI coding assistants like Claude Code, Cursor, Windsurf, etc.
|
|
4
|
+
license: MIT
|
|
5
|
+
compatibility: Requires Python 3.13+, uv or rye package manager, internet access for GitHub downloads
|
|
6
|
+
metadata:
|
|
7
|
+
author: ackness
|
|
8
|
+
version: "0.2.1"
|
|
9
|
+
repository: https://github.com/ackness/skill-manager
|
|
10
|
+
pypi: agent-skill-manager
|
|
11
|
+
platforms:
|
|
12
|
+
- windows
|
|
13
|
+
- linux
|
|
14
|
+
- macos
|
|
15
|
+
allowed-tools: Bash(uv:*) Bash(git:*) Read Write
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
# Skill Manager
|
|
19
|
+
|
|
20
|
+
A comprehensive CLI tool for managing AI agent skills across multiple platforms. Supports downloading skills from GitHub, discovering all skills in a repository, deploying to various AI agents with symlink support, version tracking, safe deletion with recovery, and automatic updates.
|
|
21
|
+
|
|
22
|
+
## Key Features
|
|
23
|
+
|
|
24
|
+
- **Skill Discovery** - Automatically find all SKILL.md files in a GitHub repository
|
|
25
|
+
- **Symlink Support** - Deploy skills using symlinks to save disk space
|
|
26
|
+
- **CLI-first** - Full command-line parameter support for automation
|
|
27
|
+
- **39 Agents** - Support for all major AI coding assistants
|
|
28
|
+
|
|
29
|
+
## Supported AI Agents
|
|
30
|
+
|
|
31
|
+
| Agent | ID | Project Path | Global Path |
|
|
32
|
+
|-------|-----|--------------|-------------|
|
|
33
|
+
| Amp | `amp` | `.agents/skills/` | `~/.config/agents/skills/` |
|
|
34
|
+
| Antigravity | `antigravity` | `.agent/skills/` | `~/.gemini/antigravity/skills/` |
|
|
35
|
+
| Augment | `augment` | `.augment/rules/` | `~/.augment/rules/` |
|
|
36
|
+
| Claude Code | `claude-code` | `.claude/skills/` | `~/.claude/skills/` |
|
|
37
|
+
| Cline | `cline` | `.cline/skills/` | `~/.cline/skills/` |
|
|
38
|
+
| CodeBuddy | `codebuddy` | `.codebuddy/skills/` | `~/.codebuddy/skills/` |
|
|
39
|
+
| Codex | `codex` | `.agents/skills/` | `~/.codex/skills/` |
|
|
40
|
+
| Command Code | `command-code` | `.commandcode/skills/` | `~/.commandcode/skills/` |
|
|
41
|
+
| Continue | `continue` | `.continue/skills/` | `~/.continue/skills/` |
|
|
42
|
+
| Crush | `crush` | `.crush/skills/` | `~/.config/crush/skills/` |
|
|
43
|
+
| Cursor | `cursor` | `.cursor/skills/` | `~/.cursor/skills/` |
|
|
44
|
+
| Droid | `droid` | `.factory/skills/` | `~/.factory/skills/` |
|
|
45
|
+
| Gemini CLI | `gemini-cli` | `.agents/skills/` | `~/.gemini/skills/` |
|
|
46
|
+
| GitHub Copilot | `github-copilot` | `.agents/skills/` | `~/.copilot/skills/` |
|
|
47
|
+
| Goose | `goose` | `.goose/skills/` | `~/.config/goose/skills/` |
|
|
48
|
+
| iFlow CLI | `iflow-cli` | `.iflow/skills/` | `~/.iflow/skills/` |
|
|
49
|
+
| Junie | `junie` | `.junie/skills/` | `~/.junie/skills/` |
|
|
50
|
+
| Kilo Code | `kilo` | `.kilocode/skills/` | `~/.kilocode/skills/` |
|
|
51
|
+
| Kimi Code CLI | `kimi-cli` | `.agents/skills/` | `~/.config/agents/skills/` |
|
|
52
|
+
| Kiro CLI | `kiro-cli` | `.kiro/skills/` | `~/.kiro/skills/` |
|
|
53
|
+
| Kode | `kode` | `.kode/skills/` | `~/.kode/skills/` |
|
|
54
|
+
| MCPJam | `mcpjam` | `.mcpjam/skills/` | `~/.mcpjam/skills/` |
|
|
55
|
+
| Mistral Vibe | `mistral-vibe` | `.vibe/skills/` | `~/.vibe/skills/` |
|
|
56
|
+
| Mux | `mux` | `.mux/skills/` | `~/.mux/skills/` |
|
|
57
|
+
| Neovate | `neovate` | `.neovate/skills/` | `~/.neovate/skills/` |
|
|
58
|
+
| OpenClaw | `openclaw` | `skills/` | `~/.moltbot/skills/` |
|
|
59
|
+
| OpenCode | `opencode` | `.agents/skills/` | `~/.config/opencode/skills/` |
|
|
60
|
+
| OpenHands | `openhands` | `.openhands/skills/` | `~/.openhands/skills/` |
|
|
61
|
+
| Pi | `pi` | `.pi/skills/` | `~/.pi/agent/skills/` |
|
|
62
|
+
| Pochi | `pochi` | `.pochi/skills/` | `~/.pochi/skills/` |
|
|
63
|
+
| Qoder | `qoder` | `.qoder/skills/` | `~/.qoder/skills/` |
|
|
64
|
+
| Qwen Code | `qwen-code` | `.qwen/skills/` | `~/.qwen/skills/` |
|
|
65
|
+
| Replit | `replit` | `.agents/skills/` | N/A (project-only) |
|
|
66
|
+
| Roo Code | `roo` | `.roo/skills/` | `~/.roo/skills/` |
|
|
67
|
+
| Trae | `trae` | `.trae/skills/` | `~/.trae/skills/` |
|
|
68
|
+
| Trae CN | `trae-cn` | `.trae/skills/` | `~/.trae-cn/skills/` |
|
|
69
|
+
| Windsurf | `windsurf` | `.windsurf/skills/` | `~/.codeium/windsurf/skills/` |
|
|
70
|
+
| Zencoder | `zencoder` | `.zencoder/skills/` | `~/.zencoder/skills/` |
|
|
71
|
+
| AdaL | `adal` | `.adal/skills/` | `~/.adal/skills/` |
|
|
72
|
+
|
|
73
|
+
## Installation
|
|
74
|
+
|
|
75
|
+
### Quick Install (Recommended)
|
|
76
|
+
|
|
77
|
+
Install with uv tool for the best experience:
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
# Install from PyPI (recommended)
|
|
81
|
+
uv tool install agent-skill-manager
|
|
82
|
+
|
|
83
|
+
# After installation, use the sm command
|
|
84
|
+
sm --version
|
|
85
|
+
sm install
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
**Benefits:**
|
|
89
|
+
- Clean isolated environment
|
|
90
|
+
- No conflicts with other packages
|
|
91
|
+
- Easy updates: `uv tool upgrade agent-skill-manager`
|
|
92
|
+
- `sm` command available globally
|
|
93
|
+
|
|
94
|
+
### Alternative: Run Without Installing
|
|
95
|
+
|
|
96
|
+
For one-time use or testing, use uvx:
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
# Run directly without installing
|
|
100
|
+
uvx agent-skill-manager
|
|
101
|
+
|
|
102
|
+
# Or run specific commands
|
|
103
|
+
uvx --from agent-skill-manager sm install
|
|
104
|
+
uvx --from agent-skill-manager sm list
|
|
105
|
+
|
|
106
|
+
# Create an alias for convenience
|
|
107
|
+
alias sm="uvx --from agent-skill-manager sm"
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### Other Installation Methods
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
# Using pip
|
|
114
|
+
pip install agent-skill-manager
|
|
115
|
+
|
|
116
|
+
# From source (for development)
|
|
117
|
+
git clone https://github.com/ackness/skill-manager.git
|
|
118
|
+
cd skill-manager
|
|
119
|
+
uv sync
|
|
120
|
+
uv pip install -e .
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
After installation, the `sm` command will be available globally.
|
|
124
|
+
|
|
125
|
+
## Commands Overview
|
|
126
|
+
|
|
127
|
+
| Command | Description |
|
|
128
|
+
|---------|-------------|
|
|
129
|
+
| `sm install [url]` | Download and deploy skills (with discovery) |
|
|
130
|
+
| `sm download [url]` | Download a skill from GitHub |
|
|
131
|
+
| `sm deploy` | Deploy local skills to agents |
|
|
132
|
+
| `sm discover [url]` | Discover all skills in a repository |
|
|
133
|
+
| `sm uninstall` | Remove skills (safe delete/hard delete) |
|
|
134
|
+
| `sm restore` | Restore deleted skills from trash |
|
|
135
|
+
| `sm update [--all]` | Update skills from GitHub |
|
|
136
|
+
| `sm list` | Show installed skills with versions |
|
|
137
|
+
| `sm agents` | List all supported agents |
|
|
138
|
+
|
|
139
|
+
## CLI Options
|
|
140
|
+
|
|
141
|
+
| Option | Description |
|
|
142
|
+
|--------|-------------|
|
|
143
|
+
| `-a, --agent AGENT` | Target agent(s), can be specified multiple times |
|
|
144
|
+
| `-t, --type TYPE` | Deployment type: `global` (default) or `project` |
|
|
145
|
+
| `-d, --dest PATH` | Custom destination directory for downloads |
|
|
146
|
+
| `--no-symlink` | Disable symlinks, copy files instead (symlinks on by default) |
|
|
147
|
+
| `--no-discover` | Disable auto-discovery, install only the specified path |
|
|
148
|
+
| `--no-deploy` | Download only, skip deployment |
|
|
149
|
+
| `-y`, `--yes` | Skip confirmation prompts |
|
|
150
|
+
|
|
151
|
+
### Install Skills (CLI Mode - Recommended)
|
|
152
|
+
|
|
153
|
+
由于支持 skill 的 agent 一般没有交互式环境,优先使用 CLI 格式:
|
|
154
|
+
|
|
155
|
+
```bash
|
|
156
|
+
# Install all skills from a repo (auto-discovery and symlinks enabled by default)
|
|
157
|
+
sm install https://github.com/cloudflare/skills -a windsurf -a cursor
|
|
158
|
+
|
|
159
|
+
# Full CLI mode - no prompts
|
|
160
|
+
sm install https://github.com/user/repo/tree/main/skills/my-skill -a claude-code -t global
|
|
161
|
+
|
|
162
|
+
# Disable auto-discovery, install only the specified path
|
|
163
|
+
sm install https://github.com/user/repo/tree/main/skills/my-skill --no-discover -a cursor
|
|
164
|
+
|
|
165
|
+
# Disable symlinks, copy files instead
|
|
166
|
+
sm install https://github.com/cloudflare/skills --no-symlink -a windsurf
|
|
167
|
+
|
|
168
|
+
# Download to custom location
|
|
169
|
+
sm install https://github.com/user/repo/tree/main/skills/my-skill -d ./my-skills -a cursor
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
### Interactive Mode (For Interactive Terminals Only)
|
|
173
|
+
|
|
174
|
+
```bash
|
|
175
|
+
sm install
|
|
176
|
+
# Enter URL when prompted
|
|
177
|
+
# Follow the prompts to save locally and deploy
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
### Discover Skills
|
|
181
|
+
```bash
|
|
182
|
+
# Scan a repository to find all skills
|
|
183
|
+
sm discover https://github.com/cloudflare/skills
|
|
184
|
+
# Shows a table of all found skills with their paths
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
### Download Skills (CLI Mode - Recommended)
|
|
188
|
+
|
|
189
|
+
```bash
|
|
190
|
+
# Download all skills from repo (auto-discovery enabled by default)
|
|
191
|
+
sm download https://github.com/user/repo -d ~/my-skills
|
|
192
|
+
|
|
193
|
+
# Download single skill to temp directory (default)
|
|
194
|
+
sm download https://github.com/user/repo/tree/main/skills/my-skill
|
|
195
|
+
|
|
196
|
+
# Disable auto-discovery, download only the specified path
|
|
197
|
+
sm download https://github.com/user/repo/tree/main/skills/my-skill --no-discover -d ~/my-skills
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
### Interactive Mode (For Interactive Terminals Only)
|
|
201
|
+
|
|
202
|
+
```bash
|
|
203
|
+
sm download
|
|
204
|
+
# Follow prompts to enter URL and destination
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
### Deploy Skills (CLI Mode - Recommended)
|
|
208
|
+
|
|
209
|
+
For automated deployment without prompts:
|
|
210
|
+
|
|
211
|
+
```bash
|
|
212
|
+
# Deploy specific skills to specific agents
|
|
213
|
+
sm deploy skill1 skill2 -a claude-code -a cursor -t global
|
|
214
|
+
|
|
215
|
+
# Deploy with symlinks
|
|
216
|
+
sm deploy my-skill -a windsurf --symlink
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
### Interactive Mode (For Interactive Terminals Only)
|
|
220
|
+
|
|
221
|
+
```bash
|
|
222
|
+
sm deploy
|
|
223
|
+
# Select deployment type, agents, and skills interactively
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
### Update Skills (CLI Mode - Recommended)
|
|
227
|
+
|
|
228
|
+
```bash
|
|
229
|
+
# Update all skills without prompts
|
|
230
|
+
sm update --all -y
|
|
231
|
+
|
|
232
|
+
# Update specific skills
|
|
233
|
+
sm update skill1 skill2 -a claude-code
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
### Interactive Mode (For Interactive Terminals Only)
|
|
237
|
+
|
|
238
|
+
```bash
|
|
239
|
+
# Update selected skills interactively
|
|
240
|
+
sm update
|
|
241
|
+
|
|
242
|
+
# Update all skills (with confirmation)
|
|
243
|
+
sm update --all
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
### Uninstall Skills (CLI Mode - Recommended)
|
|
247
|
+
|
|
248
|
+
```bash
|
|
249
|
+
# Uninstall specific skills from specific agents
|
|
250
|
+
sm uninstall skill1 skill2 -a claude-code -a cursor
|
|
251
|
+
|
|
252
|
+
# Hard delete (permanent, no trash)
|
|
253
|
+
sm uninstall my-skill -a windsurf --hard
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
### Interactive Mode (For Interactive Terminals Only)
|
|
257
|
+
|
|
258
|
+
```bash
|
|
259
|
+
sm uninstall
|
|
260
|
+
# Select skills to remove interactively
|
|
261
|
+
# Choose "Safe delete" (default) or "Hard delete"
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
### Restore Skills (CLI Mode - Recommended)
|
|
265
|
+
|
|
266
|
+
```bash
|
|
267
|
+
# Restore specific skills
|
|
268
|
+
sm restore skill1 skill2 -a claude-code
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
### Interactive Mode (For Interactive Terminals Only)
|
|
272
|
+
|
|
273
|
+
```bash
|
|
274
|
+
sm restore
|
|
275
|
+
# Select skills to restore interactively (shows deletion timestamp)
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
### List Skills
|
|
279
|
+
```bash
|
|
280
|
+
sm list
|
|
281
|
+
```
|
|
282
|
+
Shows all installed skills with version information across agents.
|
|
283
|
+
|
|
284
|
+
### List Agents
|
|
285
|
+
```bash
|
|
286
|
+
sm agents
|
|
287
|
+
```
|
|
288
|
+
Shows all 39 supported agents with their project and global paths.
|
|
289
|
+
|
|
290
|
+
## Directory Structure
|
|
291
|
+
|
|
292
|
+
### Global Installation
|
|
293
|
+
Skills installed globally are available to all projects:
|
|
294
|
+
```
|
|
295
|
+
~/.claude/skills/ # Claude Code
|
|
296
|
+
~/.cursor/skills/ # Cursor
|
|
297
|
+
~/.codeium/windsurf/skills/ # Windsurf
|
|
298
|
+
# ... other agents
|
|
299
|
+
```
|
|
300
|
+
|
|
301
|
+
### Project Installation
|
|
302
|
+
Skills installed at project level are only available in that project:
|
|
303
|
+
```
|
|
304
|
+
project-root/
|
|
305
|
+
.claude/skills/
|
|
306
|
+
.cursor/skills/
|
|
307
|
+
# ... other agents
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
### Metadata Storage
|
|
311
|
+
Each skill installed from GitHub includes metadata:
|
|
312
|
+
```
|
|
313
|
+
skill-name/
|
|
314
|
+
SKILL.md
|
|
315
|
+
.skill_metadata.json # Contains GitHub source, timestamps
|
|
316
|
+
# ... skill files
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
### Trash Storage
|
|
320
|
+
Safely deleted skills are stored with timestamps:
|
|
321
|
+
```
|
|
322
|
+
~/.claude/
|
|
323
|
+
skills/ # Active skills
|
|
324
|
+
.trash/ # Deleted skills
|
|
325
|
+
20260120_143052/ # Timestamp directory
|
|
326
|
+
skill-name/
|
|
327
|
+
.trash_metadata # Deletion info
|
|
328
|
+
# ... skill files
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
## Version Tracking
|
|
332
|
+
|
|
333
|
+
The tool uses two methods for version identification:
|
|
334
|
+
|
|
335
|
+
1. **GitHub Metadata** (for installed skills):
|
|
336
|
+
- Tracks installation and update timestamps
|
|
337
|
+
- Stores repository information
|
|
338
|
+
- Enables automatic updates
|
|
339
|
+
- Format: ISO 8601 timestamp
|
|
340
|
+
|
|
341
|
+
2. **File Modification Time** (for local skills):
|
|
342
|
+
- Uses SKILL.md modification time
|
|
343
|
+
- Fallback for skills without metadata
|
|
344
|
+
- Format: YYYY-MM-DD HH:MM:SS
|
|
345
|
+
|
|
346
|
+
## Examples (CLI-First)
|
|
347
|
+
|
|
348
|
+
所有示例优先展示 CLI 格式,适用于自动化和无交互环境:
|
|
349
|
+
|
|
350
|
+
### Install all skills from a repository (auto-discovery)
|
|
351
|
+
```bash
|
|
352
|
+
# Auto-discovery is enabled by default - installs all skills found in repo
|
|
353
|
+
sm install https://github.com/cloudflare/skills -a windsurf -a cursor -a claude-code
|
|
354
|
+
|
|
355
|
+
# Use symlinks to save disk space (single copy, multiple deployments)
|
|
356
|
+
sm install https://github.com/cloudflare/skills --symlink -a windsurf
|
|
357
|
+
```
|
|
358
|
+
|
|
359
|
+
### Install a single skill (CLI mode)
|
|
360
|
+
```bash
|
|
361
|
+
# Full CLI mode - no prompts
|
|
362
|
+
sm install https://github.com/user/repo/tree/main/skills/my-skill -a claude-code -t global
|
|
363
|
+
|
|
364
|
+
# Download to custom location
|
|
365
|
+
sm install https://github.com/user/repo/tree/main/skills/my-skill -d ./my-skills -a cursor
|
|
366
|
+
```
|
|
367
|
+
|
|
368
|
+
### Interactive mode (alternative for interactive terminals)
|
|
369
|
+
```bash
|
|
370
|
+
sm install
|
|
371
|
+
# Enter URL when prompted
|
|
372
|
+
# Follow the prompts to save locally and deploy
|
|
373
|
+
```
|
|
374
|
+
|
|
375
|
+
### Discover skills in a repo
|
|
376
|
+
```bash
|
|
377
|
+
sm discover https://github.com/cloudflare/skills
|
|
378
|
+
# Shows a table of all found skills with their paths and URLs
|
|
379
|
+
```
|
|
380
|
+
|
|
381
|
+
### Update all skills
|
|
382
|
+
```bash
|
|
383
|
+
sm update --all
|
|
384
|
+
# Downloads latest versions from GitHub
|
|
385
|
+
# Updates metadata timestamps
|
|
386
|
+
```
|
|
387
|
+
|
|
388
|
+
### List installed skills
|
|
389
|
+
```bash
|
|
390
|
+
sm list
|
|
391
|
+
# Shows table for each agent:
|
|
392
|
+
# Skill Name | Version/Updated | Source | GitHub URL
|
|
393
|
+
```
|
|
394
|
+
|
|
395
|
+
### Uninstall with safe delete
|
|
396
|
+
```bash
|
|
397
|
+
sm uninstall
|
|
398
|
+
# Select skills to remove
|
|
399
|
+
# Choose "Safe delete"
|
|
400
|
+
# Skills moved to .trash with timestamp
|
|
401
|
+
# Can be restored later with sm restore
|
|
402
|
+
```
|
|
403
|
+
|
|
404
|
+
### Using symlinks
|
|
405
|
+
```bash
|
|
406
|
+
# Download skills to a central location and symlink to agents (default behavior)
|
|
407
|
+
sm install https://github.com/cloudflare/skills -d ~/skills -a windsurf -a cursor -a claude-code
|
|
408
|
+
|
|
409
|
+
# Disable symlinks if needed
|
|
410
|
+
sm install https://github.com/cloudflare/skills --no-symlink -a windsurf
|
|
411
|
+
```
|
|
412
|
+
Note: On Windows, symlinks require Developer Mode or admin privileges. Falls back to copying if not supported or when `--no-symlink` is used.
|
|
413
|
+
|
|
414
|
+
## Best Practices
|
|
415
|
+
|
|
416
|
+
1. **Symlinks are enabled by default** - Save disk space automatically, use `--no-symlink` to disable
|
|
417
|
+
2. **Auto-discovery is enabled by default** - Discover and install all skills automatically, use `--no-discover` to disable
|
|
418
|
+
3. **Use safe delete by default** - You can always restore if needed
|
|
419
|
+
4. **Update regularly** - Run `sm update --all` periodically for bug fixes and improvements
|
|
420
|
+
5. **Use CLI options for automation** - Avoid prompts with `-a`, `-t`, `-y` flags
|
|
421
|
+
6. **Check versions** - Use `sm list` to see what's installed and outdated
|
|
422
|
+
|
|
423
|
+
## Troubleshooting
|
|
424
|
+
|
|
425
|
+
### Command not found: sm
|
|
426
|
+
Reinstall the package:
|
|
427
|
+
```bash
|
|
428
|
+
uv pip install -e .
|
|
429
|
+
```
|
|
430
|
+
|
|
431
|
+
### GitHub download fails
|
|
432
|
+
- Check internet connection
|
|
433
|
+
- Verify the GitHub URL is correct
|
|
434
|
+
- Ensure the URL points to a directory, not a file
|
|
435
|
+
- Check if the repository is public
|
|
436
|
+
|
|
437
|
+
### Skill not showing in agent
|
|
438
|
+
- Verify the agent is running
|
|
439
|
+
- Check deployment location (global vs project)
|
|
440
|
+
- Ensure the skill has a valid SKILL.md file
|
|
441
|
+
- Restart the agent if necessary
|
|
442
|
+
|
|
443
|
+
### Update fails
|
|
444
|
+
- The tool automatically restores from backup
|
|
445
|
+
- Check if the GitHub repository still exists
|
|
446
|
+
- Verify internet connection
|
|
447
|
+
- Try reinstalling: `sm uninstall` then `sm install`
|
|
448
|
+
|
|
449
|
+
## Technical Details
|
|
450
|
+
|
|
451
|
+
### Metadata Format
|
|
452
|
+
```json
|
|
453
|
+
{
|
|
454
|
+
"source": "github",
|
|
455
|
+
"github_url": "https://github.com/...",
|
|
456
|
+
"owner": "user",
|
|
457
|
+
"repo": "repo-name",
|
|
458
|
+
"branch": "main",
|
|
459
|
+
"path": "skills/skill-name",
|
|
460
|
+
"installed_at": "2026-01-20T14:30:52.123456+00:00",
|
|
461
|
+
"updated_at": "2026-01-20T14:30:52.123456+00:00"
|
|
462
|
+
}
|
|
463
|
+
```
|
|
464
|
+
|
|
465
|
+
### Agent Configuration
|
|
466
|
+
Each agent has defined paths for:
|
|
467
|
+
- **project**: Skills directory within current project
|
|
468
|
+
- **global**: User-wide skills directory
|
|
469
|
+
- See `src/skill_manager/agents.py` for complete mapping
|
|
470
|
+
|
|
471
|
+
### Update Process
|
|
472
|
+
1. Read skill metadata to get GitHub source
|
|
473
|
+
2. Download updated version to temporary location
|
|
474
|
+
3. Create backup of current version
|
|
475
|
+
4. Remove current version
|
|
476
|
+
5. Move updated version to skill location
|
|
477
|
+
6. Update metadata timestamp
|
|
478
|
+
7. Clean up temporary files
|
|
479
|
+
8. On failure: restore from backup
|
|
480
|
+
|
|
481
|
+
## Development
|
|
482
|
+
|
|
483
|
+
To add support for a new AI agent:
|
|
484
|
+
|
|
485
|
+
1. Edit `src/skill_manager/agents.py`
|
|
486
|
+
2. Add agent configuration:
|
|
487
|
+
```python
|
|
488
|
+
"agent-id": {
|
|
489
|
+
"name": "Agent Name",
|
|
490
|
+
"project": ".agent/skills/",
|
|
491
|
+
"global": "~/.agent/skills/",
|
|
492
|
+
}
|
|
493
|
+
```
|
|
494
|
+
3. Test with `sm list` to verify detection
|
|
495
|
+
|
|
496
|
+
## Related Resources
|
|
497
|
+
|
|
498
|
+
- Agent Skills Specification: https://agentskills.io/specification
|
|
499
|
+
- Report Issues: https://github.com/ackness/skill-manager/issues
|
|
500
|
+
- Skill Registry: https://agentskills.io
|
|
501
|
+
|
|
502
|
+
## License
|
|
503
|
+
|
|
504
|
+
MIT License - See LICENSE file for details
|
|
@@ -5,7 +5,7 @@ This package provides functionality to download, deploy, and manage
|
|
|
5
5
|
skills across different AI agent platforms.
|
|
6
6
|
"""
|
|
7
7
|
|
|
8
|
-
__version__ = "0.2.
|
|
8
|
+
__version__ = "0.2.1"
|
|
9
9
|
|
|
10
10
|
from .agents import AGENTS, detect_existing_agents, get_agent_name, get_agent_path, supports_global_deployment
|
|
11
11
|
from .deployment import (
|
|
@@ -88,8 +88,10 @@ def create_parser() -> argparse.ArgumentParser:
|
|
|
88
88
|
"-t", "--type", choices=["global", "project"], default="global", help="Deployment type (default: global)"
|
|
89
89
|
)
|
|
90
90
|
install_parser.add_argument("-d", "--dest", type=Path, help="Destination directory for downloaded skills")
|
|
91
|
-
install_parser.add_argument("--symlink", action="store_true", help="
|
|
92
|
-
install_parser.add_argument(
|
|
91
|
+
install_parser.add_argument("--no-symlink", action="store_true", help="Disable symlinks, copy files instead")
|
|
92
|
+
install_parser.add_argument(
|
|
93
|
+
"--no-discover", action="store_true", help="Disable auto-discovery, install only the specified path"
|
|
94
|
+
)
|
|
93
95
|
install_parser.add_argument("--no-deploy", action="store_true", help="Download only, do not deploy")
|
|
94
96
|
install_parser.add_argument("-y", "--yes", action="store_true", help="Skip confirmation prompts")
|
|
95
97
|
|
|
@@ -97,7 +99,9 @@ def create_parser() -> argparse.ArgumentParser:
|
|
|
97
99
|
download_parser = subparsers.add_parser("download", help="Download skills from GitHub")
|
|
98
100
|
download_parser.add_argument("url", nargs="?", help="GitHub URL of the skill or repository")
|
|
99
101
|
download_parser.add_argument("-d", "--dest", type=Path, help="Destination directory")
|
|
100
|
-
download_parser.add_argument(
|
|
102
|
+
download_parser.add_argument(
|
|
103
|
+
"--no-discover", action="store_true", help="Disable auto-discovery, download only the specified path"
|
|
104
|
+
)
|
|
101
105
|
download_parser.add_argument("-y", "--yes", action="store_true", help="Skip confirmation prompts")
|
|
102
106
|
|
|
103
107
|
# Deploy command
|
|
@@ -105,7 +109,7 @@ def create_parser() -> argparse.ArgumentParser:
|
|
|
105
109
|
deploy_parser.add_argument("skills", nargs="*", help="Skill names or paths to deploy")
|
|
106
110
|
deploy_parser.add_argument("-a", "--agent", action="append", dest="agents", help="Target agent(s)")
|
|
107
111
|
deploy_parser.add_argument("-t", "--type", choices=["global", "project"], default="global", help="Deployment type")
|
|
108
|
-
deploy_parser.add_argument("--symlink", action="store_true", help="
|
|
112
|
+
deploy_parser.add_argument("--no-symlink", action="store_true", help="Disable symlinks, copy files instead")
|
|
109
113
|
deploy_parser.add_argument("-y", "--yes", action="store_true", help="Skip confirmation prompts")
|
|
110
114
|
|
|
111
115
|
# Discover command
|
|
@@ -1334,7 +1338,7 @@ def cmd_install_cli(args: argparse.Namespace) -> int:
|
|
|
1334
1338
|
|
|
1335
1339
|
url = args.url
|
|
1336
1340
|
deployment_type = args.type
|
|
1337
|
-
use_symlink = args.
|
|
1341
|
+
use_symlink = not args.no_symlink
|
|
1338
1342
|
skip_deploy = args.no_deploy
|
|
1339
1343
|
# auto_confirm = args.yes # Reserved for future use
|
|
1340
1344
|
|
|
@@ -1363,7 +1367,7 @@ def cmd_install_cli(args: argparse.Namespace) -> int:
|
|
|
1363
1367
|
use_symlink = False
|
|
1364
1368
|
|
|
1365
1369
|
# Discover skills if requested
|
|
1366
|
-
if args.
|
|
1370
|
+
if not args.no_discover:
|
|
1367
1371
|
with Progress(
|
|
1368
1372
|
SpinnerColumn(),
|
|
1369
1373
|
TextColumn("[progress.description]{task.description}"),
|
|
@@ -1537,7 +1541,7 @@ def cmd_download_cli(args: argparse.Namespace) -> int:
|
|
|
1537
1541
|
console.print(f"[dim]Download location: {dest_dir}[/dim]\n")
|
|
1538
1542
|
|
|
1539
1543
|
# Discover skills if requested
|
|
1540
|
-
if args.
|
|
1544
|
+
if not args.no_discover:
|
|
1541
1545
|
with Progress(
|
|
1542
1546
|
SpinnerColumn(),
|
|
1543
1547
|
TextColumn("[progress.description]{task.description}"),
|
|
@@ -1637,10 +1641,10 @@ def main() -> int:
|
|
|
1637
1641
|
"[bold]CLI Options:[/bold]\n"
|
|
1638
1642
|
" -a, --agent AGENT - Target agent(s)\n"
|
|
1639
1643
|
" -t, --type TYPE - Deployment type (global/project)\n"
|
|
1640
|
-
" --symlink
|
|
1641
|
-
" --discover
|
|
1644
|
+
" --no-symlink - Disable symlinks, copy files instead\n"
|
|
1645
|
+
" --no-discover - Disable auto-discovery\n"
|
|
1642
1646
|
" -y, --yes - Skip confirmation prompts\n\n"
|
|
1643
|
-
"[dim]Example: sm install https://github.com/cloudflare/skills
|
|
1647
|
+
"[dim]Example: sm install https://github.com/cloudflare/skills -a windsurf -a cursor[/dim]",
|
|
1644
1648
|
border_style="cyan",
|
|
1645
1649
|
)
|
|
1646
1650
|
)
|
|
@@ -1,386 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: skill-manager
|
|
3
|
-
description: Manage AI agent skills - download from GitHub, deploy to multiple agents, update, uninstall with safe deletion, and track versions. Use when users want to install, manage, or update skills for AI coding assistants like Claude Code, Cursor, Windsurf, etc.
|
|
4
|
-
license: MIT
|
|
5
|
-
compatibility: Requires Python 3.13+, uv or rye package manager, internet access for GitHub downloads
|
|
6
|
-
metadata:
|
|
7
|
-
author: ackness
|
|
8
|
-
version: "0.1.3"
|
|
9
|
-
repository: https://github.com/ackness/skill-manager
|
|
10
|
-
pypi: agent-skill-manager
|
|
11
|
-
platforms:
|
|
12
|
-
- windows
|
|
13
|
-
- linux
|
|
14
|
-
- macos
|
|
15
|
-
allowed-tools: Bash(uv:*) Bash(git:*) Read Write
|
|
16
|
-
---
|
|
17
|
-
|
|
18
|
-
# Skill Manager
|
|
19
|
-
|
|
20
|
-
A comprehensive CLI tool for managing AI agent skills across multiple platforms. Supports downloading skills from GitHub, deploying to various AI agents, version tracking, safe deletion with recovery, and automatic updates.
|
|
21
|
-
|
|
22
|
-
## Supported AI Agents
|
|
23
|
-
|
|
24
|
-
- Claude Code
|
|
25
|
-
- Cursor
|
|
26
|
-
- Windsurf
|
|
27
|
-
- OpenCode
|
|
28
|
-
- Copilot
|
|
29
|
-
- Goose
|
|
30
|
-
- Gemini CLI
|
|
31
|
-
- Roo Code
|
|
32
|
-
- Kilo Code
|
|
33
|
-
- Amp
|
|
34
|
-
- Codex
|
|
35
|
-
- Antigravity
|
|
36
|
-
- Clawdbot
|
|
37
|
-
- Droid
|
|
38
|
-
|
|
39
|
-
## Installation
|
|
40
|
-
|
|
41
|
-
### Quick Install (Recommended)
|
|
42
|
-
|
|
43
|
-
Install with uv tool for the best experience:
|
|
44
|
-
|
|
45
|
-
```bash
|
|
46
|
-
# Install from PyPI (recommended)
|
|
47
|
-
uv tool install agent-skill-manager
|
|
48
|
-
|
|
49
|
-
# After installation, use the sm command
|
|
50
|
-
sm --version
|
|
51
|
-
sm install
|
|
52
|
-
```
|
|
53
|
-
|
|
54
|
-
**Benefits:**
|
|
55
|
-
- Clean isolated environment
|
|
56
|
-
- No conflicts with other packages
|
|
57
|
-
- Easy updates: `uv tool upgrade agent-skill-manager`
|
|
58
|
-
- `sm` command available globally
|
|
59
|
-
|
|
60
|
-
### Alternative: Run Without Installing
|
|
61
|
-
|
|
62
|
-
For one-time use or testing, use uvx:
|
|
63
|
-
|
|
64
|
-
```bash
|
|
65
|
-
# Run directly without installing
|
|
66
|
-
uvx agent-skill-manager
|
|
67
|
-
|
|
68
|
-
# Or run specific commands
|
|
69
|
-
uvx --from agent-skill-manager sm install
|
|
70
|
-
uvx --from agent-skill-manager sm list
|
|
71
|
-
|
|
72
|
-
# Create an alias for convenience
|
|
73
|
-
alias sm="uvx --from agent-skill-manager sm"
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
### Other Installation Methods
|
|
77
|
-
|
|
78
|
-
```bash
|
|
79
|
-
# Using pip
|
|
80
|
-
pip install agent-skill-manager
|
|
81
|
-
|
|
82
|
-
# From source (for development)
|
|
83
|
-
git clone https://github.com/ackness/skill-manager.git
|
|
84
|
-
cd skill-manager
|
|
85
|
-
uv sync
|
|
86
|
-
uv pip install -e .
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
After installation, the `sm` command will be available globally.
|
|
90
|
-
|
|
91
|
-
## Commands Overview
|
|
92
|
-
|
|
93
|
-
### Download Skills
|
|
94
|
-
```bash
|
|
95
|
-
sm download
|
|
96
|
-
```
|
|
97
|
-
Downloads a skill from GitHub to local storage. Saves metadata for version tracking and future updates.
|
|
98
|
-
|
|
99
|
-
**When to use:** When you want to save a skill locally without deploying it yet.
|
|
100
|
-
|
|
101
|
-
**Interactive prompts:**
|
|
102
|
-
- GitHub URL of the skill
|
|
103
|
-
- Whether to save to local skills/ directory
|
|
104
|
-
- Category for organization (optional)
|
|
105
|
-
|
|
106
|
-
### Deploy Skills
|
|
107
|
-
```bash
|
|
108
|
-
sm deploy
|
|
109
|
-
```
|
|
110
|
-
Deploys skills from your local `skills/` directory to selected AI agents.
|
|
111
|
-
|
|
112
|
-
**When to use:** When you have local skills ready to deploy to agents.
|
|
113
|
-
|
|
114
|
-
**Interactive prompts:**
|
|
115
|
-
- Deployment location (global/project)
|
|
116
|
-
- Target agents
|
|
117
|
-
- Skills to deploy
|
|
118
|
-
|
|
119
|
-
### Install Skills
|
|
120
|
-
```bash
|
|
121
|
-
sm install
|
|
122
|
-
```
|
|
123
|
-
Combined operation: downloads from GitHub and deploys to agents in one step.
|
|
124
|
-
|
|
125
|
-
**When to use:** When you want to quickly install a skill from GitHub to your agents.
|
|
126
|
-
|
|
127
|
-
**Interactive prompts:**
|
|
128
|
-
- GitHub URL
|
|
129
|
-
- Whether to save locally
|
|
130
|
-
- Category (if saving locally)
|
|
131
|
-
- Whether to deploy
|
|
132
|
-
- Target agents and deployment location
|
|
133
|
-
|
|
134
|
-
### Update Skills
|
|
135
|
-
```bash
|
|
136
|
-
# Update selected skills
|
|
137
|
-
sm update
|
|
138
|
-
|
|
139
|
-
# Update all skills with GitHub metadata
|
|
140
|
-
sm update --all
|
|
141
|
-
```
|
|
142
|
-
Updates skills from their GitHub sources. Only works for skills installed via `sm install` or with saved metadata.
|
|
143
|
-
|
|
144
|
-
**When to use:** When you want to get the latest version of installed skills.
|
|
145
|
-
|
|
146
|
-
**Features:**
|
|
147
|
-
- Automatic backup before update
|
|
148
|
-
- Rollback on failure
|
|
149
|
-
- Updates metadata timestamps
|
|
150
|
-
- Shows version information
|
|
151
|
-
|
|
152
|
-
### Uninstall Skills
|
|
153
|
-
```bash
|
|
154
|
-
sm uninstall
|
|
155
|
-
```
|
|
156
|
-
Removes skills from agents with two deletion modes:
|
|
157
|
-
- **Safe delete (default):** Moves to `.trash` with timestamp for recovery
|
|
158
|
-
- **Hard delete:** Permanent removal
|
|
159
|
-
|
|
160
|
-
**When to use:** When you want to remove skills from agents.
|
|
161
|
-
|
|
162
|
-
**Interactive prompts:**
|
|
163
|
-
- Deployment type
|
|
164
|
-
- Target agents
|
|
165
|
-
- Skills to remove
|
|
166
|
-
- Deletion type (safe/hard)
|
|
167
|
-
|
|
168
|
-
### Restore Skills
|
|
169
|
-
```bash
|
|
170
|
-
sm restore
|
|
171
|
-
```
|
|
172
|
-
Restores previously deleted skills from trash.
|
|
173
|
-
|
|
174
|
-
**When to use:** When you accidentally deleted a skill or want to recover it.
|
|
175
|
-
|
|
176
|
-
**Interactive prompts:**
|
|
177
|
-
- Deployment type
|
|
178
|
-
- Target agents
|
|
179
|
-
- Skills to restore (shows deletion timestamp)
|
|
180
|
-
|
|
181
|
-
### List Skills
|
|
182
|
-
```bash
|
|
183
|
-
sm list
|
|
184
|
-
```
|
|
185
|
-
Shows all installed skills with version information across agents.
|
|
186
|
-
|
|
187
|
-
**When to use:** When you want to see what skills are installed and their versions.
|
|
188
|
-
|
|
189
|
-
**Displays:**
|
|
190
|
-
- Skill names
|
|
191
|
-
- Version/update timestamp
|
|
192
|
-
- Source (GitHub/Local)
|
|
193
|
-
- GitHub URL (for updatable skills)
|
|
194
|
-
- Organized by agent
|
|
195
|
-
|
|
196
|
-
## Directory Structure
|
|
197
|
-
|
|
198
|
-
### Global Installation
|
|
199
|
-
Skills installed globally are available to all projects:
|
|
200
|
-
```
|
|
201
|
-
~/.claude/skills/ # Claude Code
|
|
202
|
-
~/.cursor/skills/ # Cursor
|
|
203
|
-
~/.codeium/windsurf/skills/ # Windsurf
|
|
204
|
-
# ... other agents
|
|
205
|
-
```
|
|
206
|
-
|
|
207
|
-
### Project Installation
|
|
208
|
-
Skills installed at project level are only available in that project:
|
|
209
|
-
```
|
|
210
|
-
project-root/
|
|
211
|
-
.claude/skills/
|
|
212
|
-
.cursor/skills/
|
|
213
|
-
# ... other agents
|
|
214
|
-
```
|
|
215
|
-
|
|
216
|
-
### Metadata Storage
|
|
217
|
-
Each skill installed from GitHub includes metadata:
|
|
218
|
-
```
|
|
219
|
-
skill-name/
|
|
220
|
-
SKILL.md
|
|
221
|
-
.skill_metadata.json # Contains GitHub source, timestamps
|
|
222
|
-
# ... skill files
|
|
223
|
-
```
|
|
224
|
-
|
|
225
|
-
### Trash Storage
|
|
226
|
-
Safely deleted skills are stored with timestamps:
|
|
227
|
-
```
|
|
228
|
-
~/.claude/
|
|
229
|
-
skills/ # Active skills
|
|
230
|
-
.trash/ # Deleted skills
|
|
231
|
-
20260120_143052/ # Timestamp directory
|
|
232
|
-
skill-name/
|
|
233
|
-
.trash_metadata # Deletion info
|
|
234
|
-
# ... skill files
|
|
235
|
-
```
|
|
236
|
-
|
|
237
|
-
## Version Tracking
|
|
238
|
-
|
|
239
|
-
The tool uses two methods for version identification:
|
|
240
|
-
|
|
241
|
-
1. **GitHub Metadata** (for installed skills):
|
|
242
|
-
- Tracks installation and update timestamps
|
|
243
|
-
- Stores repository information
|
|
244
|
-
- Enables automatic updates
|
|
245
|
-
- Format: ISO 8601 timestamp
|
|
246
|
-
|
|
247
|
-
2. **File Modification Time** (for local skills):
|
|
248
|
-
- Uses SKILL.md modification time
|
|
249
|
-
- Fallback for skills without metadata
|
|
250
|
-
- Format: YYYY-MM-DD HH:MM:SS
|
|
251
|
-
|
|
252
|
-
## Examples
|
|
253
|
-
|
|
254
|
-
### Install a skill from GitHub
|
|
255
|
-
|
|
256
|
-
With uvx (no installation needed):
|
|
257
|
-
```bash
|
|
258
|
-
uvx --from agent-skill-manager sm install
|
|
259
|
-
# Enter URL: https://github.com/user/repo/tree/main/skills/example-skill
|
|
260
|
-
# Save locally? Yes
|
|
261
|
-
# Category: productivity
|
|
262
|
-
# Deploy? Yes
|
|
263
|
-
# Select agents: Claude Code, Cursor
|
|
264
|
-
# Deployment: Global
|
|
265
|
-
```
|
|
266
|
-
|
|
267
|
-
Or with installed version:
|
|
268
|
-
```bash
|
|
269
|
-
sm install
|
|
270
|
-
# Follow the same prompts as above
|
|
271
|
-
```
|
|
272
|
-
|
|
273
|
-
### Update all skills
|
|
274
|
-
```bash
|
|
275
|
-
sm update --all
|
|
276
|
-
# Selects all agents with GitHub-sourced skills
|
|
277
|
-
# Downloads latest versions
|
|
278
|
-
# Updates metadata timestamps
|
|
279
|
-
```
|
|
280
|
-
|
|
281
|
-
### List installed skills
|
|
282
|
-
```bash
|
|
283
|
-
sm list
|
|
284
|
-
# Shows table for each agent:
|
|
285
|
-
# Skill Name | Version/Updated | Source | GitHub URL
|
|
286
|
-
```
|
|
287
|
-
|
|
288
|
-
### Uninstall with safe delete
|
|
289
|
-
```bash
|
|
290
|
-
sm uninstall
|
|
291
|
-
# Select skills to remove
|
|
292
|
-
# Choose "Safe delete"
|
|
293
|
-
# Skills moved to .trash with timestamp
|
|
294
|
-
# Can be restored later with sm restore
|
|
295
|
-
```
|
|
296
|
-
|
|
297
|
-
## Best Practices
|
|
298
|
-
|
|
299
|
-
1. **Use safe delete by default** - You can always restore if needed
|
|
300
|
-
2. **Update regularly** - Run `sm update --all` periodically for bug fixes and improvements
|
|
301
|
-
3. **Save skills locally** - Keep a local copy in `skills/` for backup
|
|
302
|
-
4. **Organize with categories** - Use categories when saving locally for better organization
|
|
303
|
-
5. **Check versions** - Use `sm list` to see what's installed and outdated
|
|
304
|
-
|
|
305
|
-
## Troubleshooting
|
|
306
|
-
|
|
307
|
-
### Command not found: sm
|
|
308
|
-
Reinstall the package:
|
|
309
|
-
```bash
|
|
310
|
-
uv pip install -e .
|
|
311
|
-
```
|
|
312
|
-
|
|
313
|
-
### GitHub download fails
|
|
314
|
-
- Check internet connection
|
|
315
|
-
- Verify the GitHub URL is correct
|
|
316
|
-
- Ensure the URL points to a directory, not a file
|
|
317
|
-
- Check if the repository is public
|
|
318
|
-
|
|
319
|
-
### Skill not showing in agent
|
|
320
|
-
- Verify the agent is running
|
|
321
|
-
- Check deployment location (global vs project)
|
|
322
|
-
- Ensure the skill has a valid SKILL.md file
|
|
323
|
-
- Restart the agent if necessary
|
|
324
|
-
|
|
325
|
-
### Update fails
|
|
326
|
-
- The tool automatically restores from backup
|
|
327
|
-
- Check if the GitHub repository still exists
|
|
328
|
-
- Verify internet connection
|
|
329
|
-
- Try reinstalling: `sm uninstall` then `sm install`
|
|
330
|
-
|
|
331
|
-
## Technical Details
|
|
332
|
-
|
|
333
|
-
### Metadata Format
|
|
334
|
-
```json
|
|
335
|
-
{
|
|
336
|
-
"source": "github",
|
|
337
|
-
"github_url": "https://github.com/...",
|
|
338
|
-
"owner": "user",
|
|
339
|
-
"repo": "repo-name",
|
|
340
|
-
"branch": "main",
|
|
341
|
-
"path": "skills/skill-name",
|
|
342
|
-
"installed_at": "2026-01-20T14:30:52.123456+00:00",
|
|
343
|
-
"updated_at": "2026-01-20T14:30:52.123456+00:00"
|
|
344
|
-
}
|
|
345
|
-
```
|
|
346
|
-
|
|
347
|
-
### Agent Configuration
|
|
348
|
-
Each agent has defined paths for:
|
|
349
|
-
- **project**: Skills directory within current project
|
|
350
|
-
- **global**: User-wide skills directory
|
|
351
|
-
- See `src/skill_manager/agents.py` for complete mapping
|
|
352
|
-
|
|
353
|
-
### Update Process
|
|
354
|
-
1. Read skill metadata to get GitHub source
|
|
355
|
-
2. Download updated version to temporary location
|
|
356
|
-
3. Create backup of current version
|
|
357
|
-
4. Remove current version
|
|
358
|
-
5. Move updated version to skill location
|
|
359
|
-
6. Update metadata timestamp
|
|
360
|
-
7. Clean up temporary files
|
|
361
|
-
8. On failure: restore from backup
|
|
362
|
-
|
|
363
|
-
## Development
|
|
364
|
-
|
|
365
|
-
To add support for a new AI agent:
|
|
366
|
-
|
|
367
|
-
1. Edit `src/skill_manager/agents.py`
|
|
368
|
-
2. Add agent configuration:
|
|
369
|
-
```python
|
|
370
|
-
"agent-id": {
|
|
371
|
-
"name": "Agent Name",
|
|
372
|
-
"project": ".agent/skills/",
|
|
373
|
-
"global": "~/.agent/skills/",
|
|
374
|
-
}
|
|
375
|
-
```
|
|
376
|
-
3. Test with `sm list` to verify detection
|
|
377
|
-
|
|
378
|
-
## Related Resources
|
|
379
|
-
|
|
380
|
-
- Agent Skills Specification: https://agentskills.io/specification
|
|
381
|
-
- Report Issues: https://github.com/ackness/skill-manager/issues
|
|
382
|
-
- Skill Registry: https://agentskills.io
|
|
383
|
-
|
|
384
|
-
## License
|
|
385
|
-
|
|
386
|
-
MIT License - See LICENSE file for details
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|