agent-skill-manager 2.14.0 → 2.15.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 (79) hide show
  1. package/README.md +313 -119
  2. package/data/skill-index/Affitor_affiliate-skills.json +2375 -323
  3. package/data/skill-index/AvdLee_Core-Data-Agent-Skill.json +44 -6
  4. package/data/skill-index/AvdLee_Swift-Concurrency-Agent-Skill.json +49 -11
  5. package/data/skill-index/AvdLee_Swift-Testing-Agent-Skill.json +44 -6
  6. package/data/skill-index/AvdLee_SwiftUI-Agent-Skill.json +100 -24
  7. package/data/skill-index/AvdLee_Xcode-Build-Optimization-Agent-Skill.json +262 -34
  8. package/data/skill-index/Dimillian_Skills.json +699 -91
  9. package/data/skill-index/Egonex-AI_Understand-Anything.json +578 -81
  10. package/data/skill-index/Eronred_aso-skills.json +1729 -209
  11. package/data/skill-index/GPTomics_bioSkills.json +27195 -5839
  12. package/data/skill-index/Galaxy-Dawn_claude-scholar.json +1966 -256
  13. package/data/skill-index/Imbad0202_academic-research-skills.json +256 -98
  14. package/data/skill-index/K-Dense-AI_claude-scientific-skills.json +13755 -5388
  15. package/data/skill-index/Leonxlnx_taste-skill.json +570 -76
  16. package/data/skill-index/Master-cai_Research-Paper-Writing-Skills.json +44 -6
  17. package/data/skill-index/MiniMax-AI_skills.json +1007 -133
  18. package/data/skill-index/Paramchoudhary_ResumeSkills.json +960 -124
  19. package/data/skill-index/ParthJadhav_app-store-screenshots.json +185 -0
  20. package/data/skill-index/addyosmani_agent-skills.json +1127 -209
  21. package/data/skill-index/affaan-m_everything-claude-code.json +17427 -5038
  22. package/data/skill-index/alirezarezvani_claude-skills.json +20317 -3276
  23. package/data/skill-index/anthropics_skills.json +1256 -168
  24. package/data/skill-index/antonbabenko_terraform-skill.json +44 -6
  25. package/data/skill-index/badlogic_pi-skills.json +349 -45
  26. package/data/skill-index/briiirussell_cybersecurity-skills.json +1261 -159
  27. package/data/skill-index/bytedance_deer-flow.json +1572 -224
  28. package/data/skill-index/cloudai-x_threejs-skills.json +2007 -0
  29. package/data/skill-index/coreyhaines31_marketingskills.json +2846 -638
  30. package/data/skill-index/davidondrej_skills.json +6213 -783
  31. package/data/skill-index/emilkowalski_skills.json +2302 -0
  32. package/data/skill-index/entireio_skills.json +561 -63
  33. package/data/skill-index/garrytan_gstack.json +3023 -419
  34. package/data/skill-index/github_awesome-copilot.json +30442 -8371
  35. package/data/skill-index/google_skills.json +12472 -1527
  36. package/data/skill-index/heygen-com_hyperframes.json +2420 -454
  37. package/data/skill-index/himself65_finance-skills.json +1614 -254
  38. package/data/skill-index/ivan-magda_uikit-expert-skill.json +44 -6
  39. package/data/skill-index/kemiljk_fluid-design.json +44 -6
  40. package/data/skill-index/kepano_obsidian-skills.json +217 -27
  41. package/data/skill-index/luongnv89_asm.json +1887 -34
  42. package/data/skill-index/luongnv89_idd.json +369 -103
  43. package/data/skill-index/luongnv89_skills.json +2051 -900
  44. package/data/skill-index/mattpocock_skills.json +1910 -1027
  45. package/data/skill-index/mvanhorn_last30days-skill.json +50 -12
  46. package/data/skill-index/nextlevelbuilder_ui-ux-pro-max-skill.json +324 -64
  47. package/data/skill-index/obra_superpowers.json +651 -125
  48. package/data/skill-index/oliver-zehentleitner_keep-the-why.json +185 -0
  49. package/data/skill-index/romainsimon_paperasse.json +273 -45
  50. package/data/skill-index/rudrankriyam_app-store-connect-cli-skills.json +1539 -243
  51. package/data/skill-index/santifer_career-ops.json +44 -657
  52. package/data/skill-index/sickn33_antigravity-awesome-skills.json +123142 -36221
  53. package/data/skill-index/slavingia_skills.json +436 -56
  54. package/data/skill-index/twostraws_Swift-Concurrency-Agent-Skill.json +44 -6
  55. package/data/skill-index/twostraws_Swift-Testing-Agent-Skill.json +44 -6
  56. package/data/skill-index/twostraws_SwiftData-Agent-Skill.json +44 -6
  57. package/data/skill-index/twostraws_SwiftUI-Agent-Skill.json +44 -6
  58. package/data/skill-index/warpdotdev_oz-skills.json +651 -81
  59. package/data/skill-index/zarazhangrui_follow-builders.json +44 -6
  60. package/data/skill-index-resources.json +38 -2
  61. package/dist/agent-skill-manager.js +683 -603
  62. package/dist/chunk-BQ4RW237.js +20 -0
  63. package/dist/chunk-LH2C3PE7.js +3 -0
  64. package/dist/chunk-LS24FFOX.js +3 -0
  65. package/dist/chunk-RSVWCEZR.js +2 -0
  66. package/dist/config-AZYQEQOQ.js +2 -0
  67. package/dist/devtools-2L45W5A2.js +11 -0
  68. package/dist/lock-NN2MADX7.js +2 -0
  69. package/dist/src-BD3KFE5H.js +119 -0
  70. package/package.json +48 -22
  71. package/README.backup.md +0 -1237
  72. package/dist/chunk-7BMOBFGJ.js +0 -2
  73. package/dist/chunk-EOTW3XHQ.js +0 -3
  74. package/dist/chunk-P5N3FU3P.js +0 -3
  75. package/dist/chunk-UZ62MVXU.js +0 -19
  76. package/dist/config-KPT63KLE.js +0 -2
  77. package/dist/devtools-6JCLZ364.js +0 -8
  78. package/dist/lock-NOXBNSZW.js +0 -2
  79. package/dist/src-IHHUE6TP.js +0 -108
