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.
- package/README.md +313 -119
- package/data/skill-index/Affitor_affiliate-skills.json +2375 -323
- package/data/skill-index/AvdLee_Core-Data-Agent-Skill.json +44 -6
- package/data/skill-index/AvdLee_Swift-Concurrency-Agent-Skill.json +49 -11
- package/data/skill-index/AvdLee_Swift-Testing-Agent-Skill.json +44 -6
- package/data/skill-index/AvdLee_SwiftUI-Agent-Skill.json +100 -24
- package/data/skill-index/AvdLee_Xcode-Build-Optimization-Agent-Skill.json +262 -34
- package/data/skill-index/Dimillian_Skills.json +699 -91
- package/data/skill-index/Egonex-AI_Understand-Anything.json +578 -81
- package/data/skill-index/Eronred_aso-skills.json +1729 -209
- package/data/skill-index/GPTomics_bioSkills.json +27195 -5839
- package/data/skill-index/Galaxy-Dawn_claude-scholar.json +1966 -256
- package/data/skill-index/Imbad0202_academic-research-skills.json +256 -98
- package/data/skill-index/K-Dense-AI_claude-scientific-skills.json +13755 -5388
- package/data/skill-index/Leonxlnx_taste-skill.json +570 -76
- package/data/skill-index/Master-cai_Research-Paper-Writing-Skills.json +44 -6
- package/data/skill-index/MiniMax-AI_skills.json +1007 -133
- package/data/skill-index/Paramchoudhary_ResumeSkills.json +960 -124
- package/data/skill-index/ParthJadhav_app-store-screenshots.json +185 -0
- package/data/skill-index/addyosmani_agent-skills.json +1127 -209
- package/data/skill-index/affaan-m_everything-claude-code.json +17427 -5038
- package/data/skill-index/alirezarezvani_claude-skills.json +20317 -3276
- package/data/skill-index/anthropics_skills.json +1256 -168
- package/data/skill-index/antonbabenko_terraform-skill.json +44 -6
- package/data/skill-index/badlogic_pi-skills.json +349 -45
- package/data/skill-index/briiirussell_cybersecurity-skills.json +1261 -159
- package/data/skill-index/bytedance_deer-flow.json +1572 -224
- package/data/skill-index/cloudai-x_threejs-skills.json +2007 -0
- package/data/skill-index/coreyhaines31_marketingskills.json +2846 -638
- package/data/skill-index/davidondrej_skills.json +6213 -783
- package/data/skill-index/emilkowalski_skills.json +2302 -0
- package/data/skill-index/entireio_skills.json +561 -63
- package/data/skill-index/garrytan_gstack.json +3023 -419
- package/data/skill-index/github_awesome-copilot.json +30442 -8371
- package/data/skill-index/google_skills.json +12472 -1527
- package/data/skill-index/heygen-com_hyperframes.json +2420 -454
- package/data/skill-index/himself65_finance-skills.json +1614 -254
- package/data/skill-index/ivan-magda_uikit-expert-skill.json +44 -6
- package/data/skill-index/kemiljk_fluid-design.json +44 -6
- package/data/skill-index/kepano_obsidian-skills.json +217 -27
- package/data/skill-index/luongnv89_asm.json +1887 -34
- package/data/skill-index/luongnv89_idd.json +369 -103
- package/data/skill-index/luongnv89_skills.json +2051 -900
- package/data/skill-index/mattpocock_skills.json +1910 -1027
- package/data/skill-index/mvanhorn_last30days-skill.json +50 -12
- package/data/skill-index/nextlevelbuilder_ui-ux-pro-max-skill.json +324 -64
- package/data/skill-index/obra_superpowers.json +651 -125
- package/data/skill-index/oliver-zehentleitner_keep-the-why.json +185 -0
- package/data/skill-index/romainsimon_paperasse.json +273 -45
- package/data/skill-index/rudrankriyam_app-store-connect-cli-skills.json +1539 -243
- package/data/skill-index/santifer_career-ops.json +44 -657
- package/data/skill-index/sickn33_antigravity-awesome-skills.json +123142 -36221
- package/data/skill-index/slavingia_skills.json +436 -56
- package/data/skill-index/twostraws_Swift-Concurrency-Agent-Skill.json +44 -6
- package/data/skill-index/twostraws_Swift-Testing-Agent-Skill.json +44 -6
- package/data/skill-index/twostraws_SwiftData-Agent-Skill.json +44 -6
- package/data/skill-index/twostraws_SwiftUI-Agent-Skill.json +44 -6
- package/data/skill-index/warpdotdev_oz-skills.json +651 -81
- package/data/skill-index/zarazhangrui_follow-builders.json +44 -6
- package/data/skill-index-resources.json +38 -2
- package/dist/agent-skill-manager.js +683 -603
- package/dist/chunk-BQ4RW237.js +20 -0
- package/dist/chunk-LH2C3PE7.js +3 -0
- package/dist/chunk-LS24FFOX.js +3 -0
- package/dist/chunk-RSVWCEZR.js +2 -0
- package/dist/config-AZYQEQOQ.js +2 -0
- package/dist/devtools-2L45W5A2.js +11 -0
- package/dist/lock-NN2MADX7.js +2 -0
- package/dist/src-BD3KFE5H.js +119 -0
- package/package.json +48 -22
- package/README.backup.md +0 -1237
- package/dist/chunk-7BMOBFGJ.js +0 -2
- package/dist/chunk-EOTW3XHQ.js +0 -3
- package/dist/chunk-P5N3FU3P.js +0 -3
- package/dist/chunk-UZ62MVXU.js +0 -19
- package/dist/config-KPT63KLE.js +0 -2
- package/dist/devtools-6JCLZ364.js +0 -8
- package/dist/lock-NOXBNSZW.js +0 -2
- 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/
|
|
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/
|
|
15
|
-
<a href="https://nodejs.org"><img src="https://img.shields.io/badge/Node.js-%E2%89%A5%
|
|
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
|
|
27
|
-
|
|
|
28
|
-
| Scattered installs
|
|
29
|
-
| No inventory
|
|
30
|
-
|
|
|
31
|
-
|
|
|
32
|
-
|
|
|
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
|
-
|
|
|
70
|
-
|
|
|
71
|
-
|
|
|
72
|
-
|
|
|
73
|
-
|
|
|
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/
|
|
113
|
+
Alternative install: `curl -sSL https://raw.githubusercontent.com/luongnv89/asm/main/install.sh | bash`
|
|
102
114
|
|
|
103
|
-
Node.js
|
|
115
|
+
Node.js 22+ required. Optional TUI: run `asm` with no arguments.
|
|
104
116
|
|
|
105
117
|
## Common tasks
|
|
106
118
|
|
|
107
|
-
| Task
|
|
108
|
-
|
|
|
109
|
-
| Machine-readable inventory
|
|
110
|
-
| Skill metadata for agents
|
|
111
|
-
| Non-interactive install
|
|
112
|
-
| Remove duplicates
|
|
113
|
-
|
|
|
114
|
-
|
|
|
115
|
-
|
|
|
116
|
-
|
|
|
117
|
-
|
|
|
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
|
|
403
|
-
| ------------------------------- |
|
|
404
|
-
| `asm list`
|
|
405
|
-
| `asm search <query>`
|
|
406
|
-
| `asm inspect <skill-name>`
|
|
407
|
-
| `asm
|
|
408
|
-
| `asm
|
|
409
|
-
| `asm
|
|
410
|
-
| `asm
|
|
411
|
-
| `asm
|
|
412
|
-
| `asm
|
|
413
|
-
| `asm audit
|
|
414
|
-
| `asm
|
|
415
|
-
| `asm
|
|
416
|
-
| `asm
|
|
417
|
-
| `asm
|
|
418
|
-
| `asm stats
|
|
419
|
-
| `asm stats
|
|
420
|
-
| `asm
|
|
421
|
-
| `asm
|
|
422
|
-
| `asm
|
|
423
|
-
| `asm
|
|
424
|
-
| `asm
|
|
425
|
-
| `asm
|
|
426
|
-
| `asm
|
|
427
|
-
| `asm
|
|
428
|
-
| `asm
|
|
429
|
-
| `asm
|
|
430
|
-
| `asm
|
|
431
|
-
| `asm
|
|
432
|
-
| `asm
|
|
433
|
-
| `asm
|
|
434
|
-
| `asm
|
|
435
|
-
| `asm
|
|
436
|
-
| `asm
|
|
437
|
-
| `asm
|
|
438
|
-
| `asm
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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
|
-
-
|
|
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/
|
|
808
|
-
cd
|
|
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/
|
|
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
|
-
|
|
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
|
|
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/
|
|
894
|
-
| [@Mordris](https://github.com/Mordris) | [#111](https://github.com/luongnv89/
|
|
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
|
|