agent-skill-manager 0.1.3__tar.gz → 0.2.0__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.
Files changed (22) hide show
  1. {agent_skill_manager-0.1.3 → agent_skill_manager-0.2.0}/.gitignore +0 -1
  2. {agent_skill_manager-0.1.3 → agent_skill_manager-0.2.0}/PKG-INFO +123 -28
  3. agent_skill_manager-0.2.0/README.md +363 -0
  4. {agent_skill_manager-0.1.3 → agent_skill_manager-0.2.0}/pyproject.toml +1 -1
  5. agent_skill_manager-0.2.0/skills/agent_skill_manager/SKILL.md +386 -0
  6. {agent_skill_manager-0.1.3 → agent_skill_manager-0.2.0}/src/skill_manager/__init__.py +17 -2
  7. agent_skill_manager-0.2.0/src/skill_manager/agents.py +325 -0
  8. {agent_skill_manager-0.1.3 → agent_skill_manager-0.2.0}/src/skill_manager/cli.py +559 -64
  9. {agent_skill_manager-0.1.3 → agent_skill_manager-0.2.0}/src/skill_manager/deployment.py +118 -7
  10. agent_skill_manager-0.2.0/src/skill_manager/github.py +326 -0
  11. {agent_skill_manager-0.1.3 → agent_skill_manager-0.2.0}/src/skill_manager/metadata.py +7 -5
  12. {agent_skill_manager-0.1.3 → agent_skill_manager-0.2.0}/src/skill_manager/removal.py +9 -10
  13. {agent_skill_manager-0.1.3 → agent_skill_manager-0.2.0}/uv.lock +1 -1
  14. agent_skill_manager-0.1.3/README.md +0 -268
  15. agent_skill_manager-0.1.3/src/skill_manager/agents.py +0 -137
  16. agent_skill_manager-0.1.3/src/skill_manager/github.py +0 -177
  17. {agent_skill_manager-0.1.3 → agent_skill_manager-0.2.0}/.pre-commit-config.yaml +0 -0
  18. {agent_skill_manager-0.1.3 → agent_skill_manager-0.2.0}/.python-version +0 -0
  19. {agent_skill_manager-0.1.3 → agent_skill_manager-0.2.0}/examples/.gitkeep +0 -0
  20. {agent_skill_manager-0.1.3 → agent_skill_manager-0.2.0}/scripts/.gitkeep +0 -0
  21. {agent_skill_manager-0.1.3 → agent_skill_manager-0.2.0}/src/skill_manager/validation.py +0 -0
  22. {agent_skill_manager-0.1.3 → agent_skill_manager-0.2.0}/tests/.gitkeep +0 -0
@@ -22,7 +22,6 @@
22
22
  .agent/skills/
23
23
  .github/skills/
24
24
  .factory/skills/
25
- skills/
26
25
 
27
26
  # Byte-compiled / optimized / DLL files
28
27
  __pycache__/
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agent-skill-manager
3
- Version: 0.1.3
3
+ Version: 0.2.0
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
@@ -36,28 +36,69 @@ A comprehensive CLI tool for managing AI agent skills across multiple platforms.
36
36
  ## Features
37
37
 
38
38
  - 📥 **Download** skills from GitHub with metadata tracking
39
- - 🚀 **Deploy** skills to multiple AI agents (global or project-level)
40
- - 🔄 **Update** skills automatically from GitHub sources
39
+ - **Discover** all skills in a repository automatically
40
+ - **Deploy** skills to multiple AI agents (global or project-level)
41
+ - � **Symlink** support - save disk space with symbolic links
42
+ - � **Update** skills automatically from GitHub sources
41
43
  - 🗑️ **Uninstall** with safe deletion (move to trash) or hard delete
42
44
  - ♻️ **Restore** deleted skills from trash
43
45
  - 📋 **List** all installed skills with version information
46
+ - ⚡ **CLI-first** - full command-line parameter support for automation
44
47
 
45
48
  ## Supported AI Agents
46
49
 