package/README.md CHANGED
@@ -9,10 +9,10 @@
9
9
  <p align="center">
10
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
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>
12
+ <a href="https://github.com/luongnv89/asm/stargazers"><img src="https://img.shields.io/github/stars/luongnv89/asm.svg?style=social" alt="GitHub stars" /></a>
13
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>
14
+ <a href="https://github.com/luongnv89/asm/actions"><img src="https://github.com/luongnv89/asm/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%2022-339933.svg" alt="Node.js" /></a>
16
16
  </p>
17
17
 
18
18
  # CLI to install and manage agent skills
@@ -23,13 +23,15 @@
23
23
 
24
24
  ## Problems `asm` solves
25
25
 
26
- | Pain | Without `asm` | With `asm` |
27
- | ----------------------- | ----------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------- |
28
- | Scattered installs | Same skill copied into `~/.claude/skills/`, `~/.codex/skills/`, `~/.cursor/rules/` — different versions, no single view | One `asm list` across all 19 providers and scopes |
29
- | No inventory | `ls` through hidden dirs; no idea what is installed, duplicated, or outdated | `asm search`, `asm inspect`, `asm stats`, `asm audit` |
30
- | Risky manual installs | Clone repos, copy folders, hope `SKILL.md` is valid | `asm install` validates frontmatter, scans security, pins registry commits |
31
- | Agent-unfriendly output | Human-only copy-paste workflows | Structured JSON via `--json`; skip prompts with `--yes` |
32
- | New agent, new chore | Every tool adds another skill directory to track | Add or disable providers in one config file |
26
+ | Pain | Without `asm` | With `asm` |
27
+ | ------------------------- | ----------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------- |
28
+ | Scattered installs | Same skill copied into `~/.claude/skills/`, `~/.codex/skills/`, `~/.cursor/rules/` — different versions, no single view | One `asm list` across all 19 providers and scopes |
29
+ | No inventory | `ls` through hidden dirs; no idea what is installed, duplicated, or outdated | `asm search`, `asm inspect`, `asm stats`, `asm audit` |
30
+ | Invisible context cost | Every installed skill's description is resident in the agent's prompt on every message, whether or not it ever fires | `asm stats --tokens`, `asm audit residency` |
31
+ | Install just to read once | Installing is the only way to get a skill in front of an agent — and it stays resident forever afterwards | `asm get <skill>` prints the body and installs nothing |
32
+ | Risky manual installs | Clone repos, copy folders, hope `SKILL.md` is valid | `asm install` validates frontmatter, scans security, pins registry commits |
33
+ | Agent-unfriendly output | Human-only copy-paste workflows | Structured JSON via `--json`; skip prompts with `--yes` |
34
+ | New agent, new chore | Every tool adds another skill directory to track | Add or disable providers in one config file |
33
35
 
34
36
  ## At a glance
35
37
 
