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