47
- - Claude Code
48
- - Cursor
49
- - Windsurf
50
- - OpenCode
51
- - GitHub Copilot
52
- - Goose
53
- - Gemini CLI
54
- - Roo Code
55
- - Kilo Code
56
- - Amp
57
- - Codex
58
- - Antigravity
59
- - Clawdbot
60
- - Droid
50
+ <!-- supported-agents:start -->
51
+ | Agent | `--agent` | Project Path | Global Path |
52
+ |-------|-----------|--------------|-------------|
53
+ | Amp, Kimi Code CLI | `amp`, `kimi-cli` | `.agents/skills/` | `~/.config/agents/skills/` |
54
+ | Antigravity | `antigravity` | `.agent/skills/` | `~/.gemini/antigravity/skills/` |
55
+ | Augment | `augment` | `.augment/rules/` | `~/.augment/rules/` |
56
+ | Claude Code | `claude-code` | `.claude/skills/` | `~/.claude/skills/` |
57
+ | OpenClaw | `openclaw` | `skills/` | `~/.moltbot/skills/` |
58
+ | Cline | `cline` | `.cline/skills/` | `~/.cline/skills/` |
59
+ | CodeBuddy | `codebuddy` | `.codebuddy/skills/` | `~/.codebuddy/skills/` |
60
+ | Codex | `codex` | `.agents/skills/` | `~/.codex/skills/` |
61
+ | Command Code | `command-code` | `.commandcode/skills/` | `~/.commandcode/skills/` |
62
+ | Continue | `continue` | `.continue/skills/` | `~/.continue/skills/` |
63
+ | Crush | `crush` | `.crush/skills/` | `~/.config/crush/skills/` |
64
+ | Cursor | `cursor` | `.cursor/skills/` | `~/.cursor/skills/` |
65
+ | Droid | `droid` | `.factory/skills/` | `~/.factory/skills/` |
66
+ | Gemini CLI | `gemini-cli` | `.agents/skills/` | `~/.gemini/skills/` |
67
+ | GitHub Copilot | `github-copilot` | `.agents/skills/` | `~/.copilot/skills/` |
68
+ | Goose | `goose` | `.goose/skills/` | `~/.config/goose/skills/` |
69
+ | Junie | `junie` | `.junie/skills/` | `~/.junie/skills/` |
70
+ | iFlow CLI | `iflow-cli` | `.iflow/skills/` | `~/.iflow/skills/` |
71
+ | Kilo Code | `kilo` | `.kilocode/skills/` | `~/.kilocode/skills/` |
72
+ | Kiro CLI | `kiro-cli` | `.kiro/skills/` | `~/.kiro/skills/` |
73
+ | Kode | `kode` | `.kode/skills/` | `~/.kode/skills/` |
74
+ | MCPJam | `mcpjam` | `.mcpjam/skills/` | `~/.mcpjam/skills/` |
75
+ | Mistral Vibe | `mistral-vibe` | `.vibe/skills/` | `~/.vibe/skills/` |
76
+ | Mux | `mux` | `.mux/skills/` | `~/.mux/skills/` |
77
+ | OpenCode | `opencode` | `.agents/skills/` | `~/.config/opencode/skills/` |
78
+ | OpenHands | `openhands` | `.openhands/skills/` | `~/.openhands/skills/` |
79
+ | Pi | `pi` | `.pi/skills/` | `~/.pi/agent/skills/` |
80
+ | Qoder | `qoder` | `.qoder/skills/` | `~/.qoder/skills/` |
81
+ | Qwen Code | `qwen-code` | `.qwen/skills/` | `~/.qwen/skills/` |
82
+ | Replit | `replit` | `.agents/skills/` | N/A (project-only) |
83
+ | Roo Code | `roo` | `.roo/skills/` | `~/.roo/skills/` |
84
+ | Trae | `trae` | `.trae/skills/` | `~/.trae/skills/` |
85
+ | Trae CN | `trae-cn` | `.trae/skills/` | `~/.trae-cn/skills/` |
86
+ | Windsurf | `windsurf` | `.windsurf/skills/` | `~/.codeium/windsurf/skills/` |
87
+ | Zencoder | `zencoder` | `.zencoder/skills/` | `~/.zencoder/skills/` |
88
+ | Neovate | `neovate` | `.neovate/skills/` | `~/.neovate/skills/` |
89
+ | Pochi | `pochi` | `.pochi/skills/` | `~/.pochi/skills/` |
90
+ | AdaL | `adal` | `.adal/skills/` | `~/.adal/skills/` |
91
+ <!-- supported-agents:end -->
92
+
93
+ > [!NOTE]
94
+ > **Kiro CLI users:** After installing skills, manually add them to your custom agent's `resources` in
95
+ > `.kiro/agents/<agent>.json`:
96
+ >
97
+ > ```json
98
+ > {
99
+ > "resources": ["skill://.kiro/skills/**/SKILL.md"]
100
+ > }
101
+ > ```
61
102
 
