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.
- package/README.md +318 -121
- 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/antithesishq_antithesis-skills.json +2567 -0
- 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 +47 -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,19 +23,21 @@
|
|
|
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
|
|
|
36
38
|
| | |
|
|
37
39
|
| ------------------- | ------------------------------------------------------------------------------ |
|
|
38
|
-
| **Catalog** | 4,
|
|
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
|
-
|
|
|
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
|
+
| 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/
|
|
114
|
+
Alternative install: `curl -sSL https://raw.githubusercontent.com/luongnv89/asm/main/install.sh | bash`
|
|
102
115
|
|
|
103
|
-
Node.js
|
|
116
|
+
Node.js 22+ required. Optional TUI: run `asm` with no arguments.
|
|
104
117
|
|
|
105
118
|
## Common tasks
|
|
106
119
|
|
|
107
|
-
| Task
|
|
108
|
-
|
|
|
109
|
-
| Machine-readable inventory
|
|
110
|
-
| Skill metadata for agents
|
|
111
|
-
| Non-interactive install
|
|
112
|
-
| Remove duplicates
|
|
113
|
-
|
|
|
114
|
-
|
|
|
115
|
-
|
|
|
116
|
-
|
|
|
117
|
-
|
|
|
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
|
|
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
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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
|
-
-
|
|
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/
|
|
808
|
-
cd
|
|
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/
|
|
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
|
-
|
|
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
|
|
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/
|
|
894
|
-
| [@Mordris](https://github.com/Mordris) | [#111](https://github.com/luongnv89/
|
|
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)
|
|
1106
|
+
[Project kanban](https://github.com/users/luongnv89/projects/6)
|
|
910
1107
|
|
|
911
1108
|
## Contributing
|
|
912
1109
|
|