@@ -58,19 +60,29 @@ graph LR
58
60
  2. Run commands from your agent, shell, or CI — no prompts when you pass `--yes`.
59
61
  3. Parse JSON output to decide what to install, remove, or audit next.
60
62
 
63
+ ## Screenshots
64
+
65
+ <p align="center">
66
+ <img src="assets/screenshots/tui.png" alt="asm TUI — browsing installed skills across providers" width="800" />
67
+ <br/><em>The optional TUI (<code>asm</code> with no args) — filter, inspect, and audit skills across every provider from one dashboard.</em>
68
+ </p>
69
+
61
70
  ## Features
62
71
 
63
- | Feature | What you get |
64
- | ------------------------ | ------------------------------------------------------------------- |
65
- | Cross-provider inventory | `asm list --json` — every skill, every agent, one response |
66
- | One-command install | `asm install github:user/repo` or `asm install skill-name` |
67
- | Agent-parseable output | `--json` on list, search, inspect, install, audit |
68
- | Duplicate audit | `asm audit --yes` removes redundant skills non-interactively |
69
- | Security scan | `asm audit security` before install |
70
- | Authoring pipeline | `asm init`, `asm link`, `asm eval`, `asm publish` |
71
- | Bundles | `asm bundle install` curated sets in one pass |
72
- | Local library | `asm install --library` install once, `asm activate` per provider |
73
- | Cross-tool linking | Reinstall or symlink when a skill already exists in another tool |
72
+ | Feature | What you get |
73
+ | ------------------------ | -------------------------------------------------------------------- |
74
+ | Cross-provider inventory | `asm list --json` — every skill, every agent, one response |
75
+ | One-command install | `asm install github:user/repo` or `asm install skill-name` |
76
+ | Agent-parseable output | `--json` on list, search, inspect, install, audit |
77
+ | Duplicate audit | `asm audit --yes` removes redundant skills non-interactively |
78
+ | Attention budget | `asm stats --tokens` shows resident vs body token cost per tool |
79
+ | Residency audit | `asm audit residency` ranks skills to demote out of resident context |
80
+ | Reference tier | `asm get <skill>` delivers a body once, at zero residency |
81
+ | Security scan | `asm audit security` before install |
82
+ | Authoring pipeline | `asm init`, `asm link`, `asm eval`, `asm publish` |
83
+ | Bundles | `asm bundle install` — curated sets in one pass |
84
+ | Local library | `asm install --library` — install once, `asm activate` per provider |
85
+ | Cross-tool linking | Reinstall or symlink when a skill already exists in another tool |
74
86
 
75
87
  ## Getting started
76
88
 
@@ -98,26 +110,163 @@ Search installed and catalog skills:
98
110
  asm search "code review" --json
99
111
  ```
100
112
 
101
- Alternative install: `curl -sSL https://raw.githubusercontent.com/luongnv89/agent-skill-manager/main/install.sh | bash`
113
+ Alternative install: `curl -sSL https://raw.githubusercontent.com/luongnv89/asm/main/install.sh | bash`
102
114
 
103
- Node.js 18+ required. Optional TUI: run `asm` with no arguments.
115
+ Node.js 22+ required. Optional TUI: run `asm` with no arguments.
104
116
 
105
117
  ## Common tasks
106
118
 
107
- | Task | Command |
108
- | -------------------------- | ------------------------------------------------ |
109
- | Machine-readable inventory | `asm list --json` |
110
- | Skill metadata for agents | `asm inspect my-skill --json` |
111
- | Non-interactive install | `asm install code-review -p claude --yes --json` |
112
- | Remove duplicates | `asm audit --yes` |
113
- | Scan before install | `asm audit security github:user/repo` |
114
- | Scaffold a new skill | `asm init my-skill -p claude` |
115
- | Live dev via symlink | `asm link ./my-skill -p claude` |
116
- | Publish to registry | `asm publish ./my-skill --yes` |
117
- | Install a bundle | `asm bundle install frontend-dev --yes` |
119
+ | Task | Command |
120
+ | ----------------------------- | ------------------------------------------------ |
121
+ | Machine-readable inventory | `asm list --json` |
122
+ | Skill metadata for agents | `asm inspect my-skill --json` |
123
+ | Non-interactive install | `asm install code-review -p claude --yes --json` |
124
+ | Remove duplicates | `asm audit --yes` |
125
+ | See your context cost | `asm stats --tokens` |
126
+ | Find skills to demote | `asm audit residency` |
127
+ | Use a skill without residency | `asm get code-review` |
128
+ | Scan before install | `asm audit security github:user/repo` |
129
+ | Scaffold a new skill | `asm init my-skill -p claude` |
130
+ | Live dev via symlink | `asm link ./my-skill -p claude` |
131
+ | Publish to registry | `asm publish ./my-skill --yes` |
132
+ | Install a bundle | `asm bundle install frontend-dev --yes` |
118
133
 