62
103
  ## Installation
63
104
 
@@ -128,34 +169,76 @@ uvx --from agent-skill-manager sm install
128
169
  uvx --from agent-skill-manager sm list
129
170
 
130
171
  # Or after installation, use sm command directly:
131
- sm install # Install a skill from GitHub
132
- sm list # List installed skills
133
- sm update --all # Update all skills
134
- sm deploy # Deploy local skills to agents
135
- sm uninstall # Uninstall a skill (safe delete)
172
+ sm install # Install a skill from GitHub (interactive)
173
+ sm list # List installed skills
174
+ sm update --all # Update all skills
175
+ sm deploy # Deploy local skills to agents
176
+ sm uninstall # Uninstall a skill (safe delete)
177
+ sm agents # List all supported agents
136
178
  ```
137
179
 
138
180
  ## Commands
139
181
 
140
182
  | Command | Description |
141
183
  |---------|-------------|
142
- | `sm download` | Download a skill from GitHub |
184
+ | `sm install [url]` | Download and deploy skills (with discovery) |
185
+ | `sm download [url]` | Download a skill from GitHub |
143
186
  | `sm deploy` | Deploy local skills to agents |
144
- | `sm install` | Download and deploy in one step |
187
+ | `sm discover [url]` | Discover all skills in a repository |
145
188
  | `sm uninstall` | Remove skills (safe delete/hard delete) |
146
189
  | `sm restore` | Restore deleted skills from trash |
147
- | `sm update` | Update selected skills from GitHub |
148
- | `sm update --all` | Update all GitHub-sourced skills |
190
+ | `sm update [--all]` | Update skills from GitHub |
149
191
  | `sm list` | Show installed skills with versions |
192
+ | `sm agents` | List all supported agents |
150
193
  | `sm --version` / `sm -v` | Show version information |
151
194
 
195
+ ## CLI Options
196
+
197
+ | Option | Description |
198
+ |--------|-------------|
199
+ | `-a, --agent AGENT` | Target agent(s), can be specified multiple times |
200
+ | `-t, --type TYPE` | Deployment type: `global` (default) or `project` |
201
+ | `-d, --dest PATH` | Custom destination directory for downloads |
202
+ | `--symlink` | Use symlinks instead of copying files |
203
+ | `--discover` | Discover and install all skills in repository |
204
+ | `--no-deploy` | Download only, skip deployment |
205
+ | `-y, --yes` | Skip confirmation prompts |
206
+
152
207
  ## Usage Examples
153
208
 
154
- ### Install a skill from GitHub
209
+ ### Install all skills from a repository
210
+
211
+ ```bash
212
+ # Discover and install all skills from a repository
213
+ sm install https://github.com/cloudflare/skills --discover -a windsurf -a cursor
214
+
215
+ # Use symlinks to save disk space (single source, multiple agents)
216
+ sm install https://github.com/cloudflare/skills --discover --symlink -a windsurf
217
+ ```
218
+
219
+ ### Install a single skill with CLI options
220
+
221
+ ```bash
222
+ # Full CLI mode - no prompts
223
+ sm install https://github.com/user/repo/tree/main/skills/my-skill -a claude-code -t global
224
+
225
+ # Download to custom location
226
+ sm install https://github.com/user/repo/tree/main/skills/my-skill -d ./my-skills -a cursor
227
+ ```
228
+
229
+ ### Discover skills in a repository
230
+
231
+ ```bash
232
+ # Scan a repository to find all skills
233
+ sm discover https://github.com/cloudflare/skills
234
+ # Shows a table of all found skills with their paths
235
+ ```
236
+
237
+ ### Interactive mode (legacy)
155
238
 
156
239
  ```bash
157
240
  sm install
