agent-skill-manager 2.12.0 → 2.14.0

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 (68) hide show
  1. package/README.backup.md +1237 -0
  2. package/README.md +367 -681
  3. package/data/bundles/ios-release.json +45 -10
  4. package/data/skill-index/Affitor_affiliate-skills.json +171 -171
  5. package/data/skill-index/AvdLee_Core-Data-Agent-Skill.json +147 -0
  6. package/data/skill-index/AvdLee_Swift-Concurrency-Agent-Skill.json +147 -0
  7. package/data/skill-index/AvdLee_Swift-Testing-Agent-Skill.json +147 -0
  8. package/data/skill-index/AvdLee_SwiftUI-Agent-Skill.json +429 -0
  9. package/data/skill-index/AvdLee_Xcode-Build-Optimization-Agent-Skill.json +1121 -0
  10. package/data/skill-index/Dimillian_Skills.json +2605 -0
  11. package/data/skill-index/Egonex-AI_Understand-Anything.json +1317 -0
  12. package/data/skill-index/Eronred_aso-skills.json +129 -129
  13. package/data/skill-index/GPTomics_bioSkills.json +8673 -6081
  14. package/data/skill-index/Galaxy-Dawn_claude-scholar.json +144 -144
  15. package/data/skill-index/Imbad0202_academic-research-skills.json +41 -41
  16. package/data/skill-index/K-Dense-AI_claude-scientific-skills.json +1239 -633
  17. package/data/skill-index/Leonxlnx_taste-skill.json +47 -47
  18. package/data/skill-index/Master-cai_Research-Paper-Writing-Skills.json +4 -4
  19. package/data/skill-index/MiniMax-AI_skills.json +78 -78
  20. package/data/skill-index/Paramchoudhary_ResumeSkills.json +408 -68
  21. package/data/skill-index/addyosmani_agent-skills.json +3971 -0
  22. package/data/skill-index/affaan-m_everything-claude-code.json +1983 -1120
  23. package/data/skill-index/alirezarezvani_claude-skills.json +3214 -1707
  24. package/data/skill-index/anthropics_skills.json +67 -67
  25. package/data/skill-index/antonbabenko_terraform-skill.json +4 -4
  26. package/data/skill-index/badlogic_pi-skills.json +29 -29
  27. package/data/skill-index/briiirussell_cybersecurity-skills.json +314 -125
  28. package/data/skill-index/bytedance_deer-flow.json +86 -86
  29. package/data/skill-index/coreyhaines31_marketingskills.json +549 -191
  30. package/data/skill-index/davidondrej_skills.json +5050 -0
  31. package/data/skill-index/entireio_skills.json +196 -41
  32. package/data/skill-index/garrytan_gstack.json +8814 -0
  33. package/data/skill-index/github_awesome-copilot.json +2480 -1177
  34. package/data/skill-index/google_skills.json +6380 -522
  35. package/data/skill-index/heygen-com_hyperframes.json +958 -374
  36. package/data/skill-index/himself65_finance-skills.json +84 -84
  37. package/data/skill-index/ivan-magda_uikit-expert-skill.json +147 -0
  38. package/data/skill-index/kemiljk_fluid-design.json +4 -4
  39. package/data/skill-index/kepano_obsidian-skills.json +19 -19
  40. package/data/skill-index/luongnv89_asm.json +135 -9
  41. package/data/skill-index/luongnv89_idd.json +1186 -0
  42. package/data/skill-index/luongnv89_skills.json +1496 -667
  43. package/data/skill-index/mattpocock_skills.json +1900 -655
  44. package/data/skill-index/mvanhorn_last30days-skill.json +153 -0
  45. package/data/skill-index/nextlevelbuilder_ui-ux-pro-max-skill.json +124 -124
  46. package/data/skill-index/obra_superpowers.json +57 -57
  47. package/data/skill-index/romainsimon_paperasse.json +26 -26
  48. package/data/skill-index/rudrankriyam_app-store-connect-cli-skills.json +3726 -0
  49. package/data/skill-index/santifer_career-ops.json +798 -0
  50. package/data/skill-index/sickn33_antigravity-awesome-skills.json +75987 -36692
  51. package/data/skill-index/slavingia_skills.json +38 -38
  52. package/data/skill-index/twostraws_Swift-Concurrency-Agent-Skill.json +147 -0
  53. package/data/skill-index/twostraws_Swift-Testing-Agent-Skill.json +147 -0
  54. package/data/skill-index/twostraws_SwiftData-Agent-Skill.json +147 -0
  55. package/data/skill-index/twostraws_SwiftUI-Agent-Skill.json +147 -0
  56. package/data/skill-index/warpdotdev_oz-skills.json +52 -52
  57. package/data/skill-index/zarazhangrui_follow-builders.json +4 -4
  58. package/data/skill-index-resources.json +173 -2
  59. package/dist/agent-skill-manager.js +512 -402
  60. package/dist/{chunk-APSM2WG3.js → chunk-EOTW3XHQ.js} +1 -1
  61. package/dist/chunk-P5N3FU3P.js +3 -0
  62. package/dist/{chunk-5MMJGI6J.js → chunk-UZ62MVXU.js} +2 -2
  63. package/dist/config-KPT63KLE.js +2 -0
  64. package/dist/{lock-6S53S4SC.js → lock-NOXBNSZW.js} +1 -1
  65. package/dist/{src-NB45CVD2.js → src-IHHUE6TP.js} +1 -1
  66. package/package.json +1 -1
  67. package/dist/chunk-GHPE6SB3.js +0 -3
  68. package/dist/config-FRM3YOMA.js +0 -2