119
134
  Full command reference, flags, and examples: [CLI Commands](#cli-commands). Catalog UI and bundles: [luongnv.com/asm](https://luongnv.com/asm/).
120
135
 
136
+ ## Attention budget
137
+
138
+ Disk is cheap; context is not. Every installed skill's frontmatter
139
+ `description` sits in the agent's system prompt on **every message**, whether or
140
+ not the skill ever fires. The full `SKILL.md` body only costs anything when the
141
+ skill actually fires.
142
+
143
+ `asm` reports the two separately — token counts are estimates and always render
144
+ with a leading `~`:
145
+
146
+ ```bash
147
+ asm stats --tokens # resident vs body tokens, per tool and per scope
148
+ asm stats --tokens --json # same data for scripts and agents
149
+ ```
150
+
151
+ ```text
152
+ Attention Budget
153
+ ----------------------------------------
154
+
155
+ Resident = frontmatter descriptions, paid on every message.
156
+ Bodies = full SKILL.md, paid only when a skill fires.
157
+
158
+ Tool Skills Resident Bodies
159
+ Claude Code 74 ~5k tokens ~281k tokens
160
+ Codex 10 ~736 tokens ~76k tokens
161
+ ---------------------------------------------
162
+ Total 84 ~5.7k tokens ~357k tokens
163
+
164
+ By Scope
165
+ global 71 ~4.9k tokens ~300k tokens
166
+ project 13 ~836 tokens ~57k tokens
167
+
168
+ Heaviest resident descriptions
169
+ claude-api ~1.2k tokens (claude, global)
170
+ docx ~233 tokens (claude, global)
171
+ pptx ~217 tokens (claude, global)
172
+ code-review ~198 tokens (claude, global)
173
+ frontend-design ~176 tokens (claude, project)
174
+ dataviz ~164 tokens (claude, global)
175
+ skill-creator ~151 tokens (claude, global)
176
+ xlsx ~143 tokens (claude, global)
177
+ pdf ~138 tokens (claude, global)
178
+ release-manager ~129 tokens (codex, global)
179
+
180
+ Median resident cost: ~48 tokens
181
+ Run asm audit residency for demotion advice
182
+ ```
183
+
184
+ ### Residency audit
185
+
186
+ `asm audit residency` ranks the installed skills that are not earning their
187
+ resident context and pairs each one with a command that works for how that
188
+ skill is actually installed. It only reports — nothing is deactivated,
189
+ disabled, or removed unless you run one of the suggested commands yourself.
190
+
191
+ ```bash
192
+ asm audit residency
193
+ asm audit residency --json
194
+ ```
195
+
196
+ The advice assumes this demotion ladder:
197
+
198
+ | Tier | `asm` mechanism | Residency |
199
+ | ------------------------- | ----------------------------------------- | ---------------------------- |
200
+ | Installed (auto-triggers) | provider directory / `asm activate` | description resident, always |
201
+ | Saved (adapt, no trigger) | `asm install --library`, `asm deactivate` | none until `asm activate` |
202
+ | Disabled (kept on disk) | `asm disable` (reverse with `asm enable`) | none |
203
+ | Reference (read on use) | `asm get` — nothing on disk at all | none |
204
+
205
+ Which command a candidate gets depends on how it is installed. `asm deactivate`
206
+ only works on a live symlink into the `asm` library, so it is suggested only
207
+ there; everything else gets `asm disable`, which is universal and reversible.
208
+ The `asm deactivate` path additionally gets `asm get <skill>` as a second
209
+ destination: deactivating removes the provider symlink but leaves the library
210
+ copy, so the body is still one command away. The `asm disable` path does not,
211
+ because disabling renames the canonical `SKILL.md` — for a library-linked skill
212
+ that is the library copy itself — leaving nothing for `asm get` to read.
213
+ Skills provided by plugin marketplaces are counted in the totals but never
214
+ listed as candidates — no `asm` command demotes them.
215
+
216
+ Two of the signals the report would like to use — trigger collision and
217
+ last-used counts — have no data source in `asm` yet. They are listed as
218
+ unavailable rather than silently dropped, so the report still works today.
219
+
220
+ No network calls, accounts, or telemetry are involved: both reports run
221
+ entirely against your local filesystem.
222
+
223
+ ### Reference tier: use a skill without installing it
224
+
225
+ Demoting a skill does not mean losing it. `asm get <skill>` resolves a skill and
226
+ writes its `SKILL.md` body to **stdout** — no provider directory, no library
227
+ entry, no residency. The skill is paid for once, at the point of use, and costs
228
+ nothing afterwards.
229
+
230
+ ```bash
231
+ asm get code-review # body to stdout
232
+ asm get code-review > /tmp/SKILL.md # save it without installing
233
+ asm get github:owner/repo:skills/review # any `asm install` shorthand
234
+ asm get code-review --json # name, description, tier, source, tokenCount, security, content
235
+ ```
236
+
237
+ That makes `asm` usable as delivery infrastructure, not only as an installer.
238
+ An agent can pull a skill in for a single task and drop it again:
239
+
240
+ ```bash
241
+ asm get code-review | your-agent --system-prompt-file -
242
+ ```
243
+
244
+ `<skill>` walks a resolution ladder, and the rung that answered is reported as
245
+ the `tier` so provenance is always visible:
246
+
247
+ | Order | Tier | Resolves |
248
+ | ----- | ----------- | ----------------------------------------------------- |
249
+ | 1 | `installed` | a skill already installed in one of your agents |
250
+ | 2 | `library` | a library skill, **including deactivated ones** |
251
+ | 3 | `index` | an indexed catalog skill, matched by exact name |
252
+ | 4 | `registry` | the ASM registry — same route as `asm install <name>` |
253
+
254
+ An explicit `github:owner/repo[#ref][:path]` shorthand, a GitHub URL, or a local
255
+ path skips the ladder. A name that matches more than one indexed repo or
256
+ registry author is never guessed: `asm get` exits non-zero and lists the
257
+ qualified candidates.
258
+
259
+ The catalog stores metadata, not bodies, so an `index`, `registry` or remote
260
+ `asm get` costs a shallow clone into a temp directory, which is deleted before
261
+ the command returns. Those fetches run the **same pre-install security scan
262
+ `asm install` runs**; the verdict goes to stderr and into `--json` under
263
+ `security`. It reports rather than blocks — `asm get` writes nothing — and
264
+ `--audit` prints the full `asm audit security` report for the fetched skill.
265
+
266
+ Output discipline: stdout carries the body (or, with `--json`, a single JSON
267
+ object) and nothing else, so piping and redirecting are safe. Provenance,
268
+ progress, and the security verdict go to stderr.
269
+
121
270
  ## FAQ
122
271
 
123
272
  **Is it free?**
@@ -399,43 +548,54 @@ Multiple `asm` binaries on `PATH` can shadow a fresh upgrade.
399
548
 
400
549
  ### Commands
401
550
 
402
- | Command | Description |
403
- | ------------------------------- | ------------------------------------ | ----------------------------------------- |
404
- | `asm list` | List all discovered skills |
405
- | `asm search <query>` | Search by name/description/provider |
406
- | `asm inspect <skill-name>` | Show detailed info for a skill |
407
- | `asm install <source>` | Install from GitHub or registry |
408
- | `asm publish [path]` | Publish to ASM Registry |
409
- | `asm uninstall <skill-name>` | Remove a skill |
410
- | `asm init <name>` | Scaffold a new skill |
411
- | `asm link <path> [<path2> ...]` | Symlink skills for live dev |
412
- | `asm audit` | Detect duplicate skills |
413
- | `asm audit security <name>` | Security audit |
414
- | `asm eval <skill>` | Score skill quality |
415
- | `asm eval-providers list` | List eval providers |
416
- | `asm stats` | Aggregate installed skill metrics |
417
- | `asm stats repo <repo>` | Per-repo indexed skill stats |
418
- | `asm stats author <owner>` | Per-author indexed skill stats |
419
- | `asm stats index` | Indexed catalog stats summary |
420
- | `asm activate <skill>` | Link a library skill into a provider |
421
- | `asm deactivate <skill>` | Remove a library activation symlink |
422
- | `asm library list | update` | Manage centrally installed library skills |
423
- | `asm export` | Export inventory as JSON |
424
- | `asm index ingest <repo>` | Index a skill repo |
425
- | `asm index search <query>` | Search indexed skills |
426
- | `asm index list` | List indexed repos |
427
- | `asm index remove <owner/repo>` | Remove repo from index |
428
- | `asm bundle list` | List bundles (`--predefined`) |
429
- | `asm bundle install <name>` | Install every skill in a bundle |
430
- | `asm bundle create <name>` | Create bundle from installed skills |
431
- | `asm bundle show <name>` | Show bundle details |
432
- | `asm bundle modify <name>` | Add/remove skills |
433
- | `asm bundle export <name>` | Export bundle to JSON |
434
- | `asm bundle remove <name>` | Remove saved bundle |
435
- | `asm config show` | Print config |
436
- | `asm config path` | Print config path |
437
- | `asm config reset` | Reset to defaults |
438
- | `asm config edit` | Open config in `$EDITOR` |
551
+ | Command | Description |
552
+ | ------------------------------- | ----------------------------------------- | ----------------------------------------- |
553
+ | `asm list` | List all discovered skills |
554
+ | `asm search <query>` | Search by name/description/provider |
555
+ | `asm inspect <skill-name>` | Show detailed info for a skill |
556
+ | `asm get <skill>` | Print a skill's body, install nothing |
557
+ | `asm install <source>` | Install from GitHub or registry |
558
+ | `asm publish [path]` | Publish to ASM Registry |
559
+ | `asm uninstall <skill-name>` | Remove a skill |
560
+ | `asm init <name>` | Scaffold a new skill |
561
+ | `asm link <path> [<path2> ...]` | Symlink skills for live dev |
562
+ | `asm audit` | Detect duplicate skills |
563
+ | `asm audit security <name>` | Security audit |
564
+ | `asm audit residency` | Rank skills that do not earn residency |
565
+ | `asm eval <skill>` | Score skill quality |
566
+ | `asm eval-providers list` | List eval providers |
567
+ | `asm stats` | Aggregate installed skill metrics |
568
+ | `asm stats repo <repo>` | Per-repo indexed skill stats |
569
+ | `asm stats author <owner>` | Per-author indexed skill stats |
570
+ | `asm stats index` | Indexed catalog stats summary |
571
+ | `asm activate <skill>` | Link a library skill into a provider |
572
+ | `asm deactivate <skill>` | Remove a library activation symlink |
573
+ | `asm library` | Manage centrally installed library skills |
574
+ | `asm library list` | List local library skills |
575
+ | `asm library update <skill>` | Update one local library skill |
576
+ | `asm library update --all` | Update all local library skills |
577
+ | `asm export` | Export inventory as JSON |
578
+ | `asm import <file>` | Import skills from exported manifest |
579
+ | `asm outdated` | Show outdated skills |
580
+ | `asm update [name...]` | Update outdated skills |
581
+ | `asm disable <target>` | Disable skill(s) without uninstalling |
582
+ | `asm enable <target>` | Re-enable disabled skill(s) |
583
+ | `asm index ingest <repo>` | Index a skill repo |
584
+ | `asm index search <query>` | Search indexed skills |
585
+ | `asm index list` | List indexed repos |
586
+ | `asm index remove <owner/repo>` | Remove repo from index |
587
+ | `asm bundle list` | List bundles (`--predefined`) |
588
+ | `asm bundle install <name>` | Install every skill in a bundle |
589
+ | `asm bundle create <name>` | Create bundle from installed skills |
590
+ | `asm bundle show <name>` | Show bundle details |
591
+ | `asm bundle modify <name>` | Add/remove skills |
592
+ | `asm bundle export <name>` | Export bundle to JSON |
593
+ | `asm bundle remove <name>` | Remove saved bundle |
594
+ | `asm config show` | Print config |
595
+ | `asm config path` | Print config path |
596
+ | `asm config reset` | Reset to defaults |
597
+ | `asm config edit` | Open config in `$EDITOR` |
598
+ | `asm doctor` | Run environment health checks and diagnostics |
439
599
 
440
600
  ### Global options
441
601
 
@@ -443,10 +603,16 @@ Multiple `asm` binaries on `PATH` can shadow a fresh upgrade.
443
603
  -h, --help Show help
444
604
  -v, --version Print version
445
605
  --json JSON output
606
+ --machine Stable machine-readable JSON envelope (v1)
446
607
  -s, --scope <scope> global, project, or both
608
+ -p, --tool <name> Filter by tool (list, search)
447
609
  --sort <field> name, version, or location
610
+ --flat Show one row per tool instance (list, search)
611
+ --model-invocable Only skills the model can invoke
612
+ --user-invocable Only skills the user can invoke
448
613
  -y, --yes Skip confirmations
449
614
  --no-color Disable ANSI colors
615
+ -V, --verbose Show debug output
450
616
  ```
451
617
 
452
618
  ### Examples
@@ -463,6 +629,12 @@ asm list --summary
463
629
  asm list --compact --group-by tool --limit 20
464
630
  ```
465
631
 
632
+ ```bash
633
+ asm list --model-invocable --user-invocable
634
+ ```
635
+
636
+ Listings and `asm inspect` show invocability as `model`, `user`, or `both` (never collapsed). `--model-invocable` and `--user-invocable` are independent; both flags keep skills that match both (typically `both`).
637
+
466
638
  ```bash
467
639
  asm search "code review" --json
468
640
  ```
@@ -479,6 +651,14 @@ asm audit security github:user/repo
479
651
  asm audit security --all
480
652
  ```
481
653
 
654
+ ```bash
655
+ asm stats --tokens
656
+ ```
657
+
658
+ ```bash
659
+ asm audit residency --json
660
+ ```
661
+
482
662
  ```bash
483
663
  asm eval ./my-skill
484
664
  ```
@@ -639,6 +819,27 @@ On first run, config is created at `~/.config/agent-skill-manager/config.json`:
639
819
  "project": ".codex/skills",
640
820
  "enabled": true
641
821
  },
822
+ {
823
+ "name": "opencode",
824
+ "label": "OpenCode",
825
+ "global": "~/.config/opencode/skills",
826
+ "project": ".opencode/skills",
827
+ "enabled": true
828
+ },
829
+ {
830
+ "name": "pi",
831
+ "label": "Pi",
832
+ "global": "~/.pi/skills",
833
+ "project": ".pi/skills",
834
+ "enabled": true
835
+ },
836
+ {
837
+ "name": "hermes",
838
+ "label": "Hermes",
839
+ "global": "~/.hermes/skills",
840
+ "project": ".hermes/skills",
841
+ "enabled": true
842
+ },
642
843
  {
643
844
  "name": "openclaw",
644
845
  "label": "OpenClaw",
@@ -658,91 +859,84 @@ On first run, config is created at `~/.config/agent-skill-manager/config.json`:
658
859
  "label": "Cursor",
659
860
  "global": "~/.cursor/rules",
660
861
  "project": ".cursor/rules",
661
- "enabled": false
862
+ "enabled": true
863
+ },
864
+ {
865
+ "name": "copilot",
866
+ "label": "GitHub Copilot",
867
+ "global": "~/.github/instructions",
868
+ "project": ".github/instructions",
869
+ "enabled": true
662
870
  },
663
871
  {
664
872
  "name": "windsurf",
665
873
  "label": "Windsurf",
666
874
  "global": "~/.windsurf/rules",
667
875
  "project": ".windsurf/rules",
668
- "enabled": false
876
+ "enabled": true
877
+ },
878
+ {
879
+ "name": "antigravity",
880
+ "label": "Google Antigravity",
881
+ "global": "~/.antigravity/skills",
882
+ "project": ".antigravity/skills",
883
+ "enabled": true
884
+ },
885
+ {
886
+ "name": "gemini",
887
+ "label": "Gemini CLI",
888
+ "global": "~/.gemini/skills",
889
+ "project": ".gemini/skills",
890
+ "enabled": true
669
891
  },
670
892
  {
671
893
  "name": "cline",
672
894
  "label": "Cline",
673
895
  "global": "~/Documents/Cline/Rules",
674
896
  "project": ".clinerules",
675
- "enabled": false
897
+ "enabled": true
676
898
  },
677
899
  {
678
900
  "name": "roocode",
679
901
  "label": "Roo Code",
680
902
  "global": "~/.roo/rules",
681
903
  "project": ".roo/rules",
682
- "enabled": false
904
+ "enabled": true
683
905
  },
684
906
  {
685
907
  "name": "continue",
686
908
  "label": "Continue",
687
909
  "global": "~/.continue/rules",
688
910
  "project": ".continue/rules",
689
- "enabled": false
690
- },
691
- {
692
- "name": "copilot",
693
- "label": "GitHub Copilot",
694
- "global": "~/.github/instructions",
695
- "project": ".github/instructions",
696
- "enabled": false
911
+ "enabled": true
697
912
  },
698
913
  {
699
914
  "name": "aider",
700
915
  "label": "Aider",
701
916
  "global": "~/.aider/skills",
702
917
  "project": ".aider/skills",
703
- "enabled": false
704
- },
705
- {
706
- "name": "opencode",
707
- "label": "OpenCode",
708
- "global": "~/.config/opencode/skills",
709
- "project": ".opencode/skills",
710
- "enabled": false
918
+ "enabled": true
711
919
  },
712
920
  {
713
921
  "name": "zed",
714
922
  "label": "Zed",
715
923
  "global": "~/.config/zed/prompt_overrides",
716
924
  "project": ".zed/rules",
717
- "enabled": false
925
+ "enabled": true
718
926
  },
719
927
  {
720
928
  "name": "augment",
721
929
  "label": "Augment",
722
930
  "global": "~/.augment/rules",
723
931
  "project": ".augment/rules",
724
- "enabled": false
932
+ "enabled": true
725
933
  },
726
934
  {
727
935
  "name": "amp",
728
936
  "label": "Amp",
729
937
  "global": "~/.amp/skills",
730
938
  "project": ".amp/skills",
731
- "enabled": false
732
- },
733
- {
734
- "name": "gemini",
735
- "label": "Gemini CLI",
736
- "global": "~/.gemini/skills",
737
- "project": ".gemini/skills",
738
- "enabled": false
739
- },
740
- {
741
- "name": "antigravity",
742
- "label": "Google Antigravity",
743
- "global": "~/.antigravity/skills",
744
- "project": ".antigravity/skills",
745
- "enabled": false
939
+ "enabled": true
746
940
  }
747
941
  ],
748
942
  "customPaths": [],
@@ -753,9 +947,9 @@ On first run, config is created at `~/.config/agent-skill-manager/config.json`:
753
947
  }
754
948
  ```
755
949
 
756
- - Set `"enabled": true` to start scanning a provider
950
+ - All 19 providers are enabled by default
951
+ - Set `"enabled": false` to skip a provider you don't use
757
952
  - Add arbitrary directories via `customPaths`
758
- - Set `"enabled": false` to skip a provider
759
953
  - Manage via `asm config show|path|reset|edit` or press `c` in the TUI
760
954
 
761
955
  </details>
@@ -804,8 +998,8 @@ asm init my-skill -p claude
804
998
  <summary><strong>From source</strong></summary>
805
999
 
806
1000
  ```bash
807
- git clone https://github.com/luongnv89/agent-skill-manager.git
808
- cd agent-skill-manager
1001
+ git clone https://github.com/luongnv89/asm.git
1002
+ cd asm
809
1003
  npm install
810
1004
  ```
811
1005
 
@@ -820,7 +1014,7 @@ npm start
820
1014
  Inspect install script before running:
821
1015
 
822
1016
  ```bash
823
- curl -sSL https://raw.githubusercontent.com/luongnv89/agent-skill-manager/main/install.sh -o install.sh
1017
+ curl -sSL https://raw.githubusercontent.com/luongnv89/asm/main/install.sh -o install.sh
824
1018
  less install.sh
825
1019
  bash install.sh
826
1020
  ```
@@ -831,7 +1025,7 @@ bash install.sh
831
1025
  <summary><strong>Project structure</strong></summary>
832
1026
 
833
1027
  ```text
834
- agent-skill-manager/
1028
+ asm/
835
1029
  ├── bin/ # CLI entry point
836
1030
  ├── dist/ # Built bundle (npm ships this)
837
1031
  ├── scripts/ # Build, preindex, catalog
@@ -852,7 +1046,7 @@ agent-skill-manager/
852
1046
  <details>
853
1047
  <summary><strong>Tech stack</strong></summary>
854
1048
 
855
- - **Runtime:** Node.js 18+
1049
+ - **Runtime:** Node.js 22+
856
1050
  - **Language:** TypeScript + TSX
857
1051
  - **Build:** esbuild
858
1052
  - **TUI:** [Ink](https://github.com/vadimdemedes/ink) + [@inkjs/ui](https://github.com/vadimdemedes/ink-ui)
@@ -888,10 +1082,10 @@ agent-skill-manager/
888
1082
 
889
1083
  ### Contributors
890
1084
 
891
- | Contributor | PRs |
892
- | ------------------------------------------ | ---------------------------------------------------------------------------------------------------------------- |
893
- | [@luongnv89](https://github.com/luongnv89) | [38 merged PRs](https://github.com/luongnv89/agent-skill-manager/pulls?q=is%3Apr+is%3Amerged+author%3Aluongnv89) |
894
- | [@Mordris](https://github.com/Mordris) | [#111](https://github.com/luongnv89/agent-skill-manager/pull/111) |
1085
+ | Contributor | PRs |
1086
+ | ------------------------------------------ | ------------------------------------------------------------------------------------------------ |
1087
+ | [@luongnv89](https://github.com/luongnv89) | [38 merged PRs](https://github.com/luongnv89/asm/pulls?q=is%3Apr+is%3Amerged+author%3Aluongnv89) |
1088
+ | [@Mordris](https://github.com/Mordris) | [#111](https://github.com/luongnv89/asm/pull/111) |
895
1089
 
896
1090
  ### Dependencies
897
1091