158
- # Enter URL: https://github.com/user/repo/tree/main/skills/example-skill
241
+ # Enter URL when prompted
159
242
  # Follow the prompts to save locally and deploy
160
243
  ```
161
244
 
@@ -187,6 +270,18 @@ sm uninstall
187
270
  sm restore
188
271
  ```
189
272
 
273
+ ### Using symlinks
274
+
275
+ Symlinks allow you to maintain a single copy of skills while deploying to multiple agents:
276
+
277
+ ```bash
278
+ # Download skills to a central location and symlink to agents
279
+ sm install https://github.com/cloudflare/skills --discover -d ~/skills --symlink -a windsurf -a cursor -a claude-code
280
+ ```
281
+
282
+ > [!NOTE]
283
+ > On Windows, symlinks require Developer Mode or administrator privileges. If symlinks are not supported, the tool will automatically fall back to copying.
284
+
190
285
  ## Version Tracking
191
286
 
192
287
  The tool uses two methods for version identification:
@@ -0,0 +1,363 @@
1
+ # Agent Skill Manager
2
+
3
+ ALL codes are written by Claude Code.
4
+
5
+ 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.
6
+
7
+ [![PyPI version](https://badge.fury.io/py/agent-skill-manager.svg)](https://pypi.org/project/agent-skill-manager/)
8
+ [![Python 3.13+](https://img.shields.io/badge/python-3.13+-blue.svg)](https://www.python.org/downloads/)
9
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
10
+
11
+ ## Features
12
+
13
+ - 📥 **Download** skills from GitHub with metadata tracking
14
+ - � **Discover** all skills in a repository automatically
15
+ - � **Deploy** skills to multiple AI agents (global or project-level)
16
+ - � **Symlink** support - save disk space with symbolic links
17
+ - � **Update** skills automatically from GitHub sources
18
+ - 🗑️ **Uninstall** with safe deletion (move to trash) or hard delete
19
+ - ♻️ **Restore** deleted skills from trash
20
+ - 📋 **List** all installed skills with version information
21
+ - ⚡ **CLI-first** - full command-line parameter support for automation
22
+
23
+ ## Supported AI Agents
24
+
25
+ <!-- supported-agents:start -->
26
+ | Agent | `--agent` | Project Path | Global Path |
27
+ |-------|-----------|--------------|-------------|
28
+ | Amp, Kimi Code CLI | `amp`, `kimi-cli` | `.agents/skills/` | `~/.config/agents/skills/` |
29
+ | Antigravity | `antigravity` | `.agent/skills/` | `~/.gemini/antigravity/skills/` |
30
+ | Augment | `augment` | `.augment/rules/` | `~/.augment/rules/` |
31
+ | Claude Code | `claude-code` | `.claude/skills/` | `~/.claude/skills/` |
32
+ | OpenClaw | `openclaw` | `skills/` | `~/.moltbot/skills/` |
33
+ | Cline | `cline` | `.cline/skills/` | `~/.cline/skills/` |
34
+ | CodeBuddy | `codebuddy` | `.codebuddy/skills/` | `~/.codebuddy/skills/` |
35
+ | Codex | `codex` | `.agents/skills/` | `~/.codex/skills/` |
36
+ | Command Code | `command-code` | `.commandcode/skills/` | `~/.commandcode/skills/` |
37
+ | Continue | `continue` | `.continue/skills/` | `~/.continue/skills/` |
38
+ | Crush | `crush` | `.crush/skills/` | `~/.config/crush/skills/` |
39
+ | Cursor | `cursor` | `.cursor/skills/` | `~/.cursor/skills/` |
40
+ | Droid | `droid` | `.factory/skills/` | `~/.factory/skills/` |
41
+ | Gemini CLI | `gemini-cli` | `.agents/skills/` | `~/.gemini/skills/` |
42
+ | GitHub Copilot | `github-copilot` | `.agents/skills/` | `~/.copilot/skills/` |
43
+ | Goose | `goose` | `.goose/skills/` | `~/.config/goose/skills/` |
44
+ | Junie | `junie` | `.junie/skills/` | `~/.junie/skills/` |
45
+ | iFlow CLI | `iflow-cli` | `.iflow/skills/` | `~/.iflow/skills/` |
46
+ | Kilo Code | `kilo` | `.kilocode/skills/` | `~/.kilocode/skills/` |
47
+ | Kiro CLI | `kiro-cli` | `.kiro/skills/` | `~/.kiro/skills/` |
48
+ | Kode | `kode` | `.kode/skills/` | `~/.kode/skills/` |
49
+ | MCPJam | `mcpjam` | `.mcpjam/skills/` | `~/.mcpjam/skills/` |
50
+ | Mistral Vibe | `mistral-vibe` | `.vibe/skills/` | `~/.vibe/skills/` |
51
+ | Mux | `mux` | `.mux/skills/` | `~/.mux/skills/` |
52
+ | OpenCode | `opencode` | `.agents/skills/` | `~/.config/opencode/skills/` |
53
+ | OpenHands | `openhands` | `.openhands/skills/` | `~/.openhands/skills/` |
54
+ | Pi | `pi` | `.pi/skills/` | `~/.pi/agent/skills/` |
55
+ | Qoder | `qoder` | `.qoder/skills/` | `~/.qoder/skills/` |
56
+ | Qwen Code | `qwen-code` | `.qwen/skills/` | `~/.qwen/skills/` |
57
+ | Replit | `replit` | `.agents/skills/` | N/A (project-only) |
58
+ | Roo Code | `roo` | `.roo/skills/` | `~/.roo/skills/` |
59
+ | Trae | `trae` | `.trae/skills/` | `~/.trae/skills/` |
60
+ | Trae CN | `trae-cn` | `.trae/skills/` | `~/.trae-cn/skills/` |
61
+ | Windsurf | `windsurf` | `.windsurf/skills/` | `~/.codeium/windsurf/skills/` |
62
+ | Zencoder | `zencoder` | `.zencoder/skills/` | `~/.zencoder/skills/` |
63
+ | Neovate | `neovate` | `.neovate/skills/` | `~/.neovate/skills/` |
64
+ | Pochi | `pochi` | `.pochi/skills/` | `~/.pochi/skills/` |
65
+ | AdaL | `adal` | `.adal/skills/` | `~/.adal/skills/` |
66
+ <!-- supported-agents:end -->
67
+
68
+ > [!NOTE]
69
+ > **Kiro CLI users:** After installing skills, manually add them to your custom agent's `resources` in
70
+ > `.kiro/agents/<agent>.json`:
71
+ >
72
+ > ```json
73
+ > {
74
+ > "resources": ["skill://.kiro/skills/**/SKILL.md"]
75
+ > }
76
+ > ```
77
+
78
+ ## Installation
79
+
80
+ ### Recommended: Install with uv tool
81
+
82
+ The best way to install is using `uv tool`:
83
+
84
+ ```bash
85
+ # Install from PyPI
86
+ uv tool install agent-skill-manager
87
+
88
+ # Verify installation
89
+ sm --version
90
+
91
+ # Start using
92
+ sm install
93
+ ```
94
+
95
+ **Why uv tool?**
96
+ - Isolated environment (no package conflicts)
97
+ - Easy updates: `uv tool upgrade agent-skill-manager`
98
+ - Clean uninstall: `uv tool uninstall agent-skill-manager`
99
+ - Works across all projects
100
+
101
+ ### Alternative: Run Without Installing
102
+
103
+ For one-time use or testing:
104
+
105
+ ```bash
106
+ # Run directly with uvx (no installation needed)
107
+ uvx agent-skill-manager
108
+
109
+ # Or run specific commands
110
+ uvx --from agent-skill-manager sm install
111
+ uvx --from agent-skill-manager sm list
112
+ ```
113
+
114
+ ### Other Installation Methods
115
+
116
+ ```bash
117
+ # Using pip
118
+ pip install agent-skill-manager
119
+
120
+ # Using pipx (isolated like uv tool)
121
+ pipx install agent-skill-manager
122
+
123
+ # From source (for development)
124
+ git clone https://github.com/ackness/skill-manager.git
125
+ cd skill-manager
126
+ uv sync
127
+ uv pip install -e .
128
+ ```
129
+
130
+ ## Usage Methods Comparison
131
+
132
+ | Method | Command | Use Case |
133
+ |--------|---------|----------|
134
+ | **uvx (no install)** | `uvx --from agent-skill-manager sm install` | One-time use, testing, CI/CD |
135
+ | **uv tool install** | `uv tool install agent-skill-manager` then `sm install` | Regular use, isolated |
136
+ | **pip install** | `pip install agent-skill-manager` then `sm install` | Traditional installation |
137
+ | **From source** | `git clone ...` then `uv pip install -e .` | Development |
138
+
139
+ ## Quick Start
140
+
141
+ ```bash
142
+ # Run without installing (using uvx)
143
+ uvx --from agent-skill-manager sm install
144
+ uvx --from agent-skill-manager sm list
145
+
146
+ # Or after installation, use sm command directly:
147
+ sm install # Install a skill from GitHub (interactive)
148
+ sm list # List installed skills
149
+ sm update --all # Update all skills
150
+ sm deploy # Deploy local skills to agents
151
+ sm uninstall # Uninstall a skill (safe delete)
152
+ sm agents # List all supported agents
153
+ ```
154
+
155
+ ## Commands
156
+
157
+ | Command | Description |
158
+ |---------|-------------|
159
+ | `sm install [url]` | Download and deploy skills (with discovery) |
160
+ | `sm download [url]` | Download a skill from GitHub |
161
+ | `sm deploy` | Deploy local skills to agents |
162
+ | `sm discover [url]` | Discover all skills in a repository |
163
+ | `sm uninstall` | Remove skills (safe delete/hard delete) |
164
+ | `sm restore` | Restore deleted skills from trash |
165
+ | `sm update [--all]` | Update skills from GitHub |
166
+ | `sm list` | Show installed skills with versions |
167
+ | `sm agents` | List all supported agents |
168
+ | `sm --version` / `sm -v` | Show version information |
169
+
170
+ ## CLI Options
171
+
172
+ | Option | Description |
173
+ |--------|-------------|
174
+ | `-a, --agent AGENT` | Target agent(s), can be specified multiple times |
175
+ | `-t, --type TYPE` | Deployment type: `global` (default) or `project` |
176
+ | `-d, --dest PATH` | Custom destination directory for downloads |
177
+ | `--symlink` | Use symlinks instead of copying files |
178
+ | `--discover` | Discover and install all skills in repository |
179
+ | `--no-deploy` | Download only, skip deployment |
180
+ | `-y, --yes` | Skip confirmation prompts |
181
+
182
+ ## Usage Examples
183
+
184
+ ### Install all skills from a repository
185
+
186
+ ```bash
187
+ # Discover and install all skills from a repository
188
+ sm install https://github.com/cloudflare/skills --discover -a windsurf -a cursor
189
+
190
+ # Use symlinks to save disk space (single source, multiple agents)
191
+ sm install https://github.com/cloudflare/skills --discover --symlink -a windsurf
192
+ ```
193
+
194
+ ### Install a single skill with CLI options
195
+
196
+ ```bash
197
+ # Full CLI mode - no prompts
198
+ sm install https://github.com/user/repo/tree/main/skills/my-skill -a claude-code -t global
199
+
200
+ # Download to custom location
201
+ sm install https://github.com/user/repo/tree/main/skills/my-skill -d ./my-skills -a cursor
202
+ ```
203
+
204
+ ### Discover skills in a repository
205
+
206
+ ```bash
207
+ # Scan a repository to find all skills
208
+ sm discover https://github.com/cloudflare/skills
209
+ # Shows a table of all found skills with their paths
210
+ ```
211
+
212
+ ### Interactive mode (legacy)
213
+
214
+ ```bash
215
+ sm install
216
+ # Enter URL when prompted
217
+ # Follow the prompts to save locally and deploy
218
+ ```
219
+
220
+ ### Update all skills
221
+
222
+ ```bash
223
+ sm update --all
224
+ # Automatically updates all skills installed from GitHub
225
+ ```
226
+
227
+ ### List installed skills with versions
228
+
229
+ ```bash
230
+ sm list
231
+ # Shows a table for each agent with:
232
+ # - Skill Name
233
+ # - Version/Updated timestamp
234
+ # - Source (GitHub/Local)
235
+ # - GitHub URL (for updatable skills)
236
+ ```
237
+
238
+ ### Safe delete and restore
239
+
240
+ ```bash
241
+ # Uninstall with safe delete (default)
242
+ sm uninstall
243
+
244
+ # Restore if needed
245
+ sm restore
246
+ ```
247
+
248
+ ### Using symlinks
249
+
250
+ Symlinks allow you to maintain a single copy of skills while deploying to multiple agents:
251
+
252
+ ```bash
253
+ # Download skills to a central location and symlink to agents
254
+ sm install https://github.com/cloudflare/skills --discover -d ~/skills --symlink -a windsurf -a cursor -a claude-code
255
+ ```
256
+
257
+ > [!NOTE]
258
+ > On Windows, symlinks require Developer Mode or administrator privileges. If symlinks are not supported, the tool will automatically fall back to copying.
259
+
260
+ ## Version Tracking
261
+
262
+ The tool uses two methods for version identification:
263
+
264
+ 1. **GitHub Metadata** (for installed skills)
265
+ - Tracks installation and update timestamps
266
+ - Stores repository information
267
+ - Enables automatic updates
268
+
269
+ 2. **File Modification Time** (for local skills)
270
+ - Uses SKILL.md modification time as fallback
271
+ - For skills without metadata
272
+
273
+ ## Directory Structure
274
+
275
+ ### Global Installation
276
+ Skills are available to all projects:
277
+ ```
278
+ ~/.claude/skills/ # Claude Code
279
+ ~/.cursor/skills/ # Cursor
280
+ ~/.codeium/windsurf/skills/ # Windsurf
281
+ # ... other agents
282
+ ```
283
+
284
+ ### Project Installation
285
+ Skills are only available in the current project:
286
+ ```
287
+ project-root/
288
+ .claude/skills/
289
+ .cursor/skills/
290
+ # ... other agents
291
+ ```
292
+
293
+ ## Configuration
294
+
295
+ Each skill installed from GitHub includes metadata in `.skill_metadata.json`:
296
+
297
+ ```json
298
+ {
299
+ "source": "github",
300
+ "github_url": "https://github.com/...",
301
+ "owner": "user",
302
+ "repo": "repo-name",
303
+ "branch": "main",
304
+ "path": "skills/skill-name",
305
+ "installed_at": "2026-01-20T14:30:52+00:00",
306
+ "updated_at": "2026-01-20T14:30:52+00:00"
307
+ }
308
+ ```
309
+
310
+ ## Development
311
+
312
+ ### Adding Support for New Agents
313
+
314
+ Edit `src/skill_manager/agents.py` and add the agent configuration:
315
+
316
+ ```python
317
+ "agent-id": {
318
+ "name": "Agent Name",
319
+ "project": ".agent/skills/",
320
+ "global": "~/.agent/skills/",
321
+ }
322
+ ```
323
+
324
+ ### Running Tests
325
+
326
+ ```bash
327
+ uv run pytest
328
+ ```
329
+
330
+ ### Code Formatting
331
+
332
+ ```bash
333
+ uv run ruff format .
334
+ uv run ruff check . --fix
335
+ ```
336
+
337
+ ## Contributing
338
+
339
+ Contributions are welcome! Please feel free to submit a Pull Request.
340
+
341
+ 1. Fork the repository
342
+ 2. Create your feature branch (`git checkout -b feature/amazing-feature`)
343
+ 3. Commit your changes (`git commit -m 'Add some amazing feature'`)
344
+ 4. Push to the branch (`git push origin feature/amazing-feature`)
345
+ 5. Open a Pull Request
346
+
347
+ ## Related Projects
348
+
349
+ - [Agent Skills Specification](https://agentskills.io/specification)
350
+ - [Agent Skills Registry](https://agentskills.io)
351
+
352
+ ## License
353
+
354
+ MIT License - See [LICENSE](LICENSE) file for details
355
+
356
+ ## Author
357
+
358
+ **ackness** - [ackness8@gmail.com](mailto:ackness8@gmail.com)
359
+
360
+ ## Acknowledgments
361
+
362
+ - Built following the [Agent Skills specification](https://agentskills.io/specification)
363
+ - Supports all major AI coding assistants
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "agent-skill-manager"
3
- version = "0.1.3"
3
+ version = "0.2.0"
4
4
  description = "CLI tool for managing AI agent skills across multiple platforms"
5
5
  authors = [
6
6
  { name = "ackness", email = "ackness8@gmail.com" }