@@ -0,0 +1,1237 @@
1
+ <p align="center">
2
+ <picture>
3
+ <source media="(prefers-color-scheme: dark)" srcset="assets/logo/logo-full.svg" />
4
+ <source media="(prefers-color-scheme: light)" srcset="assets/logo/logo-black.svg" />
5
+ <img src="assets/logo/logo-full.svg" alt="asm" width="340" />
6
+ </picture>
7
+ </p>
8
+
9
+ <p align="center">
10
+ <a href="https://www.npmjs.com/package/agent-skill-manager"><img src="https://img.shields.io/npm/v/agent-skill-manager.svg" alt="npm version" /></a>
11
+ <a href="https://www.npmjs.com/package/agent-skill-manager"><img src="https://img.shields.io/npm/dm/agent-skill-manager.svg" alt="npm downloads" /></a>
12
+ <a href="https://github.com/luongnv89/agent-skill-manager/stargazers"><img src="https://img.shields.io/github/stars/luongnv89/agent-skill-manager.svg?style=social" alt="GitHub stars" /></a>
13
+ <a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-green.svg" alt="MIT License" /></a>
14
+ <a href="https://github.com/luongnv89/agent-skill-manager/actions"><img src="https://github.com/luongnv89/agent-skill-manager/actions/workflows/ci.yml/badge.svg" alt="CI" /></a>
15
+ <a href="https://nodejs.org"><img src="https://img.shields.io/badge/Node.js-%E2%89%A5%2018-339933.svg" alt="Node.js" /></a>
16
+ </p>
17
+
18
+ <h1 align="center">One tool to manage every AI agent's skills</h1>
19
+
20
+ <p align="center">
21
+ Stop juggling skill directories across Claude Code, Codex, Cursor, Windsurf, and 10+ other AI agents.<br/>
22
+ <strong>agent-skill-manager</strong> (<code>asm</code>) gives you a single TUI and CLI to install, search, audit, and organize all your agent skills — everywhere.
23
+ </p>
24
+
25
+ <p align="center">
26
+ <a href="#get-started-in-30-seconds"><strong>Get Started in 30 Seconds &rarr;</strong></a>
27
+ &nbsp;&nbsp;|&nbsp;&nbsp;
28
+ <a href="https://luongnv.com/asm/#/skills"><strong>Browse 3,800+ Skills Online &rarr;</strong></a>
29
+ </p>
30
+
31
+ ---
32
+
33
+ ### 🌐 ASM Catalog — Browse Skills in Your Browser
34
+
35
+ Don't want to install anything yet? **[Explore the full skill catalog online &rarr;](https://luongnv.com/asm/#/skills)**
36
+
37
+ Search, filter by category or repo, and copy install commands — all from a single page. No signup, no backend, no tracking. Share filtered views via URL (e.g. `#/skills?q=code-review&cat=development`).
38
+
39
+ ---
40
+
41
+ <p align="center">
42
+ <img src="assets/screenshots/tui.png" alt="agent-skill-manager TUI dashboard" width="800" />
43
+ </p>
44
+
45
+ ---
46
+
47
+ ## Your AI agent skills are a mess
48
+
49
+ You use Claude Code at work, Codex for side projects, and OpenClaw for experiments. Each tool keeps skills in its own hidden directory with its own conventions. Here's what that looks like in practice:
50
+
51
+ - **Skills scattered everywhere** — `~/.claude/skills/`, `~/.codex/skills/`, `~/.openclaw/skills/`, project-level `.claude/skills/`... you have the same skill installed three times and can't remember which version is where
52
+ - **No visibility** — there's no quick way to see what's installed, what's duplicated, or what's outdated across all your agents
53
+ - **Installing is manual and risky** — you clone repos, copy folders, hope the SKILL.md is valid, and pray you didn't just install something that exfiltrates your codebase
54
+
55
+ The more AI agents you use, the worse this gets. Every new tool adds another skill directory to babysit.
56
+
57
+ ## `asm` brings order to the chaos
58
+
59
+ **agent-skill-manager** is a single command that manages skills across every AI coding agent you use. One TUI. One CLI. Every agent.
60
+
61
+ - **See everything at once** — List, search, and filter skills across all providers and scopes from one dashboard. No more `ls`-ing through hidden directories.
62
+ - **Install from GitHub in one command** — `asm install github:user/repo` handles cloning, validation, and placement. Supports single-skill repos, multi-skill collections, subfolder URLs, and private repos via SSH.
63
+ - **Catch problems before they bite** — Built-in security scanning flags dangerous patterns (shell execution, network access, credential exposure, obfuscation) before you install. Duplicate audit finds and cleans redundant skills across providers.
64
+ - **Create, test, and publish skills** — Scaffold new skills with `asm init`, symlink them for live development with `asm link`, audit for security issues, verify metadata, and publish to the [ASM Registry](https://github.com/luongnv89/asm-registry) with a single command. [See the full local dev workflow &darr;](#build-test-and-ship-your-own-skills)
65
+ - **Works with every major agent** — 19 providers built-in: Claude Code, Codex, OpenClaw, Cursor, Windsurf, Cline, Roo Code, Continue, GitHub Copilot, Aider, OpenCode, Zed, Augment, Amp, Gemini CLI, Google Antigravity, Pi, Hermes, and a generic Agents provider. Add custom providers in seconds via config.
66
+ - **Two interfaces, one tool** — Full interactive TUI with keyboard navigation, search, and detail views. Or use the CLI with `--json` for scripting and automation.
67
+
68
+ <p align="center">
69
+ <img src="assets/screenshots/asm-stats.png" alt="asm stats — skill statistics across all providers" width="700" />
70
+ <br/><em>asm stats — totals, disk usage, and per-provider breakdown at a glance</em>
71
+ </p>
72
+
73
+ ## How it works
74
+
75
+ 1. **Install `asm`** — one command via npm or curl
76
+ 2. **Run `asm`** — it auto-discovers skills across all configured agent directories
77
+ 3. **Manage everything** — install, search, inspect, audit, and uninstall skills from the TUI or CLI
78
+ 4. **Stay safe** — security scan skills before installing, detect duplicates, and clean up with confidence
79
+
80
+ <p align="center">
81
+ <a href="#get-started-in-30-seconds"><strong>Start Managing Your Skills &rarr;</strong></a>
82
+ </p>
83
+
84
+ <p align="center">
85
+ <img src="assets/screenshots/asm-search-code-review.png" alt="asm search — find installed and available skills" width="700" />
86
+ <br/><em>asm search code-review — finds installed skills and suggests new ones from indexed repos</em>
87
+ </p>
88
+
89
+ ---
90
+
91
+ ## Build, Test, and Ship Your Own Skills
92
+
93
+ `asm` isn't just for consuming skills — it's the complete toolkit for **creating, developing, auditing, and testing skills locally** before you share them.
94
+
95
+ ### 1. Scaffold a new skill
96
+
97
+ Interactive mode — pick a target tool:
98
+
99
+ ```bash
100
+ asm init my-skill
101
+ ```
102
+
103
+ Scaffold directly into Claude Code:
104
+
105
+ ```bash
106
+ asm init my-skill -p claude
107
+ ```
108
+
109
+ Scaffold in a custom directory:
110
+
111
+ ```bash
112
+ asm init my-skill --path ./skills
113
+ ```
114
+
115
+ This creates a `my-skill/SKILL.md` with valid YAML frontmatter and a markdown template ready to fill in.
116
+
117
+ ### 2. Develop with live reload via symlink
118
+
119
+ `asm link` creates a symlink from your local skill directory into an agent's skill folder. Because it's a symlink, every edit you make to the source is immediately visible to the agent — no reinstall needed.
120
+
121
+ #### Target a specific tool
122
+
123
+ ```bash
124
+ # Link into Claude Code
125
+ asm link ./my-skill -p claude
126
+
127
+ # Link into Codex
128
+ asm link ./my-skill -p codex
129
+
130
+ # Interactive — pick the tool from a prompt
131
+ asm link ./my-skill
132
+ ```
133
+
134
+ #### Link multiple skills at once
135
+
136
+ Pass several paths in a single command to link them all in one step:
137
+
138
+ ```bash
139
+ asm link ./skill-a ./skill-b ./skill-c -p claude
140
+ ```
141
+
142
+ You can also point at a folder that contains multiple skills (each in its own subdirectory with a `SKILL.md`):
143
+
144
+ ```bash
145
+ # Link every skill found inside ./my-skills-folder
146
+ asm link ./my-skills-folder -p claude
147
+ ```
148
+
149
+ #### Override the symlink name
150
+
151
+ ```bash
152
+ asm link ./my-skill --name my-alias -p claude
153
+ ```
154
+
155
+ #### Force-overwrite an existing symlink
156
+
157
+ ```bash
158
+ asm link ./my-skill -p claude --force
159
+ ```
160
+
161
+ Edit the source files — changes are reflected immediately in the agent. This is the fastest iteration loop for skill development.
162
+
163
+ ### 3. Audit your skill for security issues
164
+
165
+ Audit an installed skill by name:
166
+
167
+ ```bash
168
+ asm audit security my-skill
169
+ ```
170
+
171
+ Audit a local directory:
172
+
173
+ ```bash
174
+ asm audit security ./path/to/my-skill
175
+ ```
176
+
177
+ Audit every installed skill:
178
+
179
+ ```bash
180
+ asm audit security --all
181
+ ```
182
+
183
+ The security scanner flags dangerous patterns — shell execution, network access, credential exposure, obfuscation, and external URLs — so you can catch problems before users install your skill.
184
+
185
+ ### 4. Inspect and verify metadata
186
+
187
+ Check name, version, description, file count:
188
+
189
+ ```bash
190
+ asm inspect my-skill
191
+ ```
192
+
193
+ Machine-readable output for CI:
194
+
195
+ ```bash
196
+ asm inspect my-skill --json
197
+ ```
198
+
199
+ ### 5. Test the install flow locally
200
+
201
+ Once your skill is on GitHub, verify that end users can install it cleanly.
202
+
203
+ Install your own skill as a user would:
204
+
205
+ ```bash
206
+ asm install github:you/awesome-skill
207
+ ```
208
+
209
+ Install to a specific tool:
210
+
211
+ ```bash
212
+ asm install github:you/awesome-skill -p claude
213
+ ```
214
+
215
+ Install a specific skill from a multi-skill repo:
216
+
217
+ ```bash
218
+ asm install github:you/skills --path skills/awesome-skill
219
+ ```
220
+
221
+ Force reinstall to test upgrades:
222
+
223
+ ```bash
224
+ asm install github:you/awesome-skill --force
225
+ ```
226
+
227
+ Non-interactive install (useful for CI):
228
+
229
+ ```bash
230
+ asm install github:you/awesome-skill -p claude --yes --json
231
+ ```
232
+
233
+ This catches issues that local development misses — broken repo structure, missing files, invalid frontmatter in a clean install context.
234
+
235
+ ### 6. Publish to the ASM Registry
236
+
237
+ Once your skill is ready and on GitHub, submit it to the [ASM Registry](https://github.com/luongnv89/asm-registry) so anyone can install it by name:
238
+
239
+ ```bash
240
+ asm publish ./my-skill
241
+ ```
242
+
243
+ This runs a security audit, generates a signed manifest, forks the registry, and opens a pull request automatically. Once merged, your skill is globally discoverable:
244
+
245
+ ```bash
246
+ # Anyone can install it by name — no URL needed
247
+ asm install my-skill
248
+ ```
249
+
250
+ Preview what the manifest will look like before submitting:
251
+
252
+ ```bash
253
+ asm publish --dry-run ./my-skill
254
+ ```
255
+
256
+ Override security warnings (caution: review findings first):
257
+
258
+ ```bash
259
+ asm publish --force ./my-skill
260
+ ```
261
+
262
+ Skip confirmation in CI:
263
+
264
+ ```bash
265
+ asm publish --yes ./my-skill
266
+ ```
267
+
268
+ > **Requires:** [`gh` CLI](https://cli.github.com) authenticated with `gh auth login`. The publish command uses `gh` to fork the registry, create a branch, write the manifest, and open the PR — all without leaving your terminal.
269
+
270
+ ### Typical local development workflow
271
+
272
+ 1. **Scaffold** — `asm init awesome-skill -p claude`
273
+ 2. Edit your `SKILL.md`
274
+ 3. **Link for live testing** — `asm link ./awesome-skill -p claude`
275
+ 4. Test with your AI agent
276
+ 5. **Security audit** — `asm audit security awesome-skill`
277
+ 6. **Verify metadata** — `asm inspect awesome-skill`
278
+ 7. **Score quality** — `asm eval ./awesome-skill`
279
+ 8. Push to GitHub
280
+ 9. **Verify install flow** — `asm install github:you/awesome-skill`
281
+ 10. **Publish to registry** — `asm publish ./awesome-skill`
282
+
283
+ Whether you're building skills for yourself or publishing them for the community, `asm` gives you the full create → develop → audit → ship pipeline in one tool.
284
+
285
+ ---
286
+
287
+ ## Skill Verification
288
+
289
+ Skills indexed by `asm` are automatically evaluated against a set of verification criteria. Skills that pass all criteria receive a **verified** badge in the catalog and `"verified": true` in the index JSON. Skills that fail any criterion are still indexed but marked as unverified.
290
+
291
+ ### Verification Criteria
292
+
293
+ A skill must satisfy **all four** of the following to be verified:
294
+
295
+ 1. **Valid frontmatter** -- The SKILL.md file must contain YAML frontmatter with both a `name` and a `description` field. Empty or whitespace-only values fail this check.
296
+
297
+ 2. **Meaningful body content** -- The markdown body (everything after the frontmatter block) must contain at least 20 characters of instruction text. A SKILL.md that is only frontmatter with no real guidance for the agent will fail.
298
+
299
+ 3. **No malicious patterns** -- The full SKILL.md content is scanned for dangerous code patterns:
300
+ - `atob()` calls (runtime base64 decoding / obfuscation)
301
+ - Suspicious base64-encoded strings (40+ character base64 blocks with padding)
302
+ - Hex-escape sequences (4+ consecutive `\xNN` escapes)
303
+ - Hardcoded credentials (`API_KEY`, `SECRET_KEY`, or `PASSWORD` assignments)
304
+
305
+ 4. **Proper structure** -- The skill directory must exist and contain a `SKILL.md` file that the ingestion pipeline can read.
306
+
307
+ ### How to Reproduce Locally
308
+
309
+ You can verify your skill before publishing:
310
+
311
+ ```bash
312
+ # Index your repo -- verification runs automatically during ingestion
313
+ asm index ingest github:your-user/your-repo
314
+
315
+ # Check the output JSON for the verified field
316
+ asm index search "your-skill" --json
317
+ ```
318
+
319
+ Each indexed skill in the output JSON includes `"verified": true` or `"verified": false`. If verification fails, the ingestion debug log (set `ASM_DEBUG=1`) prints the specific reasons.
320
+
321
+ ### Quality Evaluation (`asm eval`)
322
+
323
+ Static verification tells you the SKILL.md is well-formed. `asm eval` goes further: the built-in `quality` provider runs a scored rubric over structure, frontmatter, clarity, prompt engineering, context efficiency, safety, testability, and naming — and emits per-category scores plus concrete suggestions for improvement. Zero setup, zero API keys, zero external binaries.
324
+
325
+ ```bash
326
+ # Score the skill and print recommendations
327
+ asm eval ./my-skill
328
+
329
+ # CI-friendly machine-readable output
330
+ asm eval ./my-skill --machine
331
+
332
+ # Apply deterministic auto-fixes to SKILL.md
333
+ asm eval ./my-skill --fix
334
+
335
+ # List registered eval providers
336
+ asm eval-providers list
337
+ ```
338
+
339
+ The eval surface is a pluggable provider framework: each provider implements a common `EvalProvider` contract and resolves via semver range. See [`docs/eval-providers.md`](./docs/eval-providers.md) for the provider model.
340
+
341
+ ---
342
+
343
+ ## ASM Registry — Install and Publish Skills by Name
344
+
345
+ The [ASM Registry](https://github.com/luongnv89/asm-registry) is the curated index of community-published skills. Once a skill is listed, anyone can install it by name — no GitHub URL needed.
346
+
347
+ ### Install from the registry
348
+
349
+ ```bash
350
+ # Install by bare name (searches the registry)
351
+ asm install code-review
352
+
353
+ # Install by scoped name (author/skill — always unambiguous)
354
+ asm install luongnv89/code-review
355
+
356
+ # Force a fresh registry fetch (bypasses the 1-hour cache)
357
+ asm install code-review --no-cache
358
+ ```
359
+
360
+ `asm install` resolves the name against the registry index, downloads the manifest, clones the exact pinned commit, and installs the skill to your agent.
361
+
362
+ ### Publish your skill to the registry
363
+
364
+ ```bash
365
+ asm publish ./my-skill
366
+ ```
367
+
368
+ The publish pipeline:
369
+
370
+ 1. **Validates** your `SKILL.md` frontmatter (name, description, version)
371
+ 2. **Security audit** — blocks dangerous skills automatically; warns on risky patterns
372
+ 3. **Generates a manifest** with the current commit SHA and a `skill_path` for multi-skill repos
373
+ 4. **Opens a PR** against [luongnv89/asm-registry](https://github.com/luongnv89/asm-registry) via the `gh` CLI
374
+
375
+ The registry CI validates schema, checks author identity, runs a duplicate check, typosquat detection, and an independent security scan before any maintainer reviews. Once merged, the index rebuilds automatically and your skill is live.
376
+
377
+ | Flag | Description |
378
+ | ----------- | ------------------------------------------ |
379
+ | `--dry-run` | Preview the manifest without creating a PR |
380
+ | `--force` | Override warning-level security findings |
381
+ | `--yes` | Skip the confirmation prompt |
382
+ | `--machine` | Output as a machine-readable JSON envelope |
383
+
384
+ ### How registry resolution works
385
+
386
+ When you run `asm install code-review`:
387
+
388
+ 1. `asm` fetches the registry index (cached for 1 hour at `~/.config/agent-skill-manager/registry-cache.json`)
389
+ 2. Finds the manifest for `code-review` — including the pinned `commit` and `skill_path`
390
+ 3. Clones the repository at that exact commit and navigates to the skill subdirectory
391
+ 4. Installs as if you had run `asm install github:author/repo#commit:skill_path`
392
+
393
+ If multiple authors publish a skill with the same name, `asm` shows a disambiguation prompt. Use a scoped name (`author/skill`) to skip it.
394
+
395
+ ---
396
+
397
+ ## Get Started in 30 Seconds
398
+
399
+ ### npm (recommended)
400
+
401
+ ```bash
402
+ npm install -g agent-skill-manager
403
+ ```
404
+
405
+ > Runs on **Node.js ≥ 18** for both the CLI and the interactive TUI. No other runtime required.
406
+
407
+ ### One-liner install
408
+
409
+ ```bash
410
+ curl -sSL https://raw.githubusercontent.com/luongnv89/agent-skill-manager/main/install.sh | bash
411
+ ```
412
+
413
+ This installs `agent-skill-manager` globally. Then just run:
414
+
415
+ ```bash
416
+ asm
417
+ ```
418
+
419
+ <p align="center">
420
+ <a href="#cli-commands"><strong>See All Commands &rarr;</strong></a>
421
+ </p>
422
+
423
+ <a id="troubleshooting"></a>
424
+
425
+ ### Shadowed installs
426
+
427
+ If you have multiple `asm` binaries on `PATH` (for example, a leftover install from an older package manager), shells resolve whichever appears first and a fresh upgrade can be silently shadowed.
428
+
429
+ **Diagnose:** `asm --version` detects and warns when it sees multiple `asm` binaries on `PATH`. For a full report, run `asm doctor` — it lists the resolved path and any shadowed installs.
430
+
431
+ **Fix:** remove the stale install with your package manager, then re-run `asm --version` to confirm only one binary is left.
432
+
433
+ ---
434
+
435
+ ## Open-Source Skill Collections
436
+
437
+ A curated list of skill repositories you can install with a single command. Over **2,800 skills** available across these collections:
438
+
439
+ ### Top agent skills repositories
440
+
441
+ ASM now indexes the requested top starred agent-skill collections: [`obra/superpowers`](https://github.com/obra/superpowers), [`anthropics/skills`](https://github.com/anthropics/skills), [`garrytan/gstack`](https://github.com/garrytan/gstack), [`Egonex-AI/Understand-Anything`](https://github.com/Egonex-AI/Understand-Anything), [`addyosmani/agent-skills`](https://github.com/addyosmani/agent-skills), [`mattpocock/skills`](https://github.com/mattpocock/skills), [`santifer/career-ops`](https://github.com/santifer/career-ops), [`nextlevelbuilder/ui-ux-pro-max-skill`](https://github.com/nextlevelbuilder/ui-ux-pro-max-skill), [`Leonxlnx/taste-skill`](https://github.com/Leonxlnx/taste-skill), and [`mvanhorn/last30days-skill`](https://github.com/mvanhorn/last30days-skill). Use `asm search <term>` to discover individual skills, then install a collection with `asm install github:owner/repo`.
442
+
443
+ > **Last updated:** 2026-06-18
444
+
445
+ | Repository | Description | Stars | Skills |
446
+ | ----------------------------------------------------------------------------------- | ------------------------------------------------------------------- | -----: | -----: |
447
+ | [anthropic-skills](https://github.com/anthropics/skills) | Official Agent Skills from Anthropic | 95,957 | 18 |
448
+ | [superpowers](https://github.com/obra/superpowers) | Agentic skills framework & development methodology | 89,816 | 14 |
449
+ | [everything-claude-code](https://github.com/affaan-m/everything-claude-code) | Performance optimization system for Claude Code, Codex, and beyond | 81,392 | 183 |
450
+ | [agency-agents](https://github.com/msitarzewski/agency-agents) | Specialized expert agents with personality and proven deliverables | 50,749 | — |
451
+ | [ui-ux-pro-max-skill](https://github.com/nextlevelbuilder/ui-ux-pro-max-skill) | Design intelligence for building professional UI/UX | 43,112 | 7 |
452
+ | [antigravity-awesome-skills](https://github.com/sickn33/antigravity-awesome-skills) | 1,000+ battle-tested skills for Claude Code, Cursor, and more | 25,047 | 1,322 |
453
+ | [marketingskills](https://github.com/coreyhaines31/marketingskills) | Marketing skills — CRO, copywriting, SEO, analytics, growth | 14,099 | 33 |
454
+ | [agentskills](https://github.com/agentskills/agentskills) | Specification and documentation for Agent Skills | 13,342 | — |
455
+ | [claude-skills](https://github.com/alirezarezvani/claude-skills) | 192 skills for engineering, marketing, product, compliance, C-level | 7,434 | 451 |
456
+ | [taste-skill](https://github.com/Leonxlnx/taste-skill) | Gives your AI good taste — stops generic, boring output | 3,389 | 7 |
457
+ | [affiliate-skills](https://github.com/Affitor/affiliate-skills) | Full affiliate marketing funnel: research to deploy | 99 | 48 |
458
+ | [skills](https://github.com/luongnv89/skills) | Reusable skills to supercharge your AI agents | 1 | 35 |
459
+
460
+ Install any collection with an interactive picker:
461
+
462
+ ```bash
463
+ asm install github:anthropics/skills
464
+ ```
465
+
466
+ Or install everything at once:
467
+
468
+ ```bash
469
+ asm install github:anthropics/skills --all
470
+ ```
471
+
472
+ <p align="center">
473
+ <img src="assets/screenshots/asm-inspect-oss-ready.png" alt="asm inspect — detailed skill information" width="700" />
474
+ <br/><em>asm inspect oss-ready — version, creator, and every tool installation at once</em>
475
+ </p>
476
+
477
+ ---
478
+
479
+ ## Supported Agent Tools
480
+
481
+ `asm` ships with **19 built-in providers**, all enabled by default. Disable any you don't need via `asm config edit`.
482
+
483
+ | Tool | Global Path | Project Path | Default |
484
+ | ------------------ | --------------------------------- | ----------------------- | :-----: |
485
+ | Claude Code | `~/.claude/skills/` | `.claude/skills/` | enabled |
486
+ | Codex | `~/.codex/skills/` | `.codex/skills/` | enabled |
487
+ | OpenClaw | `~/.openclaw/skills/` | `.openclaw/skills/` | enabled |
488
+ | Agents (generic) | `~/.agents/skills/` | `.agents/skills/` | enabled |
489
+ | Cursor | `~/.cursor/rules/` | `.cursor/rules/` | enabled |
490
+ | Windsurf | `~/.windsurf/rules/` | `.windsurf/rules/` | enabled |
491
+ | Cline | `~/Documents/Cline/Rules/` | `.clinerules/` | enabled |
492
+ | Roo Code | `~/.roo/rules/` | `.roo/rules/` | enabled |
493
+ | Continue | `~/.continue/rules/` | `.continue/rules/` | enabled |
494
+ | GitHub Copilot | `~/.github/instructions/` | `.github/instructions/` | enabled |
495
+ | Aider | `~/.aider/skills/` | `.aider/skills/` | enabled |
496
+ | OpenCode | `~/.config/opencode/skills/` | `.opencode/skills/` | enabled |
497
+ | Zed | `~/.config/zed/prompt_overrides/` | `.zed/rules/` | enabled |
498
+ | Augment | `~/.augment/rules/` | `.augment/rules/` | enabled |
499
+ | Amp | `~/.amp/skills/` | `.amp/skills/` | enabled |
500
+ | Gemini CLI | `~/.gemini/skills/` | `.gemini/skills/` | enabled |
501
+ | Google Antigravity | `~/.antigravity/skills/` | `.antigravity/skills/` | enabled |
502
+ | Pi | `~/.pi/skills/` | `.pi/skills/` | enabled |
503
+ | Hermes | `~/.hermes/skills/` | `.hermes/skills/` | enabled |
504
+
505
+ Disable a provider — opens config in `$EDITOR`, set `"enabled": false` for any provider:
506
+
507
+ ```bash
508
+ asm config edit
509
+ ```
510
+
511
+ Need a tool not listed? Add a custom provider entry to the config.
512
+
513
+ ---
514
+
515
+ ## FAQ
516
+
517
+ **Is it free?**
518
+ Yes. `asm` is MIT licensed and free forever. No accounts, no telemetry, no paywalls.
519
+
520
+ **Is it actively maintained?**
521
+ Yes — actively developed with frequent tagged releases (46 and counting, latest v2.11.0). Check the [changelog](docs/CHANGELOG.md) for the full history.
522
+
523
+ **Which AI agents does it support?**
524
+ 19 providers built-in: Claude Code, Codex, OpenClaw, Cursor, Windsurf, Cline, Roo Code, Continue, GitHub Copilot, Aider, OpenCode, Zed, Augment, Amp, Gemini CLI, Google Antigravity, Pi, Hermes, and a generic Agents provider. All 19 are enabled by default; disable any you don't need via `asm config edit`. You can also add any custom agent that stores skills as directories with a `SKILL.md` file.
525
+
526
+ **How does it compare to managing skills manually?**
527
+ Manual management means remembering where each agent stores skills, cloning repos by hand, checking for duplicates yourself, and having no security scanning. `asm` automates all of that with one command.
528
+
529
+ <p align="center">
530
+ <img src="assets/screenshots/asm-audit.png" alt="asm audit — duplicate detection across providers" width="700" />
531
+ <br/><em>asm audit — finds duplicate groups and tells you exactly which to keep</em>
532
+ </p>
533
+
534
+ **Can I use it with private repos?**
535
+ Yes. Use `--transport ssh` or `--transport auto` to clone private repos via SSH.
536
+
537
+ **Is it safe to install skills from GitHub?**
538
+ `asm` includes built-in security scanning that flags dangerous patterns (shell execution, network access, credential exposure, obfuscation) before installation. Run `asm audit security github:user/repo` to scan any skill before installing.
539
+
540
+ <p align="center">
541
+ <img src="assets/screenshots/asm-audit-security-oss-ready.png" alt="asm audit security — security scanning report" width="700" />
542
+ <br/><em>asm audit security oss-ready — flags external URLs, shell execution, and credential access</em>
543
+ </p>
544
+
545
+ **What's the SKILL.md format?**
546
+ Every skill is a directory containing a `SKILL.md` file with YAML frontmatter (name, description, version) followed by markdown instructions the AI agent loads at runtime. Run `asm init my-skill` to scaffold one.
547
+
548
+ ---
549
+
550
+ ## Start Managing Your Skills Today
551
+
552
+ You're already using AI agents. You're already installing skills. The only question is whether you keep doing it manually — or let `asm` handle it.
553
+
554
+ MIT licensed. Free forever. One install command.
555
+
556
+ <p align="center">
557
+ <a href="#get-started-in-30-seconds"><strong>Install agent-skill-manager &rarr;</strong></a>
558
+ </p>
559
+
560
+ ---
561
+
562
+ <details>
563
+ <summary><strong>CLI Commands</strong></summary>
564
+
565
+ ### Interactive TUI
566
+
567
+ ```bash
568
+ asm
569
+ ```
570
+
571
+ ### Commands
572
+
573
+ | Command | Description |
574
+ | ------------------------------- | ----------------------------------------------------- |
575
+ | `asm list` | List all discovered skills |
576
+ | `asm search <query>` | Search by name/description/provider |
577
+ | `asm inspect <skill-name>` | Show detailed info for a skill |
578
+ | `asm install <source>` | Install a skill from GitHub or the registry |
579
+ | `asm publish [path]` | Publish a skill to the ASM Registry |
580
+ | `asm uninstall <skill-name>` | Remove a skill (with confirmation) |
581
+ | `asm init <name>` | Scaffold a new skill with SKILL.md template |
582
+ | `asm link <path> [<path2> ...]` | Symlink one or more local skills for live development |
583
+ | `asm audit` | Detect duplicate skills |
584
+ | `asm audit security <name>` | Run security audit on a skill |
585
+ | `asm eval <skill>` | Score a skill and print improvement suggestions |
586
+ | `asm eval-providers list` | List registered eval providers and versions |
587
+ | `asm stats` | Show aggregate skill metrics dashboard |
588
+ | `asm export` | Export skill inventory as JSON manifest |
589
+ | `asm index ingest <repo>` | Index a skill repo for searching |
590
+ | `asm index search <query>` | Search indexed skills |
591
+ | `asm index list` | List indexed repositories |
592
+ | `asm index remove <owner/repo>` | Remove a repo from the index |
593
+ | `asm bundle list` | List saved or pre-defined bundles (`--predefined`) |
594
+ | `asm bundle install <name>` | Install every skill in a bundle in one pass |
595
+ | `asm bundle create <name>` | Create a bundle from installed skills |
596
+ | `asm bundle show <name>` | Show bundle details and skill list |
597
+ | `asm bundle modify <name>` | Add/remove skills or update bundle metadata |
598
+ | `asm bundle export <name>` | Export a bundle to a JSON file |
599
+ | `asm bundle remove <name>` | Remove a saved bundle |
600
+ | `asm config show` | Print current config |
601
+ | `asm config path` | Print config file path |
602
+ | `asm config reset` | Reset config to defaults |
603
+ | `asm config edit` | Open config in $EDITOR |
604
+
605
+ ### Global Options
606
+
607
+ ```text
608
+ -h, --help Show help for any command
609
+ -v, --version Print version and exit
610
+ --json Output as JSON (list, search, inspect, audit)
611
+ -s, --scope <scope> Filter: global, project, or both (default: both)
612
+ --sort <field> Sort by: name, version, or location (default: name)
613
+ -y, --yes Skip confirmation prompts
614
+ --no-color Disable ANSI colors
615
+ ```
616
+
617
+ ### Examples
618
+
619
+ List all global skills sorted by provider location:
620
+
621
+ ```bash
622
+ asm list --scope global --sort location
623
+ ```
624
+
625
+ When you have many skills installed, `asm list` offers condensed views:
626
+
627
+ ```bash
628
+ asm list --summary # counts by tool/scope/effort only
629
+ asm list --compact # one line per skill
630
+ asm list --group-by tool # group rows under tool headers
631
+ asm list --limit 20 # show only the first 20 rows
632
+ ```
633
+
634
+ Search for skills and output JSON:
635
+
636
+ ```bash
637
+ asm search "code review" --json
638
+ ```
639
+
640
+ Inspect a specific skill:
641
+
642
+ ```bash
643
+ asm inspect my-skill
644
+ ```
645
+
646
+ Remove duplicates automatically:
647
+
648
+ ```bash
649
+ asm audit --yes
650
+ ```
651
+
652
+ Security audit a skill before installing:
653
+
654
+ ```bash
655
+ asm audit security github:user/repo
656
+ ```
657
+
658
+ Audit all installed skills:
659
+
660
+ ```bash
661
+ asm audit security --all
662
+ ```
663
+
664
+ Score a skill with the static quality provider:
665
+
666
+ ```bash
667
+ asm eval ./my-skill
668
+ ```
669
+
670
+ List registered eval providers:
671
+
672
+ ```bash
673
+ asm eval-providers list
674
+ ```
675
+
676
+ Scaffold a skill, link it for live testing, audit, and inspect:
677
+
678
+ ```bash
679
+ asm init my-skill -p claude
680
+ ```
681
+
682
+ ```bash
683
+ # Link globally (available in all projects)
684
+ asm link ./my-skill -p claude
685
+
686
+ # Link multiple skills at once
687
+ asm link ./skill-a ./skill-b -p claude
688
+ ```
689
+
690
+ ```bash
691
+ asm audit security my-skill
692
+ ```
693
+
694
+ ```bash
695
+ asm inspect my-skill --json
696
+ ```
697
+
698
+ Uninstall without confirmation:
699
+
700
+ ```bash
701
+ asm uninstall old-skill --yes
702
+ ```
703
+
704
+ Index a skill repo and search it:
705
+
706
+ ```bash
707
+ asm index ingest github:anthropics/skills
708
+ ```
709
+
710
+ ```bash
711
+ asm index search "frontend design" --json
712
+ ```
713
+
714
+ **Skill bundles** — install a curated set of skills in one command. Pre-defined bundles ship with ASM for common workflows (frontend, devops, iOS release, content writing). Browse them at [luongnv.com/asm/#/bundles](https://luongnv.com/asm/#/bundles) or list them locally:
715
+
716
+ ```bash
717
+ asm bundle list --predefined
718
+ ```
719
+
720
+ Install every skill in a pre-defined bundle:
721
+
722
+ ```bash
723
+ asm bundle install frontend-dev
724
+ ```
725
+
726
+ Install from a bundle file (custom or shared):
727
+
728
+ ```bash
729
+ asm bundle install ./my-bundle.json
730
+ ```
731
+
732
+ Build a custom bundle from your installed skills, then export it to share:
733
+
734
+ ```bash
735
+ asm bundle create my-workflow
736
+ asm bundle export my-workflow ./my-workflow.json
737
+ ```
738
+
739
+ A bundle is a JSON file with a `name`, `description`, `author`, and a list of `skills` (each with `name` + `installUrl`). The schema is validated on install — see `src/utils/types.ts` (`BundleManifest`). You can also assemble a custom bundle visually on the website's [/bundles](https://luongnv.com/asm/#/bundles) page and export it as JSON.
740
+
741
+ **iOS/Swift catalog note:** ASM indexes public, installable Swift and Apple-platform skill repos from maintainers such as Hacking with Swift (`twostraws`), Antoine van der Lee (`AvdLee`), Dimillian, Rudrank Riyam, and Ivan Magda. Use `asm bundle install ios-release` for a curated SwiftUI, concurrency, testing, persistence, Xcode build, App Store, and release-management starter set, or search the catalog for `swift`, `swiftui`, `swift testing`, `uikit`, `swiftdata`, or `app store connect` to install individual skills. Sources that are private, landing-page-only, or do not expose discoverable `SKILL.md` content are not added as enabled catalog entries.
742
+
743
+ </details>
744
+
745
+ <details>
746
+ <summary><strong>Installing Skills from GitHub</strong></summary>
747
+
748
+ Install skills directly from GitHub repositories — supports both single-skill repos and multi-skill collections.
749
+
750
+ **Single-skill repo** (SKILL.md at root):
751
+
752
+ ```bash
753
+ asm install github:user/my-skill
754
+ ```
755
+
756
+ ```bash
757
+ asm install github:user/my-skill#v1.0.0 -p claude
758
+ ```
759
+
760
+ **Multi-skill repo** (skills in subdirectories):
761
+
762
+ ```bash
763
+ asm install github:user/skills --path skills/code-review
764
+ ```
765
+
766
+ ```bash
767
+ asm install github:user/skills --all -p claude -y
768
+ ```
769
+
770
+ Interactive picker:
771
+
772
+ ```bash
773
+ asm install github:user/skills
774
+ ```
775
+
776
+ **Subfolder URL** (auto-detects branch and path):
777
+
778
+ ```bash
779
+ asm install https://github.com/user/skills/tree/main/skills/agent-config
780
+ ```
781
+
782
+ ```bash
783
+ asm install github:user/skills#main:skills/agent-config
784
+ ```
785
+
786
+ **Private repos** (SSH transport):
787
+
788
+ ```bash
789
+ asm install github:user/private-skill --transport ssh
790
+ ```
791
+
792
+ Try HTTPS, fallback to SSH:
793
+
794
+ ```bash
795
+ asm install github:user/private-skill -t auto
796
+ ```
797
+
798
+ **Vercel skills CLI** (delegates to `npx skills add`, then registers in asm):
799
+
800
+ ```bash
801
+ asm install github:user/skills --method vercel --skill my-skill
802
+ ```
803
+
804
+ ```bash
805
+ asm install https://github.com/user/skills -m vercel --skill my-skill -y
806
+ ```
807
+
808
+ **Other options:**
809
+
810
+ ```bash
811
+ asm install github:user/my-skill --name custom-name
812
+ ```
813
+
814
+ ```bash
815
+ asm install github:user/my-skill --force
816
+ ```
817
+
818
+ ```bash
819
+ asm install github:user/my-skill -p claude --yes --json
820
+ ```
821
+
822
+ **Source format:** `github:owner/repo[#branch-or-tag]` or `github:owner/repo#ref:path` for subfolder installs. HTTPS GitHub URLs with `/tree/` paths are also supported — the branch and subfolder are auto-detected.
823
+
824
+ **Install flags:**
825
+
826
+ | Flag | Description |
827
+ | ------------------------ | ---------------------------------------------------------- |
828
+ | `-p, --tool <name>` | Target tool (claude, codex, cursor, windsurf, etc.) |
829
+ | `--name <name>` | Override skill directory name |
830
+ | `--path <subdir>` | Install a specific skill from a subdirectory |
831
+ | `--all` | Install all skills found in the repo |
832
+ | `-m, --method <method>` | Install method: `default` or `vercel` (default: `default`) |
833
+ | `--skill <name>` | Alias for `--path` (Vercel skills CLI compatibility) |
834
+ | `-t, --transport <mode>` | Transport: `https`, `ssh`, or `auto` (default: `auto`) |
835
+ | `-f, --force` | Overwrite if skill already exists |
836
+ | `-y, --yes` | Skip confirmation prompt |
837
+ | `--json` | Output result as JSON |
838
+
839
+ **Multi-skill repo support:** `asm` scans for skills in subdirectories (up to 5 levels deep). Repos with only nested skills use that scan by default. Repos with **both** a root `SKILL.md` and nested skills install the root skill by default; use `--all` to install every discovered skill (root plus nested). In interactive mode, discovery shows a numbered picker. Use `--path` to target a specific skill.
840
+
841
+ **Indexing (`asm index ingest` / `npm run preindex`):** Discovery always includes a root `SKILL.md` when present **and** any nested skills in subdirectories, so curated indexes do not silently drop skills when a repo adds a root-level skill.
842
+
843
+ The install command clones the repository, validates `SKILL.md` files, scans for security warnings, previews skill metadata, and installs to the selected provider's global skill directory. Requires `git` on PATH.
844
+
845
+ </details>
846
+
847
+ <details>
848
+ <summary><strong>TUI Keyboard Shortcuts</strong></summary>
849
+
850
+ | Key | Action |
851
+ | -------------- | ------------------------------------- |
852
+ | `↑/↓` or `j/k` | Navigate skill list |
853
+ | `Enter` | View skill details |
854
+ | `d` | Uninstall selected skill |
855
+ | `/` | Search / filter skills |
856
+ | `Esc` | Back / clear filter / close dialog |
857
+ | `Tab` | Cycle scope: Global → Project → Both |
858
+ | `s` | Cycle sort: Name → Version → Location |
859
+ | `r` | Refresh / rescan skills |
860
+ | `c` | Open configuration |
861
+ | `a` | Audit duplicates |
862
+ | `q` | Quit |
863
+ | `?` | Toggle help overlay |
864
+
865
+ </details>
866
+
867
+ <details>
868
+ <summary><strong>Configuration</strong></summary>
869
+
870
+ On first run, a config file is created at `~/.config/agent-skill-manager/config.json` with 19 default providers, all enabled:
871
+
872
+ ```json
873
+ {
874
+ "version": 1,
875
+ "providers": [
876
+ {
877
+ "name": "claude",
878
+ "label": "Claude Code",
879
+ "global": "~/.claude/skills",
880
+ "project": ".claude/skills",
881
+ "enabled": true
882
+ },
883
+ {
884
+ "name": "codex",
885
+ "label": "Codex",
886
+ "global": "~/.codex/skills",
887
+ "project": ".codex/skills",
888
+ "enabled": true
889
+ },
890
+ {
891
+ "name": "openclaw",
892
+ "label": "OpenClaw",
893
+ "global": "~/.openclaw/skills",
894
+ "project": ".openclaw/skills",
895
+ "enabled": true
896
+ },
897
+ {
898
+ "name": "agents",
899
+ "label": "Agents",
900
+ "global": "~/.agents/skills",
901
+ "project": ".agents/skills",
902
+ "enabled": true
903
+ },
904
+ {
905
+ "name": "cursor",
906
+ "label": "Cursor",
907
+ "global": "~/.cursor/rules",
908
+ "project": ".cursor/rules",
909
+ "enabled": false
910
+ },
911
+ {
912
+ "name": "windsurf",
913
+ "label": "Windsurf",
914
+ "global": "~/.windsurf/rules",
915
+ "project": ".windsurf/rules",
916
+ "enabled": false
917
+ },
918
+ {
919
+ "name": "cline",
920
+ "label": "Cline",
921
+ "global": "~/Documents/Cline/Rules",
922
+ "project": ".clinerules",
923
+ "enabled": false
924
+ },
925
+ {
926
+ "name": "roocode",
927
+ "label": "Roo Code",
928
+ "global": "~/.roo/rules",
929
+ "project": ".roo/rules",
930
+ "enabled": false
931
+ },
932
+ {
933
+ "name": "continue",
934
+ "label": "Continue",
935
+ "global": "~/.continue/rules",
936
+ "project": ".continue/rules",
937
+ "enabled": false
938
+ },
939
+ {
940
+ "name": "copilot",
941
+ "label": "GitHub Copilot",
942
+ "global": "~/.github/instructions",
943
+ "project": ".github/instructions",
944
+ "enabled": false
945
+ },
946
+ {
947
+ "name": "aider",
948
+ "label": "Aider",
949
+ "global": "~/.aider/skills",
950
+ "project": ".aider/skills",
951
+ "enabled": false
952
+ },
953
+ {
954
+ "name": "opencode",
955
+ "label": "OpenCode",
956
+ "global": "~/.config/opencode/skills",
957
+ "project": ".opencode/skills",
958
+ "enabled": false
959
+ },
960
+ {
961
+ "name": "zed",
962
+ "label": "Zed",
963
+ "global": "~/.config/zed/prompt_overrides",
964
+ "project": ".zed/rules",
965
+ "enabled": false
966
+ },
967
+ {
968
+ "name": "augment",
969
+ "label": "Augment",
970
+ "global": "~/.augment/rules",
971
+ "project": ".augment/rules",
972
+ "enabled": false
973
+ },
974
+ {
975
+ "name": "amp",
976
+ "label": "Amp",
977
+ "global": "~/.amp/skills",
978
+ "project": ".amp/skills",
979
+ "enabled": false
980
+ },
981
+ {
982
+ "name": "gemini",
983
+ "label": "Gemini CLI",
984
+ "global": "~/.gemini/skills",
985
+ "project": ".gemini/skills",
986
+ "enabled": false
987
+ },
988
+ {
989
+ "name": "antigravity",
990
+ "label": "Google Antigravity",
991
+ "global": "~/.antigravity/skills",
992
+ "project": ".antigravity/skills",
993
+ "enabled": false
994
+ }
995
+ ],
996
+ "customPaths": [],
997
+ "preferences": {
998
+ "defaultScope": "both",
999
+ "defaultSort": "name"
1000
+ }
1001
+ }
1002
+ ```
1003
+
1004
+ - **Enable providers** — Set `"enabled": true` to start scanning a provider
1005
+ - **Custom paths** — Add arbitrary directories via `customPaths`
1006
+ - **Disable providers** — Set `"enabled": false` to skip scanning a provider
1007
+ - **Preferences** — Set default scope and sort order
1008
+
1009
+ Manage config from the CLI (`asm config show|path|reset|edit`) or toggle providers in the TUI by pressing `c`.
1010
+
1011
+ </details>
1012
+
1013
+ <details>
1014
+ <summary><strong>SKILL.md Format</strong></summary>
1015
+
1016
+ Every skill is a directory containing a `SKILL.md` file. The file starts with a YAML frontmatter block followed by markdown instructions that the AI agent loads at runtime.
1017
+
1018
+ ### Frontmatter
1019
+
1020
+ ```yaml
1021
+ ---
1022
+ name: my-skill
1023
+ description: "A short description of what this skill does"
1024
+ license: "MIT"
1025
+ compatibility: "Claude Code, Codex"
1026
+ allowed-tools: Bash Read Grep Glob WebFetch
1027
+ effort: medium
1028
+ metadata:
1029
+ version: 1.0.0
1030
+ creator: "Your Name <you@example.com>"
1031
+ ---
1032
+ ```
1033
+
1034
+ | Field | Required | Description |
1035
+ | ------------------ | :------: | --------------------------------------------------- |
1036
+ | `name` | yes | Unique skill identifier (used in list/search) |
1037
+ | `description` | yes | One-line summary shown in listings |
1038
+ | `license` | no | SPDX license identifier (e.g., `MIT`, `Apache-2.0`) |
1039
+ | `compatibility` | no | Comma-separated list of compatible AI agents |
1040
+ | `allowed-tools` | no | Space or comma-delimited tool names the skill uses |
1041
+ | `effort` | no | Effort level: `low`, `medium`, `high`, or `max` |
1042
+ | `metadata.version` | no | Semver version string (defaults to `0.0.0`) |
1043
+ | `metadata.creator` | no | Author name and optional email |
1044
+
1045
+ > **Version resolution:** `asm` prefers `metadata.version` over a top-level `version` field. If neither is present, the version defaults to `0.0.0`. Both formats are supported for backward compatibility.
1046
+
1047
+ ### Body
1048
+
1049
+ The markdown body after the frontmatter is loaded by the AI agent as the skill's instructions. A typical structure:
1050
+
1051
+ ```markdown
1052
+ # my-skill
1053
+
1054
+ Describe what this skill does here.
1055
+
1056
+ ## When to Use
1057
+
1058
+ - Trigger conditions for this skill
1059
+
1060
+ ## Instructions
1061
+
1062
+ - Step-by-step instructions for the agent
1063
+ ```
1064
+
1065
+ ### Scaffold a new skill
1066
+
1067
+ Creates `my-skill/SKILL.md` in the default provider:
1068
+
1069
+ ```bash
1070
+ asm init my-skill
1071
+ ```
1072
+
1073
+ Creates in Claude Code's skill directory:
1074
+
1075
+ ```bash
1076
+ asm init my-skill -p claude
1077
+ ```
1078
+
1079
+ </details>
1080
+
1081
+ <details>
1082
+ <summary><strong>From Source</strong></summary>
1083
+
1084
+ ```bash
1085
+ git clone https://github.com/luongnv89/agent-skill-manager.git
1086
+ cd agent-skill-manager
1087
+ npm install
1088
+ ```
1089
+
1090
+ Bundle to `dist/`:
1091
+
1092
+ ```bash
1093
+ npm run build
1094
+ ```
1095
+
1096
+ Run from source (development):
1097
+
1098
+ ```bash
1099
+ npm start
1100
+ ```
1101
+
1102
+ ### Advanced Install
1103
+
1104
+ Download and inspect the install script before running:
1105
+
1106
+ ```bash
1107
+ curl -sSL https://raw.githubusercontent.com/luongnv89/agent-skill-manager/main/install.sh -o install.sh
1108
+ ```
1109
+
1110
+ ```bash
1111
+ less install.sh
1112
+ ```
1113
+
1114
+ ```bash
1115
+ bash install.sh
1116
+ ```
1117
+
1118
+ </details>
1119
+
1120
+ <details>
1121
+ <summary><strong>Project Structure</strong></summary>
1122
+
1123
+ ```text
1124
+ agent-skill-manager/
1125
+ ├── bin/ # CLI entry point (source)
1126
+ │ └── agent-skill-manager.ts
1127
+ ├── dist/ # Built bundle (npm package ships this)
1128
+ │ └── agent-skill-manager.js
1129
+ ├── scripts/
1130
+ │ └── build.ts # Build script with version injection
1131
+ ├── src/
1132
+ │ ├── index.tsx # TUI app bootstrap & keyboard handling (ink)
1133
+ │ ├── cli.ts # CLI command parser & dispatcher
1134
+ │ ├── config.ts # Config loading & saving
1135
+ │ ├── scanner.ts # Skill directory scanning & filtering
1136
+ │ ├── auditor.ts # Duplicate detection & reporting
1137
+ │ ├── installer.ts # GitHub skill installation pipeline
1138
+ │ ├── uninstaller.ts # Safe skill removal logic
1139
+ │ ├── formatter.ts # Output formatting (tables, detail, JSON)
1140
+ │ ├── utils/
1141
+ │ │ ├── types.ts # Shared TypeScript types
1142
+ │ │ ├── colors.ts # TUI color palette
1143
+ │ │ ├── version.ts # Version constant
1144
+ │ │ ├── frontmatter.ts # SKILL.md frontmatter parser
1145
+ │ │ └── editor.ts # $EDITOR command parser
1146
+ │ └── views/
1147
+ │ ├── dashboard.tsx # Main dashboard layout
1148
+ │ ├── skill-list.tsx # Scrollable skill list
1149
+ │ ├── skill-detail.tsx # Skill detail view
1150
+ │ ├── confirm.tsx # Uninstall confirmation dialog
1151
+ │ ├── duplicates.tsx # Duplicate audit view
1152
+ │ ├── config.tsx # In-TUI config editor
1153
+ │ └── help.tsx # Help view
1154
+ ├── docs/ # Extended documentation
1155
+ │ ├── ARCHITECTURE.md # System design & data flow
1156
+ │ ├── DEVELOPMENT.md # Local setup & debugging
1157
+ │ ├── DEPLOYMENT.md # Publishing & CI pipeline
1158
+ │ ├── CHANGELOG.md # Version history
1159
+ │ └── brand_kit.md # Logo, colors, typography
1160
+ ├── assets/
1161
+ │ ├── logo/ # SVG logos (full, mark, wordmark, icon, favicon)
1162
+ │ └── screenshots/ # TUI screenshots
1163
+ ├── install.sh # One-command installer (curl | bash)
1164
+ ├── package.json
1165
+ ├── tsconfig.json
1166
+ └── README.md
1167
+ ```
1168
+
1169
+ </details>
1170
+
1171
+ <details>
1172
+ <summary><strong>Tech Stack</strong></summary>
1173
+
1174
+ - **Runtime:** Node.js ≥ 18 (CLI and TUI both run on Node alone)
1175
+ - **Language:** TypeScript + TSX (ESNext, strict mode)
1176
+ - **Build:** esbuild (ships pre-built via npm)
1177
+ - **TUI Framework:** [Ink](https://github.com/vadimdemedes/ink) + [@inkjs/ui](https://github.com/vadimdemedes/ink-ui)
1178
+ - **Testing:** Vitest (+ ink-testing-library for TUI)
1179
+ - **CI:** GitHub Actions + pre-commit hooks
1180
+
1181
+ </details>
1182
+
1183
+ <details>
1184
+ <summary><strong>Documentation</strong></summary>
1185
+
1186
+ | Document | Description |
1187
+ | ---------------------------------------- | -------------------------------------------------- |
1188
+ | [Architecture](docs/ARCHITECTURE.md) | System design, components, and data flow |
1189
+ | [Eval Providers](docs/eval-providers.md) | Pluggable eval framework and how to add a provider |
1190
+ | [Development](docs/DEVELOPMENT.md) | Local setup, testing, and debugging |
1191
+ | [Deployment](docs/DEPLOYMENT.md) | Publishing and CI pipeline |
1192
+ | [Changelog](docs/CHANGELOG.md) | Version history |
1193
+ | [Brand Kit](docs/brand_kit.md) | Logo, colors, and typography |
1194
+ | [Contributing](CONTRIBUTING.md) | How to contribute |
1195
+ | [Security](SECURITY.md) | Vulnerability reporting |
1196
+ | [Code of Conduct](CODE_OF_CONDUCT.md) | Community guidelines |
1197
+
1198
+ </details>
1199
+
1200
+ ---
1201
+
1202
+ <!-- NOTE: The single source of truth for acknowledgements data is website/data/acknowledgements.json.
1203
+ When updating contributors or dependencies, edit that JSON file first, then sync this section and website/index.html. -->
1204
+
1205
+ ## Acknowledgements
1206
+
1207
+ ### Contributors
1208
+
1209
+ | Contributor | PRs |
1210
+ | ------------------------------------------ | ---------------------------------------------------------------------------------------------------------------- |
1211
+ | [@luongnv89](https://github.com/luongnv89) | [38 merged PRs](https://github.com/luongnv89/agent-skill-manager/pulls?q=is%3Apr+is%3Amerged+author%3Aluongnv89) |
1212
+ | [@Mordris](https://github.com/Mordris) | [#111](https://github.com/luongnv89/agent-skill-manager/pull/111) |
1213
+
1214
+ ### Dependencies
1215
+
1216
+ | Library | Description |
1217
+ | ------------------------------------------------------- | ------------------------------------------------------------------------------- |
1218
+ | [ink](https://github.com/vadimdemedes/ink) | React renderer for interactive command-line apps — powers the asm TUI |
1219
+ | [@inkjs/ui](https://github.com/vadimdemedes/ink-ui) | Prebuilt ink components (inputs, spinners, lists) used across the TUI views |
1220
+ | [react](https://github.com/facebook/react) | UI library backing the ink TUI components and the web catalog |
1221
+ | [react-dom](https://github.com/facebook/react) | React DOM renderer for the browser-based skill catalog |
1222
+ | [react-window](https://github.com/bvaughn/react-window) | Windowed list virtualization for the browser-based skill catalog |
1223
+ | [yaml](https://github.com/eemeli/yaml) | JavaScript parser and stringifier for YAML — used to parse SKILL.md frontmatter |
1224
+
1225
+ ---
1226
+
1227
+ ## Roadmap
1228
+
1229
+ Track our progress and upcoming features on the [project kanban board](https://github.com/users/luongnv89/projects/6). See [prd.md](prd.md) for the full product requirements and [tasks.md](tasks.md) for the sprint-based development plan.
1230
+
1231
+ ## Contributing
1232
+
1233
+ Contributions are welcome! See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
1234
+
1235
+ ## License
1236
+
1237
+ [MIT](LICENSE) — free to use, modify, and distribute. See the [LICENSE](LICENSE) file for details.