agent-skill-manager 1.19.0 → 1.21.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 +224 -43
- package/dist/agent-skill-manager.js +514 -312
- package/dist/{chunk-q3gm2x0a.js → chunk-1becp2v6.js} +1 -1
- package/dist/{chunk-33wmae4f.js → chunk-4qbqrrmk.js} +1 -1
- package/dist/{chunk-v3wdjh4r.js → chunk-a26gjzjk.js} +2 -2
- package/dist/chunk-cshq625q.js +15 -0
- package/package.json +3 -2
- package/dist/chunk-d3ed4n6q.js +0 -14
package/README.md
CHANGED
|
@@ -61,8 +61,8 @@ The more AI agents you use, the worse this gets. Every new tool adds another ski
|
|
|
61
61
|
- **See everything at once** — List, search, and filter skills across all providers and scopes from one dashboard. No more `ls`-ing through hidden directories.
|
|
62
62
|
- **Install from GitHub in one command** — `asm install github:user/repo` handles cloning, validation, and placement. Supports single-skill repos, multi-skill collections, subfolder URLs, and private repos via SSH.
|
|
63
63
|
- **Catch problems before they bite** — Built-in security scanning flags dangerous patterns (shell execution, network access, credential exposure, obfuscation) before you install. Duplicate audit finds and cleans redundant skills across providers.
|
|
64
|
-
- **Create and
|
|
65
|
-
- **Works with every major agent** —
|
|
64
|
+
- **Create, test, and publish skills** — Scaffold new skills with `asm init`, symlink them for live development with `asm link`, audit for security issues, verify metadata, and publish to the [ASM Registry](https://github.com/luongnv89/asm-registry) with a single command. [See the full local dev workflow ↓](#build-test-and-ship-your-own-skills)
|
|
65
|
+
- **Works with every major agent** — 18 providers built-in: Claude Code, Codex, OpenClaw, Cursor, Windsurf, Cline, Roo Code, Continue, GitHub Copilot, Aider, OpenCode, Zed, Augment, Amp, Gemini CLI, Google Antigravity, Hermes, and a generic Agents provider. Add custom providers in seconds via config.
|
|
66
66
|
- **Two interfaces, one tool** — Full interactive TUI with keyboard navigation, search, and detail views. Or use the CLI with `--json` for scripting and automation.
|
|
67
67
|
|
|
68
68
|
<p align="center">
|
|
@@ -116,19 +116,49 @@ This creates a `my-skill/SKILL.md` with valid YAML frontmatter and a markdown te
|
|
|
116
116
|
|
|
117
117
|
### 2. Develop with live reload via symlink
|
|
118
118
|
|
|
119
|
-
|
|
119
|
+
`asm link` creates a symlink from your local skill directory into an agent's skill folder. Because it's a symlink, every edit you make to the source is immediately visible to the agent — no reinstall needed.
|
|
120
|
+
|
|
121
|
+
#### Target a specific tool
|
|
120
122
|
|
|
121
123
|
```bash
|
|
124
|
+
# Link into Claude Code
|
|
122
125
|
asm link ./my-skill -p claude
|
|
126
|
+
|
|
127
|
+
# Link into Codex
|
|
128
|
+
asm link ./my-skill -p codex
|
|
129
|
+
|
|
130
|
+
# Interactive — pick the tool from a prompt
|
|
131
|
+
asm link ./my-skill
|
|
123
132
|
```
|
|
124
133
|
|
|
125
|
-
|
|
134
|
+
#### Link multiple skills at once
|
|
135
|
+
|
|
136
|
+
Pass several paths in a single command to link them all in one step:
|
|
126
137
|
|
|
127
138
|
```bash
|
|
128
|
-
asm link ./
|
|
139
|
+
asm link ./skill-a ./skill-b ./skill-c -p claude
|
|
129
140
|
```
|
|
130
141
|
|
|
131
|
-
|
|
142
|
+
You can also point at a folder that contains multiple skills (each in its own subdirectory with a `SKILL.md`):
|
|
143
|
+
|
|
144
|
+
```bash
|
|
145
|
+
# Link every skill found inside ./my-skills-folder
|
|
146
|
+
asm link ./my-skills-folder -p claude
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
#### Override the symlink name
|
|
150
|
+
|
|
151
|
+
```bash
|
|
152
|
+
asm link ./my-skill --name my-alias -p claude
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
#### Force-overwrite an existing symlink
|
|
156
|
+
|
|
157
|
+
```bash
|
|
158
|
+
asm link ./my-skill -p claude --force
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
Edit the source files — changes are reflected immediately in the agent. This is the fastest iteration loop for skill development.
|
|
132
162
|
|
|
133
163
|
### 3. Audit your skill for security issues
|
|
134
164
|
|
|
@@ -202,6 +232,41 @@ asm install github:you/awesome-skill -p claude --yes --json
|
|
|
202
232
|
|
|
203
233
|
This catches issues that local development misses — broken repo structure, missing files, invalid frontmatter in a clean install context.
|
|
204
234
|
|
|
235
|
+
### 6. Publish to the ASM Registry
|
|
236
|
+
|
|
237
|
+
Once your skill is ready and on GitHub, submit it to the [ASM Registry](https://github.com/luongnv89/asm-registry) so anyone can install it by name:
|
|
238
|
+
|
|
239
|
+
```bash
|
|
240
|
+
asm publish ./my-skill
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
This runs a security audit, generates a signed manifest, forks the registry, and opens a pull request automatically. Once merged, your skill is globally discoverable:
|
|
244
|
+
|
|
245
|
+
```bash
|
|
246
|
+
# Anyone can install it by name — no URL needed
|
|
247
|
+
asm install my-skill
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
Preview what the manifest will look like before submitting:
|
|
251
|
+
|
|
252
|
+
```bash
|
|
253
|
+
asm publish --dry-run ./my-skill
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
Override security warnings (caution: review findings first):
|
|
257
|
+
|
|
258
|
+
```bash
|
|
259
|
+
asm publish --force ./my-skill
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
Skip confirmation in CI:
|
|
263
|
+
|
|
264
|
+
```bash
|
|
265
|
+
asm publish --yes ./my-skill
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
> **Requires:** [`gh` CLI](https://cli.github.com) authenticated with `gh auth login`. The publish command uses `gh` to fork the registry, create a branch, write the manifest, and open the PR — all without leaving your terminal.
|
|
269
|
+
|
|
205
270
|
### Typical local development workflow
|
|
206
271
|
|
|
207
272
|
1. **Scaffold** — `asm init awesome-skill -p claude`
|
|
@@ -210,8 +275,10 @@ This catches issues that local development misses — broken repo structure, mis
|
|
|
210
275
|
4. Test with your AI agent
|
|
211
276
|
5. **Security audit** — `asm audit security awesome-skill`
|
|
212
277
|
6. **Verify metadata** — `asm inspect awesome-skill`
|
|
213
|
-
7.
|
|
214
|
-
8.
|
|
278
|
+
7. **Score quality** — `asm eval ./awesome-skill` (add `--runtime` for skillgrade runtime evals)
|
|
279
|
+
8. Push to GitHub
|
|
280
|
+
9. **Verify install flow** — `asm install github:you/awesome-skill`
|
|
281
|
+
10. **Publish to registry** — `asm publish ./awesome-skill`
|
|
215
282
|
|
|
216
283
|
Whether you're building skills for yourself or publishing them for the community, `asm` gives you the full create → develop → audit → ship pipeline in one tool.
|
|
217
284
|
|
|
@@ -251,6 +318,91 @@ asm index search "your-skill" --json
|
|
|
251
318
|
|
|
252
319
|
Each indexed skill in the output JSON includes `"verified": true` or `"verified": false`. If verification fails, the ingestion debug log (set `ASM_DEBUG=1`) prints the specific reasons.
|
|
253
320
|
|
|
321
|
+
### Runtime Evaluation (`asm eval`)
|
|
322
|
+
|
|
323
|
+
Static verification tells you the SKILL.md is well-formed. `asm eval` goes further and answers two orthogonal questions about any skill on disk:
|
|
324
|
+
|
|
325
|
+
1. **Is it well-written?** — `quality@1.0.0` ships by default and runs a scored rubric over structure, frontmatter, clarity, and safety.
|
|
326
|
+
2. **Does it actually work?** — `asm eval --runtime` shells out to [skillgrade](https://github.com/mgechev/skillgrade) for deterministic + LLM-judge runtime evals in a Docker sandbox, with CI-ready exit codes.
|
|
327
|
+
|
|
328
|
+
**Zero-setup install:** skillgrade ships as a direct dependency of `asm`. After `npm install -g agent-skill-manager`, `asm eval --runtime` just works — no `npm i -g skillgrade`, no PATH hijacking. Override with `ASM_SKILLGRADE_BIN=/path/to/skillgrade` if you want to point at a different binary.
|
|
329
|
+
|
|
330
|
+
```bash
|
|
331
|
+
# Static quality lint (default)
|
|
332
|
+
asm eval ./my-skill
|
|
333
|
+
|
|
334
|
+
# Scaffold eval.yaml for runtime tests
|
|
335
|
+
asm eval ./my-skill --runtime init
|
|
336
|
+
|
|
337
|
+
# Run the skillgrade runtime provider
|
|
338
|
+
asm eval ./my-skill --runtime --preset smoke
|
|
339
|
+
|
|
340
|
+
# CI-friendly JSON
|
|
341
|
+
asm eval ./my-skill --runtime --machine --threshold 0.8
|
|
342
|
+
|
|
343
|
+
# List registered eval providers
|
|
344
|
+
asm eval-providers list
|
|
345
|
+
|
|
346
|
+
# Diff two provider versions before promoting an upgrade
|
|
347
|
+
asm eval ./my-skill --compare skillgrade@1.0.0,skillgrade@2.0.0-next
|
|
348
|
+
```
|
|
349
|
+
|
|
350
|
+
The eval surface is a pluggable provider framework: each provider implements a common `EvalProvider` contract and resolves via semver range, so you can pin a version in `~/.asm/config.yml`, diff two versions side-by-side with `--compare`, and add new providers without touching the CLI. See [`docs/eval-providers.md`](./docs/eval-providers.md) for the provider model and [`docs/skillgrade-integration.md`](./docs/skillgrade-integration.md) for skillgrade install, presets, and CI usage.
|
|
351
|
+
|
|
352
|
+
---
|
|
353
|
+
|
|
354
|
+
## ASM Registry — Install and Publish Skills by Name
|
|
355
|
+
|
|
356
|
+
The [ASM Registry](https://github.com/luongnv89/asm-registry) is the curated index of community-published skills. Once a skill is listed, anyone can install it by name — no GitHub URL needed.
|
|
357
|
+
|
|
358
|
+
### Install from the registry
|
|
359
|
+
|
|
360
|
+
```bash
|
|
361
|
+
# Install by bare name (searches the registry)
|
|
362
|
+
asm install code-review
|
|
363
|
+
|
|
364
|
+
# Install by scoped name (author/skill — always unambiguous)
|
|
365
|
+
asm install luongnv89/code-review
|
|
366
|
+
|
|
367
|
+
# Force a fresh registry fetch (bypasses the 1-hour cache)
|
|
368
|
+
asm install code-review --no-cache
|
|
369
|
+
```
|
|
370
|
+
|
|
371
|
+
`asm install` resolves the name against the registry index, downloads the manifest, clones the exact pinned commit, and installs the skill to your agent.
|
|
372
|
+
|
|
373
|
+
### Publish your skill to the registry
|
|
374
|
+
|
|
375
|
+
```bash
|
|
376
|
+
asm publish ./my-skill
|
|
377
|
+
```
|
|
378
|
+
|
|
379
|
+
The publish pipeline:
|
|
380
|
+
|
|
381
|
+
1. **Validates** your `SKILL.md` frontmatter (name, description, version)
|
|
382
|
+
2. **Security audit** — blocks dangerous skills automatically; warns on risky patterns
|
|
383
|
+
3. **Generates a manifest** with the current commit SHA and a `skill_path` for multi-skill repos
|
|
384
|
+
4. **Opens a PR** against [luongnv89/asm-registry](https://github.com/luongnv89/asm-registry) via the `gh` CLI
|
|
385
|
+
|
|
386
|
+
The registry CI validates schema, checks author identity, runs a duplicate check, typosquat detection, and an independent security scan before any maintainer reviews. Once merged, the index rebuilds automatically and your skill is live.
|
|
387
|
+
|
|
388
|
+
| Flag | Description |
|
|
389
|
+
| ----------- | ------------------------------------------ |
|
|
390
|
+
| `--dry-run` | Preview the manifest without creating a PR |
|
|
391
|
+
| `--force` | Override warning-level security findings |
|
|
392
|
+
| `--yes` | Skip the confirmation prompt |
|
|
393
|
+
| `--machine` | Output as a machine-readable JSON envelope |
|
|
394
|
+
|
|
395
|
+
### How registry resolution works
|
|
396
|
+
|
|
397
|
+
When you run `asm install code-review`:
|
|
398
|
+
|
|
399
|
+
1. `asm` fetches the registry index (cached for 1 hour at `~/.config/agent-skill-manager/registry-cache.json`)
|
|
400
|
+
2. Finds the manifest for `code-review` — including the pinned `commit` and `skill_path`
|
|
401
|
+
3. Clones the repository at that exact commit and navigates to the skill subdirectory
|
|
402
|
+
4. Installs as if you had run `asm install github:author/repo#commit:skill_path`
|
|
403
|
+
|
|
404
|
+
If multiple authors publish a skill with the same name, `asm` shows a disambiguation prompt. Use a scoped name (`author/skill`) to skip it.
|
|
405
|
+
|
|
254
406
|
---
|
|
255
407
|
|
|
256
408
|
## Get Started in 30 Seconds
|
|
@@ -323,7 +475,7 @@ asm install github:anthropics/skills --all
|
|
|
323
475
|
|
|
324
476
|
## Supported Agent Tools
|
|
325
477
|
|
|
326
|
-
`asm` ships with **
|
|
478
|
+
`asm` ships with **18 built-in providers**, all enabled by default. Disable any you don't need via `asm config edit`.
|
|
327
479
|
|
|
328
480
|
| Tool | Global Path | Project Path | Default |
|
|
329
481
|
| ------------------ | --------------------------------- | ----------------------- | :-----: |
|
|
@@ -344,6 +496,7 @@ asm install github:anthropics/skills --all
|
|
|
344
496
|
| Amp | `~/.amp/skills/` | `.amp/skills/` | enabled |
|
|
345
497
|
| Gemini CLI | `~/.gemini/skills/` | `.gemini/skills/` | enabled |
|
|
346
498
|
| Google Antigravity | `~/.antigravity/skills/` | `.antigravity/skills/` | enabled |
|
|
499
|
+
| Hermes | `~/.hermes/skills/` | `.hermes/skills/` | enabled |
|
|
347
500
|
|
|
348
501
|
Disable a provider — opens config in `$EDITOR`, set `"enabled": false` for any provider:
|
|
349
502
|
|
|
@@ -361,10 +514,10 @@ Need a tool not listed? Add a custom provider entry to the config.
|
|
|
361
514
|
Yes. `asm` is MIT licensed and free forever. No accounts, no telemetry, no paywalls.
|
|
362
515
|
|
|
363
516
|
**Is it actively maintained?**
|
|
364
|
-
v1.
|
|
517
|
+
v1.21.0 shipped on April 19, 2026. The project has had 30 releases. Check the [changelog](docs/CHANGELOG.md) for the full history.
|
|
365
518
|
|
|
366
519
|
**Which AI agents does it support?**
|
|
367
|
-
|
|
520
|
+
18 providers built-in: Claude Code, Codex, OpenClaw, Cursor, Windsurf, Cline, Roo Code, Continue, GitHub Copilot, Aider, OpenCode, Zed, Augment, Amp, Gemini CLI, Google Antigravity, Hermes, and a generic Agents provider. All 18 are enabled by default; disable any you don't need via `asm config edit`. You can also add any custom agent that stores skills as directories with a `SKILL.md` file.
|
|
368
521
|
|
|
369
522
|
**How does it compare to managing skills manually?**
|
|
370
523
|
Manual management means remembering where each agent stores skills, cloning repos by hand, checking for duplicates yourself, and having no security scanning. `asm` automates all of that with one command.
|
|
@@ -413,27 +566,31 @@ asm
|
|
|
413
566
|
|
|
414
567
|
### Commands
|
|
415
568
|
|
|
416
|
-
| Command | Description
|
|
417
|
-
| ------------------------------- |
|
|
418
|
-
| `asm list` | List all discovered skills
|
|
419
|
-
| `asm search <query>` | Search by name/description/provider
|
|
420
|
-
| `asm inspect <skill-name>` | Show detailed info for a skill
|
|
421
|
-
| `asm install <source>` | Install a skill from GitHub
|
|
422
|
-
| `asm
|
|
423
|
-
| `asm
|
|
424
|
-
| `asm
|
|
425
|
-
| `asm
|
|
426
|
-
| `asm audit
|
|
427
|
-
| `asm
|
|
428
|
-
| `asm
|
|
429
|
-
| `asm
|
|
430
|
-
| `asm
|
|
431
|
-
| `asm
|
|
432
|
-
| `asm
|
|
433
|
-
| `asm
|
|
434
|
-
| `asm
|
|
435
|
-
| `asm
|
|
436
|
-
| `asm
|
|
569
|
+
| Command | Description |
|
|
570
|
+
| ------------------------------- | ----------------------------------------------------- |
|
|
571
|
+
| `asm list` | List all discovered skills |
|
|
572
|
+
| `asm search <query>` | Search by name/description/provider |
|
|
573
|
+
| `asm inspect <skill-name>` | Show detailed info for a skill |
|
|
574
|
+
| `asm install <source>` | Install a skill from GitHub or the registry |
|
|
575
|
+
| `asm publish [path]` | Publish a skill to the ASM Registry |
|
|
576
|
+
| `asm uninstall <skill-name>` | Remove a skill (with confirmation) |
|
|
577
|
+
| `asm init <name>` | Scaffold a new skill with SKILL.md template |
|
|
578
|
+
| `asm link <path> [<path2> ...]` | Symlink one or more local skills for live development |
|
|
579
|
+
| `asm audit` | Detect duplicate skills |
|
|
580
|
+
| `asm audit security <name>` | Run security audit on a skill |
|
|
581
|
+
| `asm eval <skill>` | Score a skill via the pluggable eval framework |
|
|
582
|
+
| `asm eval <skill> --runtime` | Runtime evaluation via skillgrade (LLM-judge) |
|
|
583
|
+
| `asm eval-providers list` | List registered eval providers and versions |
|
|
584
|
+
| `asm stats` | Show aggregate skill metrics dashboard |
|
|
585
|
+
| `asm export` | Export skill inventory as JSON manifest |
|
|
586
|
+
| `asm index ingest <repo>` | Index a skill repo for searching |
|
|
587
|
+
| `asm index search <query>` | Search indexed skills |
|
|
588
|
+
| `asm index list` | List indexed repositories |
|
|
589
|
+
| `asm index remove <owner/repo>` | Remove a repo from the index |
|
|
590
|
+
| `asm config show` | Print current config |
|
|
591
|
+
| `asm config path` | Print config file path |
|
|
592
|
+
| `asm config reset` | Reset config to defaults |
|
|
593
|
+
| `asm config edit` | Open config in $EDITOR |
|
|
437
594
|
|
|
438
595
|
### Global Options
|
|
439
596
|
|
|
@@ -485,6 +642,24 @@ Audit all installed skills:
|
|
|
485
642
|
asm audit security --all
|
|
486
643
|
```
|
|
487
644
|
|
|
645
|
+
Score a skill with the static quality provider:
|
|
646
|
+
|
|
647
|
+
```bash
|
|
648
|
+
asm eval ./my-skill
|
|
649
|
+
```
|
|
650
|
+
|
|
651
|
+
Run the skillgrade runtime evaluator (requires `skillgrade` on PATH):
|
|
652
|
+
|
|
653
|
+
```bash
|
|
654
|
+
asm eval ./my-skill --runtime --preset smoke
|
|
655
|
+
```
|
|
656
|
+
|
|
657
|
+
List registered eval providers:
|
|
658
|
+
|
|
659
|
+
```bash
|
|
660
|
+
asm eval-providers list
|
|
661
|
+
```
|
|
662
|
+
|
|
488
663
|
Scaffold a skill, link it for live testing, audit, and inspect:
|
|
489
664
|
|
|
490
665
|
```bash
|
|
@@ -492,7 +667,11 @@ asm init my-skill -p claude
|
|
|
492
667
|
```
|
|
493
668
|
|
|
494
669
|
```bash
|
|
670
|
+
# Link globally (available in all projects)
|
|
495
671
|
asm link ./my-skill -p claude
|
|
672
|
+
|
|
673
|
+
# Link multiple skills at once
|
|
674
|
+
asm link ./skill-a ./skill-b -p claude
|
|
496
675
|
```
|
|
497
676
|
|
|
498
677
|
```bash
|
|
@@ -644,7 +823,7 @@ The install command clones the repository, validates `SKILL.md` files, scans for
|
|
|
644
823
|
<details>
|
|
645
824
|
<summary><strong>Configuration</strong></summary>
|
|
646
825
|
|
|
647
|
-
On first run, a config file is created at `~/.config/agent-skill-manager/config.json` with
|
|
826
|
+
On first run, a config file is created at `~/.config/agent-skill-manager/config.json` with 18 default providers, all enabled:
|
|
648
827
|
|
|
649
828
|
```json
|
|
650
829
|
{
|
|
@@ -960,16 +1139,18 @@ agent-skill-manager/
|
|
|
960
1139
|
<details>
|
|
961
1140
|
<summary><strong>Documentation</strong></summary>
|
|
962
1141
|
|
|
963
|
-
| Document
|
|
964
|
-
|
|
|
965
|
-
| [Architecture](docs/ARCHITECTURE.md)
|
|
966
|
-
| [
|
|
967
|
-
| [
|
|
968
|
-
| [
|
|
969
|
-
| [
|
|
970
|
-
| [
|
|
971
|
-
| [
|
|
972
|
-
| [
|
|
1142
|
+
| Document | Description |
|
|
1143
|
+
| -------------------------------------------------------- | -------------------------------------------------------- |
|
|
1144
|
+
| [Architecture](docs/ARCHITECTURE.md) | System design, components, and data flow |
|
|
1145
|
+
| [Eval Providers](docs/eval-providers.md) | Pluggable eval framework, `--compare`, adding a provider |
|
|
1146
|
+
| [Skillgrade Integration](docs/skillgrade-integration.md) | Install, presets, CI usage, troubleshooting |
|
|
1147
|
+
| [Development](docs/DEVELOPMENT.md) | Local setup, testing, and debugging |
|
|
1148
|
+
| [Deployment](docs/DEPLOYMENT.md) | Publishing and CI pipeline |
|
|
1149
|
+
| [Changelog](docs/CHANGELOG.md) | Version history |
|
|
1150
|
+
| [Brand Kit](docs/brand_kit.md) | Logo, colors, and typography |
|
|
1151
|
+
| [Contributing](CONTRIBUTING.md) | How to contribute |
|
|
1152
|
+
| [Security](SECURITY.md) | Vulnerability reporting |
|
|
1153
|
+
| [Code of Conduct](CODE_OF_CONDUCT.md) | Community guidelines |
|
|
973
1154
|
|
|
974
1155
|
</details>
|
|
975
1156
|
|