agent-skill-manager 2.13.0 → 2.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/README.md +588 -714
  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 +33358 -9410
  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 +14175 -5202
  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 +1290 -114
  19. package/data/skill-index/ParthJadhav_app-store-screenshots.json +185 -0
  20. package/data/skill-index/addyosmani_agent-skills.json +1146 -222
  21. package/data/skill-index/affaan-m_everything-claude-code.json +18337 -5085
  22. package/data/skill-index/alirezarezvani_claude-skills.json +21303 -2755
  23. package/data/skill-index/anthropics_skills.json +1249 -161
  24. package/data/skill-index/antonbabenko_terraform-skill.json +44 -6
  25. package/data/skill-index/badlogic_pi-skills.json +349 -45
  26. package/data/skill-index/briiirussell_cybersecurity-skills.json +1474 -183
  27. package/data/skill-index/bytedance_deer-flow.json +1574 -226
  28. package/data/skill-index/cloudai-x_threejs-skills.json +2007 -0
  29. package/data/skill-index/coreyhaines31_marketingskills.json +3227 -661
  30. package/data/skill-index/davidondrej_skills.json +10480 -0
  31. package/data/skill-index/emilkowalski_skills.json +2302 -0
  32. package/data/skill-index/entireio_skills.json +713 -60
  33. package/data/skill-index/garrytan_gstack.json +3113 -509
  34. package/data/skill-index/github_awesome-copilot.json +31610 -8236
  35. package/data/skill-index/google_skills.json +17724 -921
  36. package/data/skill-index/heygen-com_hyperframes.json +2999 -449
  37. package/data/skill-index/himself65_finance-skills.json +1614 -254
  38. package/data/skill-index/ivan-magda_uikit-expert-skill.json +49 -11
  39. package/data/skill-index/kemiljk_fluid-design.json +44 -6
  40. package/data/skill-index/kepano_obsidian-skills.json +217 -27
  41. package/data/skill-index/luongnv89_asm.json +1992 -13
  42. package/data/skill-index/luongnv89_idd.json +1452 -0
  43. package/data/skill-index/luongnv89_skills.json +2832 -852
  44. package/data/skill-index/mattpocock_skills.json +2943 -815
  45. package/data/skill-index/mvanhorn_last30days-skill.json +58 -14
  46. package/data/skill-index/nextlevelbuilder_ui-ux-pro-max-skill.json +407 -147
  47. package/data/skill-index/obra_superpowers.json +653 -127
  48. package/data/skill-index/oliver-zehentleitner_keep-the-why.json +185 -0
  49. package/data/skill-index/romainsimon_paperasse.json +273 -45
  50. package/data/skill-index/rudrankriyam_app-store-connect-cli-skills.json +1542 -246
  51. package/data/skill-index/santifer_career-ops.json +61 -23
  52. package/data/skill-index/sickn33_antigravity-awesome-skills.json +158205 -31989
  53. package/data/skill-index/slavingia_skills.json +436 -56
  54. package/data/skill-index/twostraws_Swift-Concurrency-Agent-Skill.json +44 -6
  55. package/data/skill-index/twostraws_Swift-Testing-Agent-Skill.json +44 -6
  56. package/data/skill-index/twostraws_SwiftData-Agent-Skill.json +44 -6
  57. package/data/skill-index/twostraws_SwiftUI-Agent-Skill.json +44 -6
  58. package/data/skill-index/warpdotdev_oz-skills.json +651 -81
  59. package/data/skill-index/zarazhangrui_follow-builders.json +44 -6
  60. package/data/skill-index-resources.json +57 -3
  61. package/dist/agent-skill-manager.js +803 -613
  62. package/dist/chunk-BQ4RW237.js +20 -0
  63. package/dist/chunk-LH2C3PE7.js +3 -0
  64. package/dist/chunk-LS24FFOX.js +3 -0
  65. package/dist/chunk-RSVWCEZR.js +2 -0
  66. package/dist/config-AZYQEQOQ.js +2 -0
  67. package/dist/devtools-2L45W5A2.js +11 -0
  68. package/dist/lock-NN2MADX7.js +2 -0
  69. package/dist/src-BD3KFE5H.js +119 -0
  70. package/package.json +48 -22
  71. package/dist/chunk-7BMOBFGJ.js +0 -2
  72. package/dist/chunk-APSM2WG3.js +0 -3
  73. package/dist/chunk-GHPE6SB3.js +0 -3
  74. package/dist/chunk-HY3VQ3SV.js +0 -19
  75. package/dist/config-FRM3YOMA.js +0 -2
  76. package/dist/devtools-6JCLZ364.js +0 -8
  77. package/dist/lock-6S53S4SC.js +0 -2
  78. package/dist/src-3UQIRSQN.js +0 -108
package/README.md CHANGED
@@ -9,700 +9,672 @@
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
- <h1 align="center">One tool to manage every AI agent's skills</h1>
18
+ # CLI to install and manage agent skills
19
19
 
20
- <p align="center">
21
- Stop juggling skill directories across Claude Code, Codex, Cursor, Windsurf, and 10+ other AI agents.<br/>
22
- <strong>agent-skill-manager</strong> (<code>asm</code>) gives you a single TUI and CLI to install, search, audit, and organize all your agent skills — everywhere.
23
- </p>
20
+ **agent-skill-manager** (`asm`) is a scriptable CLI built for AI agents and automation — install, search, audit, and organize skills across Claude Code, Codex, Cursor, and 16 more tools. Every command supports `--json` and `--yes` for non-interactive use. An optional TUI (`asm`) is available for local browsing.
24
21
 
