agent-skill-manager 0.1.3__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.
Files changed (22) hide show
  1. {agent_skill_manager-0.1.3 → agent_skill_manager-0.2.1}/.gitignore +0 -1
  2. {agent_skill_manager-0.1.3 → agent_skill_manager-0.2.1}/PKG-INFO +128 -28
  3. agent_skill_manager-0.2.1/README.md +368 -0
  4. {agent_skill_manager-0.1.3 → agent_skill_manager-0.2.1}/pyproject.toml +1 -1
  5. agent_skill_manager-0.2.1/skills/agent_skill_manager/SKILL.md +504 -0
  6. {agent_skill_manager-0.1.3 → agent_skill_manager-0.2.1}/src/skill_manager/__init__.py +17 -2
  7. agent_skill_manager-0.2.1/src/skill_manager/agents.py +325 -0
  8. {agent_skill_manager-0.1.3 → agent_skill_manager-0.2.1}/src/skill_manager/cli.py +563 -64
  9. {agent_skill_manager-0.1.3 → agent_skill_manager-0.2.1}/src/skill_manager/deployment.py +118 -7
  10. agent_skill_manager-0.2.1/src/skill_manager/github.py +326 -0
  11. {agent_skill_manager-0.1.3 → agent_skill_manager-0.2.1}/src/skill_manager/metadata.py +7 -5
  12. {agent_skill_manager-0.1.3 → agent_skill_manager-0.2.1}/src/skill_manager/removal.py +9 -10
  13. {agent_skill_manager-0.1.3 → agent_skill_manager-0.2.1}/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.1}/.pre-commit-config.yaml +0 -0
  18. {agent_skill_manager-0.1.3 → agent_skill_manager-0.2.1}/.python-version +0 -0
  19. {agent_skill_manager-0.1.3 → agent_skill_manager-0.2.1}/examples/.gitkeep +0 -0
  20. {agent_skill_manager-0.1.3 → agent_skill_manager-0.2.1}/scripts/.gitkeep +0 -0
  21. {agent_skill_manager-0.1.3 → agent_skill_manager-0.2.1}/src/skill_manager/validation.py +0 -0
  22. {agent_skill_manager-0.1.3 → agent_skill_manager-0.2.1}/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.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
@@ -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,78 @@ 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
+ | `--no-symlink` | Disable symlinks, copy files instead (symlinks on by default) |
203
+ | `--no-discover` | Disable auto-discovery (on by default) |
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
+ # 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
+
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
217
+
218
+ # Full CLI mode - no prompts
219
+ sm install https://github.com/user/repo/tree/main/skills/my-skill -a claude-code -t global
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
+
227
+ # Download to custom location
228
+ sm install https://github.com/user/repo/tree/main/skills/my-skill -d ./my-skills -a cursor
229
+ ```
230
+
231
+ ### Discover skills in a repository
232
+
233
+ ```bash
234
+ # Scan a repository to find all skills
235
+ sm discover https://github.com/cloudflare/skills
236
+ # Shows a table of all found skills with their paths
237
+ ```
238
+
239
+ ### Interactive mode (legacy)
155
240
 
156
241
  ```bash
157
242
  sm install
158
- # Enter URL: https://github.com/user/repo/tree/main/skills/example-skill
243
+ # Enter URL when prompted
159
244
  # Follow the prompts to save locally and deploy
160
245
  ```
161
246
 
@@ -187,6 +272,21 @@ sm uninstall
187
272
  sm restore
188
273
  ```
189
274
 
275
+ ### Using symlinks
276
+
277
+ Symlinks allow you to maintain a single copy of skills while deploying to multiple agents:
278
+
279
+ ```bash
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
285
+ ```
286
+
287
+ > [!NOTE]
288
+ > On Windows, symlinks require Developer Mode or administrator privileges. If symlinks are not supported, the tool will automatically fall back to copying.
289
+
190
290
  ## Version Tracking
191
291
 
192
292
  The tool uses two methods for version identification:
@@ -0,0 +1,368 @@
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
+ | `--no-symlink` | Disable symlinks, copy files instead (symlinks on by default) |
178
+ | `--no-discover` | Disable auto-discovery (on by default) |
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
+ # 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
+
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
192
+
193
+ # Full CLI mode - no prompts
194
+ sm install https://github.com/user/repo/tree/main/skills/my-skill -a claude-code -t global
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
+
202
+ # Download to custom location
203
+ sm install https://github.com/user/repo/tree/main/skills/my-skill -d ./my-skills -a cursor
204
+ ```
205
+
206
+ ### Discover skills in a repository
207
+
208
+ ```bash
209
+ # Scan a repository to find all skills
210
+ sm discover https://github.com/cloudflare/skills
211
+ # Shows a table of all found skills with their paths
212
+ ```
213
+
214
+ ### Interactive mode (legacy)
215
+
216
+ ```bash
217
+ sm install
218
+ # Enter URL when prompted
219
+ # Follow the prompts to save locally and deploy
220
+ ```
221
+
222
+ ### Update all skills
223
+
224
+ ```bash
225
+ sm update --all
226
+ # Automatically updates all skills installed from GitHub
227
+ ```
228
+
229
+ ### List installed skills with versions
230
+
231
+ ```bash
232
+ sm list
233
+ # Shows a table for each agent with:
234
+ # - Skill Name
235
+ # - Version/Updated timestamp
236
+ # - Source (GitHub/Local)
237
+ # - GitHub URL (for updatable skills)
238
+ ```
239
+
240
+ ### Safe delete and restore
241
+
242
+ ```bash
243
+ # Uninstall with safe delete (default)
244
+ sm uninstall
245
+
246
+ # Restore if needed
247
+ sm restore
248
+ ```
249
+
250
+ ### Using symlinks
251
+
252
+ Symlinks allow you to maintain a single copy of skills while deploying to multiple agents:
253
+
254
+ ```bash
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
260
+ ```
261
+
262
+ > [!NOTE]
263
+ > On Windows, symlinks require Developer Mode or administrator privileges. If symlinks are not supported, the tool will automatically fall back to copying.
264
+
265
+ ## Version Tracking
266
+
267
+ The tool uses two methods for version identification:
268
+
269
+ 1. **GitHub Metadata** (for installed skills)
270
+ - Tracks installation and update timestamps
271
+ - Stores repository information
272
+ - Enables automatic updates
273
+
274
+ 2. **File Modification Time** (for local skills)
275
+ - Uses SKILL.md modification time as fallback
276
+ - For skills without metadata
277
+
278
+ ## Directory Structure
279
+
280
+ ### Global Installation
281
+ Skills are available to all projects:
282
+ ```
283
+ ~/.claude/skills/ # Claude Code
284
+ ~/.cursor/skills/ # Cursor
285
+ ~/.codeium/windsurf/skills/ # Windsurf
286
+ # ... other agents
287
+ ```
288
+
289
+ ### Project Installation
290
+ Skills are only available in the current project:
291
+ ```
292
+ project-root/
293
+ .claude/skills/
294
+ .cursor/skills/
295
+ # ... other agents
296
+ ```
297
+
298
+ ## Configuration
299
+
300
+ Each skill installed from GitHub includes metadata in `.skill_metadata.json`:
301
+
302
+ ```json
303
+ {
304
+ "source": "github",
305
+ "github_url": "https://github.com/...",
306
+ "owner": "user",
307
+ "repo": "repo-name",
308
+ "branch": "main",
309
+ "path": "skills/skill-name",
310
+ "installed_at": "2026-01-20T14:30:52+00:00",
311
+ "updated_at": "2026-01-20T14:30:52+00:00"
312
+ }
313
+ ```
314
+
315
+ ## Development
316
+
317
+ ### Adding Support for New Agents
318
+
319
+ Edit `src/skill_manager/agents.py` and add the agent configuration:
320
+
321
+ ```python
322
+ "agent-id": {
323
+ "name": "Agent Name",
324
+ "project": ".agent/skills/",
325
+ "global": "~/.agent/skills/",
326
+ }
327
+ ```
328
+
329
+ ### Running Tests
330
+
331
+ ```bash
332
+ uv run pytest
333
+ ```
334
+
335
+ ### Code Formatting
336
+
337
+ ```bash
338
+ uv run ruff format .
339
+ uv run ruff check . --fix
340
+ ```
341
+
342
+ ## Contributing
343
+
344
+ Contributions are welcome! Please feel free to submit a Pull Request.
345
+
346
+ 1. Fork the repository
347
+ 2. Create your feature branch (`git checkout -b feature/amazing-feature`)
348
+ 3. Commit your changes (`git commit -m 'Add some amazing feature'`)
349
+ 4. Push to the branch (`git push origin feature/amazing-feature`)
350
+ 5. Open a Pull Request
351
+
352
+ ## Related Projects
353
+
354
+ - [Agent Skills Specification](https://agentskills.io/specification)
355
+ - [Agent Skills Registry](https://agentskills.io)
356
+
357
+ ## License
358
+
359
+ MIT License - See [LICENSE](LICENSE) file for details
360
+
361
+ ## Author
362
+
363
+ **ackness** - [ackness8@gmail.com](mailto:ackness8@gmail.com)
364
+
365
+ ## Acknowledgments
366
+
367
+ - Built following the [Agent Skills specification](https://agentskills.io/specification)
368
+ - 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.1"
4
4
  description = "CLI tool for managing AI agent skills across multiple platforms"
5
5
  authors = [
6
6
  { name = "ackness", email = "ackness8@gmail.com" }