25
- <p align="center">
26
- <a href="#get-started-in-30-seconds"><strong>Get Started in 30 Seconds &rarr;</strong></a>
27
- &nbsp;&nbsp;|&nbsp;&nbsp;
28
- <a href="https://luongnv.com/asm/#/skills"><strong>Browse 3,800+ Skills Online &rarr;</strong></a>
29
- </p>
22
+ [**Get Started**](#getting-started) · [**Browse 4,300+ skills**](https://luongnv.com/asm/#/skills) · [**Full docs**](#documentation)
30
23
 
31
- ---
24
+ ## Problems `asm` solves
32
25
 
33
- ### 🌐 ASM Catalog Browse Skills in Your Browser
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 |
34
35
 
35
- Don't want to install anything yet? **[Explore the full skill catalog online &rarr;](https://luongnv.com/asm/#/skills)**
36
+ ## At a glance
36
37
 
37
- Search, filter by category or repo, and copy install commands — all from a single page. No signup, no backend, no tracking. Share filtered views via URL (e.g. `#/skills?q=code-review&cat=development`).
38
+ | | |
39
+ | ------------------- | ------------------------------------------------------------------------------ |
40
+ | **Catalog** | 4,394 skills from 54 repos — [browse online](https://luongnv.com/asm/#/skills) |
41
+ | **Providers** | 19 agents (Claude, Codex, Cursor, Windsurf, Copilot, …) |
42
+ | **Agent-ready CLI** | `--json`, `--yes`, `--machine` on list, search, install, audit, eval |
43
+ | **Security** | Pre-install scan for shell exec, network access, credential exposure |
44
+ | **License** | MIT — no accounts, no telemetry |
38
45
 
39
- ---
46
+ ## How it works
47
+
48
+ ```mermaid
49
+ graph LR
50
+ A[AI agent / script] --> B["asm command --json"]
51
+ B --> C[Discover skill dirs]
52
+ B --> D[Install / audit / search]
53
+ D --> E{Security scan}
54
+ E --> F[Validate SKILL.md]
55
+ F --> G[Agent provider paths]
56
+ H[GitHub / Registry] --> D
57
+ ```
58
+
59
+ 1. Install `asm` once (npm or curl).
60
+ 2. Run commands from your agent, shell, or CI — no prompts when you pass `--yes`.
61
+ 3. Parse JSON output to decide what to install, remove, or audit next.
62
+
63
+ ## Screenshots
40
64
 
41
65
  <p align="center">
42
- <img src="assets/screenshots/tui.png" alt="agent-skill-manager TUI dashboard" width="800" />
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>
43
68
  </p>
44
69
 
45
- ---
70
+ ## Features
46
71
 
47
- ## Your AI agent skills are a mess
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 |
48
86
 
49
- You use Claude Code at work, Codex for side projects, and OpenClaw for experiments. Each tool keeps skills in its own hidden directory with its own conventions. Here's what that looks like in practice:
87
+ ## Getting started
50
88
 
51
- - **Skills scattered everywhere** — `~/.claude/skills/`, `~/.codex/skills/`, `~/.openclaw/skills/`, project-level `.claude/skills/`... you have the same skill installed three times and can't remember which version is where
52
- - **No visibility** — there's no quick way to see what's installed, what's duplicated, or what's outdated across all your agents
53
- - **Installing is manual and risky** — you clone repos, copy folders, hope the SKILL.md is valid, and pray you didn't just install something that exfiltrates your codebase
89
+ Install (npm):
54
90
 
55
- The more AI agents you use, the worse this gets. Every new tool adds another skill directory to babysit.
91
+ ```bash
92
+ npm install -g agent-skill-manager
93
+ ```
56
94
 
57
- ## `asm` brings order to the chaos
95
+ List installed skills (JSON for agents):
58
96
 
59
- **agent-skill-manager** is a single command that manages skills across every AI coding agent you use. One TUI. One CLI. Every agent.
97
+ ```bash
98
+ asm list --json
99
+ ```
60
100
 
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
- - **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
- - **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, 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 &darr;](#build-test-and-ship-your-own-skills)
65
- - **Works with every major agent** — 19 providers built-in: Claude Code, Codex, OpenClaw, Cursor, Windsurf, Cline, Roo Code, Continue, GitHub Copilot, Aider, OpenCode, Zed, Augment, Amp, Gemini CLI, Google Antigravity, Pi, Hermes, and a generic Agents provider. Add custom providers in seconds via config.
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.
101
+ Install a skill:
67
102
 
68
- <p align="center">
69
- <img src="assets/screenshots/asm-stats.png" alt="asm stats — skill statistics across all providers" width="700" />
70
- <br/><em>asm stats — totals, disk usage, and per-provider breakdown at a glance</em>
71
- </p>
103
+ ```bash
104
+ asm install github:anthropics/skills --yes
105
+ ```
72
106
 
73
- ## How it works
107
+ Search installed and catalog skills:
74
108
 
75
- 1. **Install `asm`** — one command via npm or curl
76
- 2. **Run `asm`** it auto-discovers skills across all configured agent directories
77
- 3. **Manage everything** — install, search, inspect, audit, and uninstall skills from the TUI or CLI
78
- 4. **Stay safe** — security scan skills before installing, detect duplicates, and clean up with confidence
109
+ ```bash
110
+ asm search "code review" --json
111
+ ```
79
112
 
80
- <p align="center">
81
- <a href="#get-started-in-30-seconds"><strong>Start Managing Your Skills &rarr;</strong></a>
82
- </p>
113
+ Alternative install: `curl -sSL https://raw.githubusercontent.com/luongnv89/asm/main/install.sh | bash`
83
114
 
84
- <p align="center">
85
- <img src="assets/screenshots/asm-search-code-review.png" alt="asm search — find installed and available skills" width="700" />
86
- <br/><em>asm search code-review — finds installed skills and suggests new ones from indexed repos</em>
87
- </p>
115
+ Node.js 22+ required. Optional TUI: run `asm` with no arguments.
88
116
 
89
- ---
117
+ ## Common tasks
118
+
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` |
90
133
 
91
- ## Build, Test, and Ship Your Own Skills
134
+ Full command reference, flags, and examples: [CLI Commands](#cli-commands). Catalog UI and bundles: [luongnv.com/asm](https://luongnv.com/asm/).
92
135
 
93
- `asm` isn't just for consuming skills — it's the complete toolkit for **creating, developing, auditing, and testing skills locally** before you share them.
136
+ ## Attention budget
94
137
 
95
- ### 1. Scaffold a new skill
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.
96
142
 
97
- Interactive modepick a target tool:
143
+ `asm` reports the two separately token counts are estimates and always render
144
+ with a leading `~`:
98
145
 
99
146
  ```bash
100
- asm init my-skill
147
+ asm stats --tokens # resident vs body tokens, per tool and per scope
148
+ asm stats --tokens --json # same data for scripts and agents
101
149
  ```
102
150
 
103
- Scaffold directly into Claude Code:
151
+ ```text
152
+ Attention Budget
153
+ ----------------------------------------
104
154
 
105
- ```bash
106
- asm init my-skill -p claude
107
- ```
155
+ Resident = frontmatter descriptions, paid on every message.
156
+ Bodies = full SKILL.md, paid only when a skill fires.
108
157
 
109
- Scaffold in a custom directory:
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
110
163
 
111
- ```bash
112
- asm init my-skill --path ./skills
113
- ```
164
+ By Scope
165
+ global 71 ~4.9k tokens ~300k tokens
166
+ project 13 ~836 tokens ~57k tokens
114
167
 
115
- This creates a `my-skill/SKILL.md` with valid YAML frontmatter and a markdown template ready to fill in.
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)
116
179
 
117
- ### 2. Develop with live reload via symlink
180
+ Median resident cost: ~48 tokens
181
+ Run asm audit residency for demotion advice
182
+ ```
118
183
 
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.
184
+ ### Residency audit
120
185
 
121
- #### Target a specific tool
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.
122
190
 
123
191
  ```bash
124
- # Link into Claude Code
125
- asm link ./my-skill -p claude
192
+ asm audit residency
193
+ asm audit residency --json
194
+ ```
126
195
 
127
- # Link into Codex
128
- asm link ./my-skill -p codex
196
+ The advice assumes this demotion ladder:
129
197
 
130
- # Interactive pick the tool from a prompt
131
- asm link ./my-skill
132
- ```
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 |
133
204
 
134
- #### Link multiple skills at once
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.
135
215
 
136
- Pass several paths in a single command to link them all in one step:
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.
137
219
 
138
- ```bash
139
- asm link ./skill-a ./skill-b ./skill-c -p claude
140
- ```
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
141
224
 
142
- You can also point at a folder that contains multiple skills (each in its own subdirectory with a `SKILL.md`):
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.
143
229
 
144
230
  ```bash
145
- # Link every skill found inside ./my-skills-folder
146
- asm link ./my-skills-folder -p claude
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
147
235
  ```
148
236
 
149
- #### Override the symlink name
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:
150
239
 
151
240
  ```bash
152
- asm link ./my-skill --name my-alias -p claude
241
+ asm get code-review | your-agent --system-prompt-file -
153
242
  ```
154
243
 
155
- #### Force-overwrite an existing symlink
244
+ `<skill>` walks a resolution ladder, and the rung that answered is reported as
245
+ the `tier` so provenance is always visible:
156
246
 
157
- ```bash
158
- asm link ./my-skill -p claude --force
159
- ```
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>` |
160
253
 
161
- Edit the source files changes are reflected immediately in the agent. This is the fastest iteration loop for skill development.
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.
162
258
 
163
- ### 3. Audit your skill for security issues
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.
164
265
 
165
- Audit an installed skill by name:
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.
166
269
 
167
- ```bash
168
- asm audit security my-skill
169
- ```
270
+ ## FAQ
170
271
 
171
- Audit a local directory:
272
+ **Is it free?**
273
+ MIT licensed. No accounts or paywalls.
172
274
 
173
- ```bash
174
- asm audit security ./path/to/my-skill
175
- ```
275
+ **Is this built for AI agents?**
276
+ Yes. Commands return structured JSON (`--json`), accept non-interactive flags (`--yes`, `--machine`), and map to discrete actions an agent can chain — list inventory, search catalog, install, audit, uninstall.
176
277
 
177
- Audit every installed skill:
278
+ **Which agents are supported?**
279
+ 19 providers: Claude Code, Codex, OpenClaw, Cursor, Windsurf, Cline, Roo Code, Continue, GitHub Copilot, Aider, OpenCode, Zed, Augment, Amp, Gemini CLI, Google Antigravity, Pi, Hermes, and a generic Agents provider. Disable any via `asm config edit`.
178
280
 
179
- ```bash
180
- asm audit security --all
181
- ```
281
+ **What about the TUI?**
282
+ Run `asm` with no args for an optional local browser. The CLI is the primary interface for scripts, CI, and agent tool calls.
182
283
 
183
- The security scanner flags dangerous patterns — shell execution, network access, credential exposure, obfuscation, and external URLs — so you can catch problems before users install your skill.
284
+ **Private repos?**
285
+ `asm install github:user/repo --transport ssh --yes`
184
286
 
185
- ### 4. Inspect and verify metadata
287
+ **SKILL.md format?**
288
+ A directory with `SKILL.md` (YAML frontmatter + markdown body). Run `asm init my-skill` to scaffold one.
186
289
 
187
- Check name, version, description, file count:
290
+ ## Get started
188
291
 
189
292
  ```bash
190
- asm inspect my-skill
293
+ npm install -g agent-skill-manager
191
294
  ```
192
295
 
193
- Machine-readable output for CI:
194
-
195
296
  ```bash
196
- asm inspect my-skill --json
297
+ asm list --json
197
298
  ```
198
299
 
199
- ### 5. Test the install flow locally
300
+ [**Browse catalog**](https://luongnv.com/asm/#/skills) · [**Documentation**](#documentation) · [**Contributing**](CONTRIBUTING.md) · MIT Licensed
200
301
 
201
- Once your skill is on GitHub, verify that end users can install it cleanly.
302
+ ---
303
+
304
+ <details>
305
+ <summary><strong>Build, test, and ship skills</strong></summary>
202
306
 
203
- Install your own skill as a user would:
307
+ ### Scaffold
204
308
 
205
309
  ```bash
206
- asm install github:you/awesome-skill
310
+ asm init my-skill
207
311
  ```
208
312
 
209
- Install to a specific tool:
210
-
211
313
  ```bash
212
- asm install github:you/awesome-skill -p claude
314
+ asm init my-skill -p claude
213
315
  ```
214
316
 
215
- Install a specific skill from a multi-skill repo:
216
-
217
317
  ```bash
218
- asm install github:you/skills --path skills/awesome-skill
318
+ asm init my-skill --path ./skills
219
319
  ```
220
320
 
221
- Force reinstall to test upgrades:
321
+ ### Develop with live reload
222
322
 
223
323
  ```bash
224
- asm install github:you/awesome-skill --force
324
+ asm link ./my-skill -p claude
225
325
  ```
226
326
 
227
- Non-interactive install (useful for CI):
228
-
229
327
  ```bash
230
- asm install github:you/awesome-skill -p claude --yes --json
328
+ asm link ./skill-a ./skill-b ./skill-c -p claude
231
329
  ```
232
330
 
233
- This catches issues that local development misses — broken repo structure, missing files, invalid frontmatter in a clean install context.
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
331
  ```bash
240
- asm publish ./my-skill
332
+ asm link ./my-skills-folder -p claude
241
333
  ```
242
334
 
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
335
  ```bash
246
- # Anyone can install it by name no URL needed
247
- asm install my-skill
336
+ asm link ./my-skill --name my-alias -p claude --force
248
337
  ```
249
338
 
250
- Preview what the manifest will look like before submitting:
339
+ ### Audit and inspect
251
340
 
252
341
  ```bash
253
- asm publish --dry-run ./my-skill
342
+ asm audit security my-skill
254
343
  ```
255
344
 
256
- Override security warnings (caution: review findings first):
257
-
258
345
  ```bash
259
- asm publish --force ./my-skill
346
+ asm audit security ./path/to/my-skill
260
347
  ```
261
348
 
262
- Skip confirmation in CI:
349
+ ```bash
350
+ asm audit security --all
351
+ ```
263
352
 
264
353
  ```bash
265
- asm publish --yes ./my-skill
354
+ asm inspect my-skill
266
355
  ```
267
356
 
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.
357
+ ```bash
358
+ asm inspect my-skill --json
359
+ ```
269
360
 
270
- ### Typical local development workflow
361
+ ### Test install flow
271
362
 
272
- 1. **Scaffold** — `asm init awesome-skill -p claude`
273
- 2. Edit your `SKILL.md`
274
- 3. **Link for live testing** — `asm link ./awesome-skill -p claude`
275
- 4. Test with your AI agent
276
- 5. **Security audit** — `asm audit security awesome-skill`
277
- 6. **Verify metadata** — `asm inspect awesome-skill`
278
- 7. **Score quality** — `asm eval ./awesome-skill`
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`
363
+ ```bash
364
+ asm install github:you/awesome-skill
365
+ ```
282
366
 
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.
367
+ ```bash
368
+ asm install github:you/awesome-skill -p claude --force --yes --json
369
+ ```
284
370
 
285
- ---
371
+ ### Publish to ASM Registry
286
372
 
287
- ## Skill Verification
373
+ ```bash
374
+ asm publish ./my-skill
375
+ ```
288
376
 
289
- Skills indexed by `asm` are automatically evaluated against a set of verification criteria. Skills that pass all criteria receive a **verified** badge in the catalog and `"verified": true` in the index JSON. Skills that fail any criterion are still indexed but marked as unverified.
377
+ ```bash
378
+ asm publish --dry-run ./my-skill
379
+ ```
290
380
 
291
- ### Verification Criteria
381
+ Requires [`gh` CLI](https://cli.github.com) authenticated with `gh auth login`.
292
382
 
293
- A skill must satisfy **all four** of the following to be verified:
383
+ ### Typical workflow
294
384
 
295
- 1. **Valid frontmatter** -- The SKILL.md file must contain YAML frontmatter with both a `name` and a `description` field. Empty or whitespace-only values fail this check.
385
+ 1. `asm init awesome-skill -p claude`
386
+ 2. Edit `SKILL.md`
387
+ 3. `asm link ./awesome-skill -p claude`
388
+ 4. Test with your agent
389
+ 5. `asm audit security awesome-skill`
390
+ 6. `asm inspect awesome-skill`
391
+ 7. `asm eval ./awesome-skill`
392
+ 8. Push to GitHub
393
+ 9. `asm install github:you/awesome-skill`
394
+ 10. `asm publish ./awesome-skill`
296
395
 
297
- 2. **Meaningful body content** -- The markdown body (everything after the frontmatter block) must contain at least 20 characters of instruction text. A SKILL.md that is only frontmatter with no real guidance for the agent will fail.
396
+ </details>
298
397
 
299
- 3. **No malicious patterns** -- The full SKILL.md content is scanned for dangerous code patterns:
300
- - `atob()` calls (runtime base64 decoding / obfuscation)
301
- - Suspicious base64-encoded strings (40+ character base64 blocks with padding)
302
- - Hex-escape sequences (4+ consecutive `\xNN` escapes)
303
- - Hardcoded credentials (`API_KEY`, `SECRET_KEY`, or `PASSWORD` assignments)
398
+ <details>
399
+ <summary><strong>Skill verification and quality eval</strong></summary>
304
400
 
305
- 4. **Proper structure** -- The skill directory must exist and contain a `SKILL.md` file that the ingestion pipeline can read.
401
+ Indexed skills are evaluated automatically. Skills passing all criteria get a **verified** badge in the catalog.
306
402
 
307
- ### How to Reproduce Locally
403
+ **Verification criteria (all required):**
308
404
 
309
- You can verify your skill before publishing:
405
+ 1. Valid frontmatter with `name` and `description`
406
+ 2. Body content with at least 20 characters of instruction text
407
+ 3. No malicious patterns (`atob()`, suspicious base64, hex escapes, hardcoded credentials)
408
+ 4. Directory contains a readable `SKILL.md`
310
409
 
311
410
  ```bash
312
- # Index your repo -- verification runs automatically during ingestion
313
411
  asm index ingest github:your-user/your-repo
412
+ ```
314
413
 
315
- # Check the output JSON for the verified field
414
+ ```bash
316
415
  asm index search "your-skill" --json
317
416
  ```
318
417
 
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.
320
-
321
- ### Quality Evaluation (`asm eval`)
322
-
323
- Static verification tells you the SKILL.md is well-formed. `asm eval` goes further: the built-in `quality` provider runs a scored rubric over structure, frontmatter, clarity, prompt engineering, context efficiency, safety, testability, and naming — and emits per-category scores plus concrete suggestions for improvement. Zero setup, zero API keys, zero external binaries.
418
+ **Quality scoring** (`asm eval`) runs a rubric over structure, clarity, safety, and naming:
324
419
 
325
420
  ```bash
326
- # Score the skill and print recommendations
327
421
  asm eval ./my-skill
422
+ ```
328
423
 
329
- # CI-friendly machine-readable output
424
+ ```bash
330
425
  asm eval ./my-skill --machine
426
+ ```
331
427
 
332
- # Apply deterministic auto-fixes to SKILL.md
428
+ ```bash
333
429
  asm eval ./my-skill --fix
430
+ ```
334
431
 
335
- # List registered eval providers
432
+ ```bash
336
433
  asm eval-providers list
337
434
  ```
338
435
 
339
- The eval surface is a pluggable provider framework: each provider implements a common `EvalProvider` contract and resolves via semver range. See [`docs/eval-providers.md`](./docs/eval-providers.md) for the provider model.
340
-
341
- ---
436
+ See [`docs/eval-providers.md`](./docs/eval-providers.md) for the provider model.
342
437
 
343
- ## ASM Registry — Install and Publish Skills by Name
438
+ </details>
344
439
 
345
- 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.
440
+ <details>
441
+ <summary><strong>ASM Registry</strong></summary>
346
442
 
347
- ### Install from the registry
443
+ The [ASM Registry](https://github.com/luongnv89/asm-registry) lists community-published skills. Install by name — no GitHub URL needed.
348
444
 
349
445
  ```bash
350
- # Install by bare name (searches the registry)
351
446
  asm install code-review
352
-
353
- # Install by scoped name (author/skill — always unambiguous)
354
- asm install luongnv89/code-review
355
-
356
- # Force a fresh registry fetch (bypasses the 1-hour cache)
357
- asm install code-review --no-cache
358
447
  ```
359
448
 
360
- `asm install` resolves the name against the registry index, downloads the manifest, clones the exact pinned commit, and installs the skill to your agent.
361
-
362
- ### Publish your skill to the registry
363
-
364
- ```bash
365
- asm publish ./my-skill
366
- ```
367
-
368
- The publish pipeline:
369
-
370
- 1. **Validates** your `SKILL.md` frontmatter (name, description, version)
371
- 2. **Security audit** — blocks dangerous skills automatically; warns on risky patterns
372
- 3. **Generates a manifest** with the current commit SHA and a `skill_path` for multi-skill repos
373
- 4. **Opens a PR** against [luongnv89/asm-registry](https://github.com/luongnv89/asm-registry) via the `gh` CLI
374
-
375
- 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.
376
-
377
- | Flag | Description |
378
- | ----------- | ------------------------------------------ |
379
- | `--dry-run` | Preview the manifest without creating a PR |
380
- | `--force` | Override warning-level security findings |
381
- | `--yes` | Skip the confirmation prompt |
382
- | `--machine` | Output as a machine-readable JSON envelope |
383
-
384
- ### How registry resolution works
385
-
386
- When you run `asm install code-review`:
387
-
388
- 1. `asm` fetches the registry index (cached for 1 hour at `~/.config/agent-skill-manager/registry-cache.json`)
389
- 2. Finds the manifest for `code-review` — including the pinned `commit` and `skill_path`
390
- 3. Clones the repository at that exact commit and navigates to the skill subdirectory
391
- 4. Installs as if you had run `asm install github:author/repo#commit:skill_path`
392
-
393
- If multiple authors publish a skill with the same name, `asm` shows a disambiguation prompt. Use a scoped name (`author/skill`) to skip it.
394
-
395
- ---
396
-
397
- ## Get Started in 30 Seconds
398
-
399
- ### npm (recommended)
400
-
401
449
  ```bash
402
- npm install -g agent-skill-manager
450
+ asm install luongnv89/code-review
403
451
  ```
404
452
 
405
- > Runs on **Node.js ≥ 18** for both the CLI and the interactive TUI. No other runtime required.
406
-
407
- ### One-liner install
408
-
409
453
  ```bash
410
- curl -sSL https://raw.githubusercontent.com/luongnv89/agent-skill-manager/main/install.sh | bash
454
+ asm install code-review --no-cache
411
455
  ```
412
456
 
413
- This installs `agent-skill-manager` globally. Then just run:
414
-
415
457
  ```bash
416
- asm
458
+ asm publish ./my-skill
417
459
  ```
418
460
 
419
- <p align="center">
420
- <a href="#cli-commands"><strong>See All Commands &rarr;</strong></a>
421
- </p>
422
-
423
- <a id="troubleshooting"></a>
424
-
425
- ### Shadowed installs
426
-
427
- If you have multiple `asm` binaries on `PATH` (for example, a leftover install from an older package manager), shells resolve whichever appears first and a fresh upgrade can be silently shadowed.
461
+ | Flag | Description |
462
+ | ----------- | ---------------------------------------- |
463
+ | `--dry-run` | Preview manifest without creating a PR |
464
+ | `--force` | Override warning-level security findings |
465
+ | `--yes` | Skip confirmation |
466
+ | `--machine` | JSON output |
428
467
 
429
- **Diagnose:** `asm --version` detects and warns when it sees multiple `asm` binaries on `PATH`. For a full report, run `asm doctor` — it lists the resolved path and any shadowed installs.
468
+ **Resolution flow:** fetch index (1-hour cache) find manifest with pinned commit clone at exact commit install.
430
469
 
431
- **Fix:** remove the stale install with your package manager, then re-run `asm --version` to confirm only one binary is left.
432
-
433
- ---
434
-
435
- ## Open-Source Skill Collections
436
-
437
- A curated list of skill repositories you can install with a single command. Over **2,800 skills** available across these collections:
438
-
439
- ### Top agent skills repositories
470
+ </details>
440
471
 
441
- ASM now indexes the requested top starred agent-skill collections: [`obra/superpowers`](https://github.com/obra/superpowers), [`anthropics/skills`](https://github.com/anthropics/skills), [`garrytan/gstack`](https://github.com/garrytan/gstack), [`Egonex-AI/Understand-Anything`](https://github.com/Egonex-AI/Understand-Anything), [`addyosmani/agent-skills`](https://github.com/addyosmani/agent-skills), [`mattpocock/skills`](https://github.com/mattpocock/skills), [`santifer/career-ops`](https://github.com/santifer/career-ops), [`nextlevelbuilder/ui-ux-pro-max-skill`](https://github.com/nextlevelbuilder/ui-ux-pro-max-skill), [`Leonxlnx/taste-skill`](https://github.com/Leonxlnx/taste-skill), and [`mvanhorn/last30days-skill`](https://github.com/mvanhorn/last30days-skill). Use `asm search <term>` to discover individual skills, then install a collection with `asm install github:owner/repo`.
472
+ <details>
473
+ <summary><strong>Open-source skill collections</strong></summary>
442
474
 
443
- > **Last updated:** 2026-06-18
475
+ Over **2,800 skills** across curated repositories. Use `asm search <term>` to discover, then `asm install github:owner/repo`.
444
476
 
445
- | Repository | Description | Stars | Skills |
446
- | ----------------------------------------------------------------------------------- | ------------------------------------------------------------------- | -----: | -----: |
447
- | [anthropic-skills](https://github.com/anthropics/skills) | Official Agent Skills from Anthropic | 95,957 | 18 |
448
- | [superpowers](https://github.com/obra/superpowers) | Agentic skills framework & development methodology | 89,816 | 14 |
449
- | [everything-claude-code](https://github.com/affaan-m/everything-claude-code) | Performance optimization system for Claude Code, Codex, and beyond | 81,392 | 183 |
450
- | [agency-agents](https://github.com/msitarzewski/agency-agents) | Specialized expert agents with personality and proven deliverables | 50,749 | — |
451
- | [ui-ux-pro-max-skill](https://github.com/nextlevelbuilder/ui-ux-pro-max-skill) | Design intelligence for building professional UI/UX | 43,112 | 7 |
452
- | [antigravity-awesome-skills](https://github.com/sickn33/antigravity-awesome-skills) | 1,000+ battle-tested skills for Claude Code, Cursor, and more | 25,047 | 1,322 |
453
- | [marketingskills](https://github.com/coreyhaines31/marketingskills) | Marketing skills — CRO, copywriting, SEO, analytics, growth | 14,099 | 33 |
454
- | [agentskills](https://github.com/agentskills/agentskills) | Specification and documentation for Agent Skills | 13,342 | — |
455
- | [claude-skills](https://github.com/alirezarezvani/claude-skills) | 192 skills for engineering, marketing, product, compliance, C-level | 7,434 | 451 |
456
- | [taste-skill](https://github.com/Leonxlnx/taste-skill) | Gives your AI good taste — stops generic, boring output | 3,389 | 7 |
457
- | [affiliate-skills](https://github.com/Affitor/affiliate-skills) | Full affiliate marketing funnel: research to deploy | 99 | 48 |
458
- | [skills](https://github.com/luongnv89/skills) | Reusable skills to supercharge your AI agents | 1 | 35 |
477
+ > Last updated: 2026-07-07
459
478
 
460
- Install any collection with an interactive picker:
479
+ | Repository | Description | Stars | Skills |
480
+ | ----------------------------------------------------------------------------------- | ----------------------------------------------- | -----: | -----: |
481
+ | [anthropic-skills](https://github.com/anthropics/skills) | Official Agent Skills from Anthropic | 95,957 | 18 |
482
+ | [superpowers](https://github.com/obra/superpowers) | Agentic skills framework | 89,816 | 14 |
483
+ | [everything-claude-code](https://github.com/affaan-m/everything-claude-code) | Performance optimization for Claude Code, Codex | 81,392 | 183 |
484
+ | [agency-agents](https://github.com/msitarzewski/agency-agents) | Specialized expert agents | 50,749 | — |
485
+ | [ui-ux-pro-max-skill](https://github.com/nextlevelbuilder/ui-ux-pro-max-skill) | Design intelligence for UI/UX | 43,112 | 7 |
486
+ | [antigravity-awesome-skills](https://github.com/sickn33/antigravity-awesome-skills) | 1,000+ skills for Claude Code, Cursor | 25,047 | 1,322 |
487
+ | [marketingskills](https://github.com/coreyhaines31/marketingskills) | Marketing — CRO, SEO, growth | 14,099 | 33 |
488
+ | [agentskills](https://github.com/agentskills/agentskills) | Agent Skills specification | 13,342 | — |
489
+ | [claude-skills](https://github.com/alirezarezvani/claude-skills) | 192 skills across engineering, marketing | 7,434 | 451 |
490
+ | [taste-skill](https://github.com/Leonxlnx/taste-skill) | Stops generic AI output | 3,389 | 7 |
491
+ | [affiliate-skills](https://github.com/Affitor/affiliate-skills) | Affiliate marketing funnel | 99 | 48 |
492
+ | [skills](https://github.com/luongnv89/skills) | Reusable agent skills | 1 | 35 |
461
493
 
462
494
  ```bash
463
495
  asm install github:anthropics/skills
464
496
  ```
465
497
 
466
- Or install everything at once:
467
-
468
498
  ```bash
469
499
  asm install github:anthropics/skills --all
470
500
  ```
471
501
 
472
- <p align="center">
473
- <img src="assets/screenshots/asm-inspect-oss-ready.png" alt="asm inspect — detailed skill information" width="700" />
474
- <br/><em>asm inspect oss-ready — version, creator, and every tool installation at once</em>
475
- </p>
476
-
477
- ---
478
-
479
- ## Supported Agent Tools
480
-
481
- `asm` ships with **19 built-in providers**, all enabled by default. Disable any you don't need via `asm config edit`.
482
-
483
- | Tool | Global Path | Project Path | Default |
484
- | ------------------ | --------------------------------- | ----------------------- | :-----: |
485
- | Claude Code | `~/.claude/skills/` | `.claude/skills/` | enabled |
486
- | Codex | `~/.codex/skills/` | `.codex/skills/` | enabled |
487
- | OpenClaw | `~/.openclaw/skills/` | `.openclaw/skills/` | enabled |
488
- | Agents (generic) | `~/.agents/skills/` | `.agents/skills/` | enabled |
489
- | Cursor | `~/.cursor/rules/` | `.cursor/rules/` | enabled |
490
- | Windsurf | `~/.windsurf/rules/` | `.windsurf/rules/` | enabled |
491
- | Cline | `~/Documents/Cline/Rules/` | `.clinerules/` | enabled |
492
- | Roo Code | `~/.roo/rules/` | `.roo/rules/` | enabled |
493
- | Continue | `~/.continue/rules/` | `.continue/rules/` | enabled |
494
- | GitHub Copilot | `~/.github/instructions/` | `.github/instructions/` | enabled |
495
- | Aider | `~/.aider/skills/` | `.aider/skills/` | enabled |
496
- | OpenCode | `~/.config/opencode/skills/` | `.opencode/skills/` | enabled |
497
- | Zed | `~/.config/zed/prompt_overrides/` | `.zed/rules/` | enabled |
498
- | Augment | `~/.augment/rules/` | `.augment/rules/` | enabled |
499
- | Amp | `~/.amp/skills/` | `.amp/skills/` | enabled |
500
- | Gemini CLI | `~/.gemini/skills/` | `.gemini/skills/` | enabled |
501
- | Google Antigravity | `~/.antigravity/skills/` | `.antigravity/skills/` | enabled |
502
- | Pi | `~/.pi/skills/` | `.pi/skills/` | enabled |
503
- | Hermes | `~/.hermes/skills/` | `.hermes/skills/` | enabled |
504
-
505
- Disable a provider — opens config in `$EDITOR`, set `"enabled": false` for any provider:
506
-
507
- ```bash
508
- asm config edit
509
- ```
510
-
511
- Need a tool not listed? Add a custom provider entry to the config.
512
-
513
- ---
514
-
515
- ## FAQ
516
-
517
- **Is it free?**
518
- Yes. `asm` is MIT licensed and free forever. No accounts, no telemetry, no paywalls.
519
-
520
- **Is it actively maintained?**
521
- Yes — actively developed with frequent tagged releases (46 and counting, latest v2.11.0). Check the [changelog](docs/CHANGELOG.md) for the full history.
522
-
523
- **Which AI agents does it support?**
524
- 19 providers built-in: Claude Code, Codex, OpenClaw, Cursor, Windsurf, Cline, Roo Code, Continue, GitHub Copilot, Aider, OpenCode, Zed, Augment, Amp, Gemini CLI, Google Antigravity, Pi, Hermes, and a generic Agents provider. All 19 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.
525
-
526
- **How does it compare to managing skills manually?**
527
- 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.
528
-
529
- <p align="center">
530
- <img src="assets/screenshots/asm-audit.png" alt="asm audit — duplicate detection across providers" width="700" />
531
- <br/><em>asm audit — finds duplicate groups and tells you exactly which to keep</em>
532
- </p>
533
-
534
- **Can I use it with private repos?**
535
- Yes. Use `--transport ssh` or `--transport auto` to clone private repos via SSH.
536
-
537
- **Is it safe to install skills from GitHub?**
538
- `asm` includes built-in security scanning that flags dangerous patterns (shell execution, network access, credential exposure, obfuscation) before installation. Run `asm audit security github:user/repo` to scan any skill before installing.
539
-
540
- <p align="center">
541
- <img src="assets/screenshots/asm-audit-security-oss-ready.png" alt="asm audit security — security scanning report" width="700" />
542
- <br/><em>asm audit security oss-ready — flags external URLs, shell execution, and credential access</em>
543
- </p>
502
+ </details>
544
503
 
545
- **What's the SKILL.md format?**
546
- Every skill is a directory containing a `SKILL.md` file with YAML frontmatter (name, description, version) followed by markdown instructions the AI agent loads at runtime. Run `asm init my-skill` to scaffold one.
504
+ <details>
505
+ <summary><strong>Supported agent tools</strong></summary>
506
+
507
+ 19 built-in providers, all enabled by default. Disable via `asm config edit`.
508
+
509
+ | Tool | Global Path | Project Path |
510
+ | ------------------ | --------------------------------- | ----------------------- |
511
+ | Claude Code | `~/.claude/skills/` | `.claude/skills/` |
512
+ | Codex | `~/.codex/skills/` | `.codex/skills/` |
513
+ | OpenClaw | `~/.openclaw/skills/` | `.openclaw/skills/` |
514
+ | Agents (generic) | `~/.agents/skills/` | `.agents/skills/` |
515
+ | Cursor | `~/.cursor/rules/` | `.cursor/rules/` |
516
+ | Windsurf | `~/.windsurf/rules/` | `.windsurf/rules/` |
517
+ | Cline | `~/Documents/Cline/Rules/` | `.clinerules/` |
518
+ | Roo Code | `~/.roo/rules/` | `.roo/rules/` |
519
+ | Continue | `~/.continue/rules/` | `.continue/rules/` |
520
+ | GitHub Copilot | `~/.github/instructions/` | `.github/instructions/` |
521
+ | Aider | `~/.aider/skills/` | `.aider/skills/` |
522
+ | OpenCode | `~/.config/opencode/skills/` | `.opencode/skills/` |
523
+ | Zed | `~/.config/zed/prompt_overrides/` | `.zed/rules/` |
524
+ | Augment | `~/.augment/rules/` | `.augment/rules/` |
525
+ | Amp | `~/.amp/skills/` | `.amp/skills/` |
526
+ | Gemini CLI | `~/.gemini/skills/` | `.gemini/skills/` |
527
+ | Google Antigravity | `~/.antigravity/skills/` | `.antigravity/skills/` |
528
+ | Pi | `~/.pi/skills/` | `.pi/skills/` |
529
+ | Hermes | `~/.hermes/skills/` | `.hermes/skills/` |
530
+
531
+ Add custom providers in config.
547
532
 
548
- ---
533
+ </details>
549
534
 
550
- ## Start Managing Your Skills Today
535
+ <details>
536
+ <summary><strong>Troubleshooting: shadowed installs</strong></summary>
551
537
 
552
- You're already using AI agents. You're already installing skills. The only question is whether you keep doing it manually — or let `asm` handle it.
538
+ Multiple `asm` binaries on `PATH` can shadow a fresh upgrade.
553
539
 
554
- MIT licensed. Free forever. One install command.
540
+ **Diagnose:** `asm --version` warns about multiple binaries. Run `asm doctor` for a full report.
555
541
 
556
- <p align="center">
557
- <a href="#get-started-in-30-seconds"><strong>Install agent-skill-manager &rarr;</strong></a>
558
- </p>
542
+ **Fix:** Remove the stale install with your package manager, then confirm with `asm --version`.
559
543
 
560
- ---
544
+ </details>
561
545
 
562
- <details>
546
+ <details id="cli-commands">
563
547
  <summary><strong>CLI Commands</strong></summary>
564
548
 
565
- ### Interactive TUI
566
-
567
- ```bash
568
- asm
569
- ```
570
-
571
549
  ### Commands
572
550
 
573
- | Command | Description |
574
- | ------------------------------- | ----------------------------------------------------- |
575
- | `asm list` | List all discovered skills |
576
- | `asm search <query>` | Search by name/description/provider |
577
- | `asm inspect <skill-name>` | Show detailed info for a skill |
578
- | `asm install <source>` | Install a skill from GitHub or the registry |
579
- | `asm publish [path]` | Publish a skill to the ASM Registry |
580
- | `asm uninstall <skill-name>` | Remove a skill (with confirmation) |
581
- | `asm init <name>` | Scaffold a new skill with SKILL.md template |
582
- | `asm link <path> [<path2> ...]` | Symlink one or more local skills for live development |
583
- | `asm audit` | Detect duplicate skills |
584
- | `asm audit security <name>` | Run security audit on a skill |
585
- | `asm eval <skill>` | Score a skill and print improvement suggestions |
586
- | `asm eval-providers list` | List registered eval providers and versions |
587
- | `asm stats` | Show aggregate skill metrics dashboard |
588
- | `asm export` | Export skill inventory as JSON manifest |
589
- | `asm index ingest <repo>` | Index a skill repo for searching |
590
- | `asm index search <query>` | Search indexed skills |
591
- | `asm index list` | List indexed repositories |
592
- | `asm index remove <owner/repo>` | Remove a repo from the index |
593
- | `asm bundle list` | List saved or pre-defined bundles (`--predefined`) |
594
- | `asm bundle install <name>` | Install every skill in a bundle in one pass |
595
- | `asm bundle create <name>` | Create a bundle from installed skills |
596
- | `asm bundle show <name>` | Show bundle details and skill list |
597
- | `asm bundle modify <name>` | Add/remove skills or update bundle metadata |
598
- | `asm bundle export <name>` | Export a bundle to a JSON file |
599
- | `asm bundle remove <name>` | Remove a saved bundle |
600
- | `asm config show` | Print current config |
601
- | `asm config path` | Print config file path |
602
- | `asm config reset` | Reset config to defaults |
603
- | `asm config edit` | Open config in $EDITOR |
604
-
605
- ### Global Options
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 |
599
+
600
+ ### Global options
606
601
 
607
602
  ```text
608
- -h, --help Show help for any command
609
- -v, --version Print version and exit
610
- --json Output as JSON (list, search, inspect, audit)
611
- -s, --scope <scope> Filter: global, project, or both (default: both)
612
- --sort <field> Sort by: name, version, or location (default: name)
613
- -y, --yes Skip confirmation prompts
603
+ -h, --help Show help
604
+ -v, --version Print version
605
+ --json JSON output
606
+ --machine Stable machine-readable JSON envelope (v1)
607
+ -s, --scope <scope> global, project, or both
608
+ -p, --tool <name> Filter by tool (list, search)
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
613
+ -y, --yes Skip confirmations
614
614
  --no-color Disable ANSI colors
615
+ -V, --verbose Show debug output
615
616
  ```
616
617
 
617
618
  ### Examples
618
619
 
619
- List all global skills sorted by provider location:
620
-
621
620
  ```bash
622
621
  asm list --scope global --sort location
623
622
  ```
624
623
 
625
- When you have many skills installed, `asm list` offers condensed views:
626
-
627
624
  ```bash
628
- asm list --summary # counts by tool/scope/effort only
629
- asm list --compact # one line per skill
630
- asm list --group-by tool # group rows under tool headers
631
- asm list --limit 20 # show only the first 20 rows
625
+ asm list --summary
632
626
  ```
633
627
 
634
- Search for skills and output JSON:
628
+ ```bash
629
+ asm list --compact --group-by tool --limit 20
630
+ ```
635
631
 
636
632
  ```bash
637
- asm search "code review" --json
633
+ asm list --model-invocable --user-invocable
638
634
  ```
639
635
 
640
- Inspect a specific skill:
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`).
641
637
 
642
638
  ```bash
643
- asm inspect my-skill
639
+ asm search "code review" --json
644
640
  ```
645
641
 
646
- Remove duplicates automatically:
647
-
648
642
  ```bash
649
643
  asm audit --yes
650
644
  ```
651
645
 
652
- Security audit a skill before installing:
653
-
654
646
  ```bash
655
647
  asm audit security github:user/repo
656
648
  ```
657
649
 
658
- Audit all installed skills:
659
-
660
650
  ```bash
661
651
  asm audit security --all
662
652
  ```
663
653
 
664
- Score a skill with the static quality provider:
665
-
666
- ```bash
667
- asm eval ./my-skill
668
- ```
669
-
670
- List registered eval providers:
671
-
672
654
  ```bash
673
- asm eval-providers list
655
+ asm stats --tokens
674
656
  ```
675
657
 
676
- Scaffold a skill, link it for live testing, audit, and inspect:
677
-
678
658
  ```bash
679
- asm init my-skill -p claude
659
+ asm audit residency --json
680
660
  ```
681
661
 
682
662
  ```bash
683
- # Link globally (available in all projects)
684
- asm link ./my-skill -p claude
685
-
686
- # Link multiple skills at once
687
- asm link ./skill-a ./skill-b -p claude
663
+ asm eval ./my-skill
688
664
  ```
689
665
 
690
666
  ```bash
691
- asm audit security my-skill
667
+ asm init my-skill -p claude
692
668
  ```
693
669
 
694
670
  ```bash
695
- asm inspect my-skill --json
671
+ asm link ./my-skill -p claude
696
672
  ```
697
673
 
698
- Uninstall without confirmation:
699
-
700
674
  ```bash
701
675
  asm uninstall old-skill --yes
702
676
  ```
703
677
 
704
- Index a skill repo and search it:
705
-
706
678
  ```bash
707
679
  asm index ingest github:anthropics/skills
708
680
  ```
@@ -711,43 +683,33 @@ asm index ingest github:anthropics/skills
711
683
  asm index search "frontend design" --json
712
684
  ```
713
685
 
714
- **Skill bundles** — install a curated set of skills in one command. Pre-defined bundles ship with ASM for common workflows (frontend, devops, iOS release, content writing). Browse them at [luongnv.com/asm/#/bundles](https://luongnv.com/asm/#/bundles) or list them locally:
686
+ **Bundles** — pre-defined sets for common workflows. Browse at [luongnv.com/asm/#/bundles](https://luongnv.com/asm/#/bundles):
715
687
 
716
688
  ```bash
717
689
  asm bundle list --predefined
718
690
  ```
719
691
 
720
- Install every skill in a pre-defined bundle:
721
-
722
692
  ```bash
723
693
  asm bundle install frontend-dev
724
694
  ```
725
695
 
726
- Install from a bundle file (custom or shared):
727
-
728
696
  ```bash
729
697
  asm bundle install ./my-bundle.json
730
698
  ```
731
699
 
732
- Build a custom bundle from your installed skills, then export it to share:
733
-
734
700
  ```bash
735
701
  asm bundle create my-workflow
736
702
  asm bundle export my-workflow ./my-workflow.json
737
703
  ```
738
704
 
739
- A bundle is a JSON file with a `name`, `description`, `author`, and a list of `skills` (each with `name` + `installUrl`). The schema is validated on install — see `src/utils/types.ts` (`BundleManifest`). You can also assemble a custom bundle visually on the website's [/bundles](https://luongnv.com/asm/#/bundles) page and export it as JSON.
740
-
741
- **iOS/Swift catalog note:** ASM indexes public, installable Swift and Apple-platform skill repos from maintainers such as Hacking with Swift (`twostraws`), Antoine van der Lee (`AvdLee`), Dimillian, Rudrank Riyam, and Ivan Magda. Use `asm bundle install ios-release` for a curated SwiftUI, concurrency, testing, persistence, Xcode build, App Store, and release-management starter set, or search the catalog for `swift`, `swiftui`, `swift testing`, `uikit`, `swiftdata`, or `app store connect` to install individual skills. Sources that are private, landing-page-only, or do not expose discoverable `SKILL.md` content are not added as enabled catalog entries.
705
+ **iOS/Swift catalog:** ASM indexes public Swift/Apple skill repos. Use `asm bundle install ios-release` or search for `swift`, `swiftui`, `swift testing`, `uikit`, `swiftdata`, `app store connect`.
742
706
 
743
707
  </details>
744
708
 
745
709
  <details>
746
- <summary><strong>Installing Skills from GitHub</strong></summary>
747
-
748
- Install skills directly from GitHub repositories — supports both single-skill repos and multi-skill collections.
710
+ <summary><strong>Installing skills from GitHub</strong></summary>
749
711
 
750
- **Single-skill repo** (SKILL.md at root):
712
+ **Single-skill repo:**
751
713
 
752
714
  ```bash
753
715
  asm install github:user/my-skill
@@ -757,7 +719,7 @@ asm install github:user/my-skill
757
719
  asm install github:user/my-skill#v1.0.0 -p claude
758
720
  ```
759
721
 
760
- **Multi-skill repo** (skills in subdirectories):
722
+ **Multi-skill repo:**
761
723
 
762
724
  ```bash
763
725
  asm install github:user/skills --path skills/code-review
@@ -767,13 +729,7 @@ asm install github:user/skills --path skills/code-review
767
729
  asm install github:user/skills --all -p claude -y
768
730
  ```
769
731
 
770
- Interactive picker:
771
-
772
- ```bash
773
- asm install github:user/skills
774
- ```
775
-
776
- **Subfolder URL** (auto-detects branch and path):
732
+ **Subfolder URL:**
777
733
 
778
734
  ```bash
779
735
  asm install https://github.com/user/skills/tree/main/skills/agent-config
@@ -783,91 +739,67 @@ asm install https://github.com/user/skills/tree/main/skills/agent-config
783
739
  asm install github:user/skills#main:skills/agent-config
784
740
  ```
785
741
 
786
- **Private repos** (SSH transport):
742
+ **Private repos:**
787
743
 
788
744
  ```bash
789
745
  asm install github:user/private-skill --transport ssh
790
746
  ```
791
747
 
792
- Try HTTPS, fallback to SSH:
793
-
794
748
  ```bash
795
749
  asm install github:user/private-skill -t auto
796
750
  ```
797
751
 
798
- **Vercel skills CLI** (delegates to `npx skills add`, then registers in asm):
752
+ **Vercel skills CLI:**
799
753
 
800
754
  ```bash
801
755
  asm install github:user/skills --method vercel --skill my-skill
802
756
  ```
803
757
 
804
- ```bash
805
- asm install https://github.com/user/skills -m vercel --skill my-skill -y
806
- ```
807
-
808
- **Other options:**
809
-
810
- ```bash
811
- asm install github:user/my-skill --name custom-name
812
- ```
813
-
814
- ```bash
815
- asm install github:user/my-skill --force
816
- ```
817
-
818
- ```bash
819
- asm install github:user/my-skill -p claude --yes --json
820
- ```
758
+ | Flag | Description |
759
+ | ------------------------ | ------------------------------ |
760
+ | `-p, --tool <name>` | Target agent |
761
+ | `--name <name>` | Override directory name |
762
+ | `--path <subdir>` | Install from subdirectory |
763
+ | `--all` | Install all skills in repo |
764
+ | `-m, --method <method>` | `default` or `vercel` |
765
+ | `-t, --transport <mode>` | `https`, `ssh`, or `auto` |
766
+ | `--library` | Install into the local library |
767
+ | `-f, --force` | Overwrite existing |
768
+ | `-y, --yes` | Skip confirmation |
769
+ | `--json` | JSON output |
821
770
 
822
- **Source format:** `github:owner/repo[#branch-or-tag]` or `github:owner/repo#ref:path` for subfolder installs. HTTPS GitHub URLs with `/tree/` paths are also supported the branch and subfolder are auto-detected.
823
-
824
- **Install flags:**
825
-
826
- | Flag | Description |
827
- | ------------------------ | ---------------------------------------------------------- |
828
- | `-p, --tool <name>` | Target tool (claude, codex, cursor, windsurf, etc.) |
829
- | `--name <name>` | Override skill directory name |
830
- | `--path <subdir>` | Install a specific skill from a subdirectory |
831
- | `--all` | Install all skills found in the repo |
832
- | `-m, --method <method>` | Install method: `default` or `vercel` (default: `default`) |
833
- | `--skill <name>` | Alias for `--path` (Vercel skills CLI compatibility) |
834
- | `-t, --transport <mode>` | Transport: `https`, `ssh`, or `auto` (default: `auto`) |
835
- | `-f, --force` | Overwrite if skill already exists |
836
- | `-y, --yes` | Skip confirmation prompt |
837
- | `--json` | Output result as JSON |
838
-
839
- **Multi-skill repo support:** `asm` scans for skills in subdirectories (up to 5 levels deep). Repos with only nested skills use that scan by default. Repos with **both** a root `SKILL.md` and nested skills install the root skill by default; use `--all` to install every discovered skill (root plus nested). In interactive mode, discovery shows a numbered picker. Use `--path` to target a specific skill.
840
-
841
- **Indexing (`asm index ingest` / `npm run preindex`):** Discovery always includes a root `SKILL.md` when present **and** any nested skills in subdirectories, so curated indexes do not silently drop skills when a repo adds a root-level skill.
842
-
843
- The install command clones the repository, validates `SKILL.md` files, scans for security warnings, previews skill metadata, and installs to the selected provider's global skill directory. Requires `git` on PATH.
771
+ Multi-skill repos: scans up to 5 levels deep. Root `SKILL.md` installs by default; use `--all` for every skill. Requires `git` on PATH.
844
772
 
845
773
  </details>
846
774
 
847
775
  <details>
848
- <summary><strong>TUI Keyboard Shortcuts</strong></summary>
849
-
850
- | Key | Action |
851
- | -------------- | ------------------------------------- |
852
- | `↑/↓` or `j/k` | Navigate skill list |
853
- | `Enter` | View skill details |
854
- | `d` | Uninstall selected skill |
855
- | `/` | Search / filter skills |
856
- | `Esc` | Back / clear filter / close dialog |
857
- | `Tab` | Cycle scope: Global → Project → Both |
858
- | `s` | Cycle sort: Name → Version → Location |
859
- | `r` | Refresh / rescan skills |
860
- | `c` | Open configuration |
861
- | `a` | Audit duplicates |
862
- | `q` | Quit |
863
- | `?` | Toggle help overlay |
776
+ <summary><strong>Optional TUI (run <code>asm</code> with no args)</strong></summary>
777
+
778
+ Local browser for skills. The CLI above is the primary interface for agents and automation.
779
+
780
+ ### Keyboard shortcuts
781
+
782
+ | Key | Action |
783
+ | -------------- | ---------------- |
784
+ | `↑/↓` or `j/k` | Navigate list |
785
+ | `Enter` | View details |
786
+ | `d` | Uninstall |
787
+ | `/` | Search / filter |
788
+ | `Esc` | Back / clear |
789
+ | `Tab` | Cycle scope |
790
+ | `s` | Cycle sort |
791
+ | `r` | Refresh |
792
+ | `c` | Configuration |
793
+ | `a` | Audit duplicates |
794
+ | `q` | Quit |
795
+ | `?` | Help |
864
796
 
865
797
  </details>
866
798
 
867
799
  <details>
868
800
  <summary><strong>Configuration</strong></summary>
869
801
 
870
- On first run, a config file is created at `~/.config/agent-skill-manager/config.json` with 19 default providers, all enabled:
802
+ On first run, config is created at `~/.config/agent-skill-manager/config.json`:
871
803
 
872
804
  ```json
873
805
  {
@@ -887,6 +819,27 @@ On first run, a config file is created at `~/.config/agent-skill-manager/config.
887
819
  "project": ".codex/skills",
888
820
  "enabled": true
889
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
+ },
890
843
  {
891
844
  "name": "openclaw",
892
845
  "label": "OpenClaw",
@@ -906,91 +859,84 @@ On first run, a config file is created at `~/.config/agent-skill-manager/config.
906
859
  "label": "Cursor",
907
860
  "global": "~/.cursor/rules",
908
861
  "project": ".cursor/rules",
909
- "enabled": false
862
+ "enabled": true
863
+ },
864
+ {
865
+ "name": "copilot",
866
+ "label": "GitHub Copilot",
867
+ "global": "~/.github/instructions",
868
+ "project": ".github/instructions",
869
+ "enabled": true
910
870
  },
911
871
  {
912
872
  "name": "windsurf",
913
873
  "label": "Windsurf",
914
874
  "global": "~/.windsurf/rules",
915
875
  "project": ".windsurf/rules",
916
- "enabled": false
876
+ "enabled": true
877
+ },
878
+ {
879
+ "name": "antigravity",
880
+ "label": "Google Antigravity",
881
+ "global": "~/.antigravity/skills",
882
+ "project": ".antigravity/skills",
883
+ "enabled": true
884
+ },
885
+ {
886
+ "name": "gemini",
887
+ "label": "Gemini CLI",
888
+ "global": "~/.gemini/skills",
889
+ "project": ".gemini/skills",
890
+ "enabled": true
917
891
  },
918
892
  {
919
893
  "name": "cline",
920
894
  "label": "Cline",
921
895
  "global": "~/Documents/Cline/Rules",
922
896
  "project": ".clinerules",
923
- "enabled": false
897
+ "enabled": true
924
898
  },
925
899
  {
926
900
  "name": "roocode",
927
901
  "label": "Roo Code",
928
902
  "global": "~/.roo/rules",
929
903
  "project": ".roo/rules",
930
- "enabled": false
904
+ "enabled": true
931
905
  },
932
906
  {
933
907
  "name": "continue",
934
908
  "label": "Continue",
935
909
  "global": "~/.continue/rules",
936
910
  "project": ".continue/rules",
937
- "enabled": false
938
- },
939
- {
940
- "name": "copilot",
941
- "label": "GitHub Copilot",
942
- "global": "~/.github/instructions",
943
- "project": ".github/instructions",
944
- "enabled": false
911
+ "enabled": true
945
912
  },
946
913
  {
947
914
  "name": "aider",
948
915
  "label": "Aider",
949
916
  "global": "~/.aider/skills",
950
917
  "project": ".aider/skills",
951
- "enabled": false
952
- },
953
- {
954
- "name": "opencode",
955
- "label": "OpenCode",
956
- "global": "~/.config/opencode/skills",
957
- "project": ".opencode/skills",
958
- "enabled": false
918
+ "enabled": true
959
919
  },
960
920
  {
961
921
  "name": "zed",
962
922
  "label": "Zed",
963
923
  "global": "~/.config/zed/prompt_overrides",
964
924
  "project": ".zed/rules",
965
- "enabled": false
925
+ "enabled": true
966
926
  },
967
927
  {
968
928
  "name": "augment",
969
929
  "label": "Augment",
970
930
  "global": "~/.augment/rules",
971
931
  "project": ".augment/rules",
972
- "enabled": false
932
+ "enabled": true
973
933
  },
974
934
  {
975
935
  "name": "amp",
976
936
  "label": "Amp",
977
937
  "global": "~/.amp/skills",
978
938
  "project": ".amp/skills",
979
- "enabled": false
980
- },
981
- {
982
- "name": "gemini",
983
- "label": "Gemini CLI",
984
- "global": "~/.gemini/skills",
985
- "project": ".gemini/skills",
986
- "enabled": false
987
- },
988
- {
989
- "name": "antigravity",
990
- "label": "Google Antigravity",
991
- "global": "~/.antigravity/skills",
992
- "project": ".antigravity/skills",
993
- "enabled": false
939
+ "enabled": true
994
940
  }
995
941
  ],
996
942
  "customPaths": [],
@@ -1001,26 +947,22 @@ On first run, a config file is created at `~/.config/agent-skill-manager/config.
1001
947
  }
1002
948
  ```
1003
949
 
1004
- - **Enable providers** Set `"enabled": true` to start scanning a provider
1005
- - **Custom paths** Add arbitrary directories via `customPaths`
1006
- - **Disable providers** Set `"enabled": false` to skip scanning a provider
1007
- - **Preferences** Set default scope and sort order
1008
-
1009
- Manage config from the CLI (`asm config show|path|reset|edit`) or toggle providers in the TUI by pressing `c`.
950
+ - All 19 providers are enabled by default
951
+ - Set `"enabled": false` to skip a provider you don't use
952
+ - Add arbitrary directories via `customPaths`
953
+ - Manage via `asm config show|path|reset|edit` or press `c` in the TUI
1010
954
 
1011
955
  </details>
1012
956
 
1013
957
  <details>
1014
- <summary><strong>SKILL.md Format</strong></summary>
958
+ <summary><strong>SKILL.md format</strong></summary>
1015
959
 
1016
- Every skill is a directory containing a `SKILL.md` file. The file starts with a YAML frontmatter block followed by markdown instructions that the AI agent loads at runtime.
1017
-
1018
- ### Frontmatter
960
+ Every skill is a directory with a `SKILL.md` file YAML frontmatter plus markdown instructions.
1019
961
 
1020
962
  ```yaml
1021
963
  ---
1022
964
  name: my-skill
1023
- description: "A short description of what this skill does"
965
+ description: "What this skill does"
1024
966
  license: "MIT"
1025
967
  compatibility: "Claude Code, Codex"
1026
968
  allowed-tools: Bash Read Grep Glob WebFetch
@@ -1031,47 +973,21 @@ metadata:
1031
973
  ---
1032
974
  ```
1033
975
 
1034
- | Field | Required | Description |
1035
- | ------------------ | :------: | --------------------------------------------------- |
1036
- | `name` | yes | Unique skill identifier (used in list/search) |
1037
- | `description` | yes | One-line summary shown in listings |
1038
- | `license` | no | SPDX license identifier (e.g., `MIT`, `Apache-2.0`) |
1039
- | `compatibility` | no | Comma-separated list of compatible AI agents |
1040
- | `allowed-tools` | no | Space or comma-delimited tool names the skill uses |
1041
- | `effort` | no | Effort level: `low`, `medium`, `high`, or `max` |
1042
- | `metadata.version` | no | Semver version string (defaults to `0.0.0`) |
1043
- | `metadata.creator` | no | Author name and optional email |
1044
-
1045
- > **Version resolution:** `asm` prefers `metadata.version` over a top-level `version` field. If neither is present, the version defaults to `0.0.0`. Both formats are supported for backward compatibility.
1046
-
1047
- ### Body
1048
-
1049
- The markdown body after the frontmatter is loaded by the AI agent as the skill's instructions. A typical structure:
1050
-
1051
- ```markdown
1052
- # my-skill
1053
-
1054
- Describe what this skill does here.
1055
-
1056
- ## When to Use
1057
-
1058
- - Trigger conditions for this skill
1059
-
1060
- ## Instructions
1061
-
1062
- - Step-by-step instructions for the agent
1063
- ```
1064
-
1065
- ### Scaffold a new skill
1066
-
1067
- Creates `my-skill/SKILL.md` in the default provider:
976
+ | Field | Required | Description |
977
+ | ------------------ | -------- | ------------------------------ |
978
+ | `name` | yes | Unique identifier |
979
+ | `description` | yes | One-line summary |
980
+ | `license` | no | SPDX identifier |
981
+ | `compatibility` | no | Compatible agents |
982
+ | `allowed-tools` | no | Tools the skill uses |
983
+ | `effort` | no | `low`, `medium`, `high`, `max` |
984
+ | `metadata.version` | no | Semver (default `0.0.0`) |
985
+ | `metadata.creator` | no | Author |
1068
986
 
1069
987
  ```bash
1070
988
  asm init my-skill
1071
989
  ```
1072
990
 
1073
- Creates in Claude Code's skill directory:
1074
-
1075
991
  ```bash
1076
992
  asm init my-skill -p claude
1077
993
  ```
@@ -1079,159 +995,117 @@ asm init my-skill -p claude
1079
995
  </details>
1080
996
 
1081
997
  <details>
1082
- <summary><strong>From Source</strong></summary>
998
+ <summary><strong>From source</strong></summary>
1083
999
 
1084
1000
  ```bash
1085
- git clone https://github.com/luongnv89/agent-skill-manager.git
1086
- cd agent-skill-manager
1001
+ git clone https://github.com/luongnv89/asm.git
1002
+ cd asm
1087
1003
  npm install
1088
1004
  ```
1089
1005
 
1090
- Bundle to `dist/`:
1091
-
1092
1006
  ```bash
1093
1007
  npm run build
1094
1008
  ```
1095
1009
 
1096
- Run from source (development):
1097
-
1098
1010
  ```bash
1099
1011
  npm start
1100
1012
  ```
1101
1013
 
1102
- ### Advanced Install
1103
-
1104
- Download and inspect the install script before running:
1105
-
1106
- ```bash
1107
- curl -sSL https://raw.githubusercontent.com/luongnv89/agent-skill-manager/main/install.sh -o install.sh
1108
- ```
1014
+ Inspect install script before running:
1109
1015
 
1110
1016
  ```bash
1017
+ curl -sSL https://raw.githubusercontent.com/luongnv89/asm/main/install.sh -o install.sh
1111
1018
  less install.sh
1112
- ```
1113
-
1114
- ```bash
1115
1019
  bash install.sh
1116
1020
  ```
1117
1021
 
1118
1022
  </details>
1119
1023
 
1120
1024
  <details>
1121
- <summary><strong>Project Structure</strong></summary>
1025
+ <summary><strong>Project structure</strong></summary>
1122
1026
 
1123
1027
  ```text
1124
- agent-skill-manager/
1125
- ├── bin/ # CLI entry point (source)
1126
- │ └── agent-skill-manager.ts
1127
- ├── dist/ # Built bundle (npm package ships this)
1128
- │ └── agent-skill-manager.js
1129
- ├── scripts/
1130
- │ └── build.ts # Build script with version injection
1028
+ asm/
1029
+ ├── bin/ # CLI entry point
1030
+ ├── dist/ # Built bundle (npm ships this)
1031
+ ├── scripts/ # Build, preindex, catalog
1131
1032
  ├── src/
1132
- │ ├── index.tsx # TUI app bootstrap & keyboard handling (ink)
1133
- │ ├── cli.ts # CLI command parser & dispatcher
1134
- │ ├── config.ts # Config loading & saving
1135
- │ ├── scanner.ts # Skill directory scanning & filtering
1136
- ├── auditor.ts # Duplicate detection & reporting
1137
- │ ├── installer.ts # GitHub skill installation pipeline
1138
- │ ├── uninstaller.ts # Safe skill removal logic
1139
- │ ├── formatter.ts # Output formatting (tables, detail, JSON)
1140
- │ ├── utils/
1141
- │ │ ├── types.ts # Shared TypeScript types
1142
- │ │ ├── colors.ts # TUI color palette
1143
- │ │ ├── version.ts # Version constant
1144
- │ │ ├── frontmatter.ts # SKILL.md frontmatter parser
1145
- │ │ └── editor.ts # $EDITOR command parser
1146
- │ └── views/
1147
- │ ├── dashboard.tsx # Main dashboard layout
1148
- │ ├── skill-list.tsx # Scrollable skill list
1149
- │ ├── skill-detail.tsx # Skill detail view
1150
- │ ├── confirm.tsx # Uninstall confirmation dialog
1151
- │ ├── duplicates.tsx # Duplicate audit view
1152
- │ ├── config.tsx # In-TUI config editor
1153
- │ └── help.tsx # Help view
1033
+ │ ├── index.tsx # TUI (ink)
1034
+ │ ├── cli.ts # CLI dispatcher
1035
+ │ ├── scanner.ts # Skill discovery
1036
+ │ ├── installer.ts # GitHub install pipeline
1037
+ └── views/ # TUI views
1154
1038
  ├── docs/ # Extended documentation
1155
- ├── ARCHITECTURE.md # System design & data flow
1156
- ├── DEVELOPMENT.md # Local setup & debugging
1157
- │ ├── DEPLOYMENT.md # Publishing & CI pipeline
1158
- │ ├── CHANGELOG.md # Version history
1159
- │ └── brand_kit.md # Logo, colors, typography
1160
- ├── assets/
1161
- │ ├── logo/ # SVG logos (full, mark, wordmark, icon, favicon)
1162
- │ └── screenshots/ # TUI screenshots
1163
- ├── install.sh # One-command installer (curl | bash)
1164
- ├── package.json
1165
- ├── tsconfig.json
1166
- └── README.md
1039
+ ├── assets/ # Logos and screenshots
1040
+ ├── install.sh # curl installer
1041
+ └── package.json
1167
1042
  ```
1168
1043
 
1169
1044
  </details>
1170
1045
 
1171
1046
  <details>
1172
- <summary><strong>Tech Stack</strong></summary>
1047
+ <summary><strong>Tech stack</strong></summary>
1173
1048
 
1174
- - **Runtime:** Node.js ≥ 18 (CLI and TUI both run on Node alone)
1175
- - **Language:** TypeScript + TSX (ESNext, strict mode)
1176
- - **Build:** esbuild (ships pre-built via npm)
1177
- - **TUI Framework:** [Ink](https://github.com/vadimdemedes/ink) + [@inkjs/ui](https://github.com/vadimdemedes/ink-ui)
1178
- - **Testing:** Vitest (+ ink-testing-library for TUI)
1049
+ - **Runtime:** Node.js 22+
1050
+ - **Language:** TypeScript + TSX
1051
+ - **Build:** esbuild
1052
+ - **TUI:** [Ink](https://github.com/vadimdemedes/ink) + [@inkjs/ui](https://github.com/vadimdemedes/ink-ui)
1053
+ - **Testing:** Vitest
1179
1054
  - **CI:** GitHub Actions + pre-commit hooks
1180
1055
 
1181
1056
  </details>
1182
1057
 
1183
- <details>
1058
+ <details id="documentation">
1184
1059
  <summary><strong>Documentation</strong></summary>
1185
1060
 
1186
- | Document | Description |
1187
- | ---------------------------------------- | -------------------------------------------------- |
1188
- | [Architecture](docs/ARCHITECTURE.md) | System design, components, and data flow |
1189
- | [Eval Providers](docs/eval-providers.md) | Pluggable eval framework and how to add a provider |
1190
- | [Development](docs/DEVELOPMENT.md) | Local setup, testing, and debugging |
1191
- | [Deployment](docs/DEPLOYMENT.md) | Publishing and CI pipeline |
1192
- | [Changelog](docs/CHANGELOG.md) | Version history |
1193
- | [Brand Kit](docs/brand_kit.md) | Logo, colors, and typography |
1194
- | [Contributing](CONTRIBUTING.md) | How to contribute |
1195
- | [Security](SECURITY.md) | Vulnerability reporting |
1196
- | [Code of Conduct](CODE_OF_CONDUCT.md) | Community guidelines |
1061
+ | Document | Description |
1062
+ | ---------------------------------------- | --------------------------- |
1063
+ | [Architecture](docs/ARCHITECTURE.md) | System design and data flow |
1064
+ | [Eval Providers](docs/eval-providers.md) | Pluggable eval framework |
1065
+ | [Development](docs/DEVELOPMENT.md) | Local setup and debugging |
1066
+ | [Deployment](docs/DEPLOYMENT.md) | Publishing and CI |
1067
+ | [Changelog](docs/CHANGELOG.md) | Version history |
1068
+ | [Brand Kit](docs/brand_kit.md) | Logo, colors, typography |
1069
+ | [Contributing](CONTRIBUTING.md) | How to contribute |
1070
+ | [Security](SECURITY.md) | Vulnerability reporting |
1071
+ | [Code of Conduct](CODE_OF_CONDUCT.md) | Community guidelines |
1072
+
1073
+ **Landing page:** [luongnv.com/asm](https://luongnv.com/asm/) — catalog, bundles, author/repo stats, filtered search.
1197
1074
 
1198
1075
  </details>
1199
1076
 
1200
1077
  ---
1201
1078
 
1202
- <!-- NOTE: The single source of truth for acknowledgements data is website/data/acknowledgements.json.
1203
- When updating contributors or dependencies, edit that JSON file first, then sync this section and website/index.html. -->
1079
+ <!-- NOTE: Single source of truth for acknowledgements is website/data/acknowledgements.json -->
1204
1080
 
1205
1081
  ## Acknowledgements
1206
1082
 
1207
1083
  ### Contributors
1208
1084
 
1209
- | Contributor | PRs |
1210
- | ------------------------------------------ | ---------------------------------------------------------------------------------------------------------------- |
1211
- | [@luongnv89](https://github.com/luongnv89) | [38 merged PRs](https://github.com/luongnv89/agent-skill-manager/pulls?q=is%3Apr+is%3Amerged+author%3Aluongnv89) |
1212
- | [@Mordris](https://github.com/Mordris) | [#111](https://github.com/luongnv89/agent-skill-manager/pull/111) |
1085
+ | Contributor | PRs |
1086
+ | ------------------------------------------ | ------------------------------------------------------------------------------------------------ |
1087
+ | [@luongnv89](https://github.com/luongnv89) | [38 merged PRs](https://github.com/luongnv89/asm/pulls?q=is%3Apr+is%3Amerged+author%3Aluongnv89) |
1088
+ | [@Mordris](https://github.com/Mordris) | [#111](https://github.com/luongnv89/asm/pull/111) |
1213
1089
 
1214
1090
  ### Dependencies
1215
1091
 
1216
- | Library | Description |
1217
- | ------------------------------------------------------- | ------------------------------------------------------------------------------- |
1218
- | [ink](https://github.com/vadimdemedes/ink) | React renderer for interactive command-line apps — powers the asm TUI |
1219
- | [@inkjs/ui](https://github.com/vadimdemedes/ink-ui) | Prebuilt ink components (inputs, spinners, lists) used across the TUI views |
1220
- | [react](https://github.com/facebook/react) | UI library backing the ink TUI components and the web catalog |
1221
- | [react-dom](https://github.com/facebook/react) | React DOM renderer for the browser-based skill catalog |
1222
- | [react-window](https://github.com/bvaughn/react-window) | Windowed list virtualization for the browser-based skill catalog |
1223
- | [yaml](https://github.com/eemeli/yaml) | JavaScript parser and stringifier for YAML — used to parse SKILL.md frontmatter |
1224
-
1225
- ---
1092
+ | Library | Description |
1093
+ | ------------------------------------------------------- | ------------------------------- |
1094
+ | [ink](https://github.com/vadimdemedes/ink) | React renderer for the TUI |
1095
+ | [@inkjs/ui](https://github.com/vadimdemedes/ink-ui) | Prebuilt ink components |
1096
+ | [react](https://github.com/facebook/react) | UI for TUI and web catalog |
1097
+ | [react-dom](https://github.com/facebook/react) | DOM renderer for catalog |
1098
+ | [react-window](https://github.com/bvaughn/react-window) | List virtualization for catalog |
1099
+ | [yaml](https://github.com/eemeli/yaml) | SKILL.md frontmatter parser |
1226
1100
 
1227
1101
  ## Roadmap
1228
1102
 
1229
- Track our progress and upcoming features on the [project kanban board](https://github.com/users/luongnv89/projects/6). See [prd.md](prd.md) for the full product requirements and [tasks.md](tasks.md) for the sprint-based development plan.
1103
+ [Project kanban](https://github.com/users/luongnv89/projects/6) · [prd.md](prd.md) · [tasks.md](tasks.md)
1230
1104
 
1231
1105
  ## Contributing
1232
1106
 
1233
- Contributions are welcome! See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
1107
+ See [CONTRIBUTING.md](CONTRIBUTING.md).
1234
1108
 
1235
1109
  ## License
1236
1110
 
1237
- [MIT](LICENSE) — free to use, modify, and distribute. See the [LICENSE](LICENSE) file for details.
1111
+ [MIT](LICENSE)