add-skill 1.0.20 → 1.0.21

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 (3) hide show
  1. package/README.md +44 -28
  2. package/dist/index.js +92 -70
  3. package/package.json +11 -9
package/README.md CHANGED
@@ -3,7 +3,7 @@
3
3
  Install agent skills onto your coding agents from any git repository.
4
4
 
5
5
  <!-- agent-list:start -->
6
- Supports **Opencode**, **Claude Code**, **Codex**, **Cursor**, and [10 more](#available-agents).
6
+ Supports **Opencode**, **Claude Code**, **Codex**, **Cursor**, and [12 more](#available-agents).
7
7
  <!-- agent-list:end -->
8
8
 
9
9
  ## Quick Start
@@ -82,22 +82,34 @@ Skills can be installed to any of these supported agents. Use `-g, --global` to
82
82
  <!-- available-agents:start -->
83
83
  | Agent | `--agent` | Project Path | Global Path |
84
84
  |-------|-----------|--------------|-------------|
85
- | OpenCode | `opencode` | `.opencode/skills/` | `~/.config/opencode/skills/` |
85
+ | Amp | `amp` | `.agents/skills/` | `~/.config/agents/skills/` |
86
+ | Antigravity | `antigravity` | `.agent/skills/` | `~/.gemini/antigravity/skills/` |
86
87
  | Claude Code | `claude-code` | `.claude/skills/` | `~/.claude/skills/` |
88
+ | Clawdbot | `clawdbot` | `skills/` | `~/.clawdbot/skills/` |
87
89
  | Codex | `codex` | `.codex/skills/` | `~/.codex/skills/` |
88
90
  | Cursor | `cursor` | `.cursor/skills/` | `~/.cursor/skills/` |
89
- | Amp | `amp` | `.agents/skills/` | `~/.config/agents/skills/` |
90
- | Kilo Code | `kilo` | `.kilocode/skills/` | `~/.kilocode/skills/` |
91
- | Roo Code | `roo` | `.roo/skills/` | `~/.roo/skills/` |
92
- | Goose | `goose` | `.goose/skills/` | `~/.config/goose/skills/` |
91
+ | Droid | `droid` | `.factory/skills/` | `~/.factory/skills/` |
93
92
  | Gemini CLI | `gemini-cli` | `.gemini/skills/` | `~/.gemini/skills/` |
94
- | Antigravity | `antigravity` | `.agent/skills/` | `~/.gemini/antigravity/skills/` |
95
93
  | GitHub Copilot | `github-copilot` | `.github/skills/` | `~/.copilot/skills/` |
96
- | Clawdbot | `clawdbot` | `skills/` | `~/.clawdbot/skills/` |
97
- | Droid | `droid` | `.factory/skills/` | `~/.factory/skills/` |
94
+ | Goose | `goose` | `.goose/skills/` | `~/.config/goose/skills/` |
95
+ | Kilo Code | `kilo` | `.kilocode/skills/` | `~/.kilocode/skills/` |
96
+ | Kiro CLI | `kiro-cli` | `.kiro/skills/` | `~/.kiro/skills/` |
97
+ | OpenCode | `opencode` | `.opencode/skills/` | `~/.config/opencode/skills/` |
98
+ | Roo Code | `roo` | `.roo/skills/` | `~/.roo/skills/` |
99
+ | Trae | `trae` | `.trae/skills/` | `~/.trae/skills/` |
98
100
  | Windsurf | `windsurf` | `.windsurf/skills/` | `~/.codeium/windsurf/skills/` |
99
101
  <!-- available-agents:end -->
100
102
 
103
+ > [!NOTE]
104
+ > **Kiro CLI users:** After installing skills, you need to manually add them to your custom agent's `resources` in `.kiro/agents/<agent>.json`:
105
+ > ```json
106
+ > {
107
+ > "resources": [
108
+ > "skill://.kiro/skills/**/SKILL.md"
109
+ > ]
110
+ > }
111
+ > ```
112
+
101
113
  ## Agent Detection
102
114
 
103
115
  The CLI automatically detects which coding agents you have installed by checking for their configuration directories. If none are detected, you'll be prompted to select which agents to install to.
@@ -141,19 +153,21 @@ The CLI searches for skills in these locations within a repository:
141
153
  - `skills/.curated/`
142
154
  - `skills/.experimental/`
143
155
  - `skills/.system/`
144
- - `.opencode/skills/`
156
+ - `.agents/skills/`
157
+ - `.agent/skills/`
145
158
  - `.claude/skills/`
159
+ - `./skills/`
146
160
  - `.codex/skills/`
147
161
  - `.cursor/skills/`
148
- - `.agents/skills/`
149
- - `.kilocode/skills/`
150
- - `.roo/skills/`
151
- - `.goose/skills/`
162
+ - `.factory/skills/`
152
163
  - `.gemini/skills/`
153
- - `.agent/skills/`
154
164
  - `.github/skills/`
155
- - `./skills/`
156
- - `.factory/skills/`
165
+ - `.goose/skills/`
166
+ - `.kilocode/skills/`
167
+ - `.kiro/skills/`
168
+ - `.opencode/skills/`
169
+ - `.roo/skills/`
170
+ - `.trae/skills/`
157
171
  - `.windsurf/skills/`
158
172
  <!-- skill-discovery:end -->
159
173
 
@@ -163,12 +177,12 @@ If no skills are found in standard locations, a recursive search is performed.
163
177
 
164
178
  Skills are generally compatible across agents since they follow a shared [Agent Skills specification](https://agentskills.io). However, some features may be agent-specific:
165
179
 
166
- | Feature | OpenCode | Claude Code | Codex | Cursor | Antigravity | Roo Code | Github Copilot | Amp | Clawdbot |
167
- |---------|----------|-------------|-------|--------|-------------|----------|----------------|-----|----------|
168
- | Basic skills | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
169
- | `allowed-tools` | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
170
- | `context: fork` | No | Yes | No | No | No | No | No | No | No |
171
- | Hooks | No | Yes | No | No | No | No | No | No | No |
180
+ | Feature | OpenCode | Claude Code | Codex | Kiro CLI | Cursor | Antigravity | Roo Code | Github Copilot | Amp | Clawdbot |
181
+ |---------|----------|-------------|-------|----------|--------|-------------|----------|----------------|-----|----------|
182
+ | Basic skills | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
183
+ | `allowed-tools` | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes |
184
+ | `context: fork` | No | Yes | No | No | No | No | No | No | No | No |
185
+ | Hooks | No | Yes | No | No | No | No | No | No | No | No |
172
186
 
173
187
  ## Troubleshooting
174
188
 
@@ -202,18 +216,20 @@ Telemetry is also automatically disabled in CI environments.
202
216
 
203
217
  ## Related Links
204
218
 
205
- - [Vercel Agent Skills Repository](https://github.com/vercel-labs/agent-skills)
206
219
  - [Agent Skills Specification](https://agentskills.io)
207
- - [OpenCode Skills Documentation](https://opencode.ai/docs/skills)
220
+ - [Amp Skills Documentation](https://ampcode.com/manual#agent-skills)
221
+ - [Antigravity Skills Documentation](https://antigravity.google/docs/skills)
208
222
  - [Claude Code Skills Documentation](https://code.claude.com/docs/en/skills)
223
+ - [Clawdbot Skills Documentation](https://docs.clawd.bot/tools/skills)
209
224
  - [Codex Skills Documentation](https://developers.openai.com/codex/skills)
210
225
  - [Cursor Skills Documentation](https://cursor.com/docs/context/skills)
211
226
  - [Gemini CLI Skills Documentation](https://geminicli.com/docs/cli/skills/)
212
- - [Amp Skills Documentation](https://ampcode.com/manual#agent-skills)
213
- - [Antigravity Skills Documentation](https://antigravity.google/docs/skills)
214
227
  - [GitHub Copilot Agent Skills](https://docs.github.com/en/copilot/concepts/agents/about-agent-skills)
228
+ - [Kiro CLI Skills Documentation](https://kiro.dev/docs/cli/custom-agents/configuration-reference/#skill-resources)
229
+ - [OpenCode Skills Documentation](https://opencode.ai/docs/skills)
215
230
  - [Roo Code Skills Documentation](https://docs.roocode.com/features/skills)
216
- - [Clawdbot Skills Documentation](https://docs.clawd.bot/tools/skills)
231
+ - [Trae Skills Documentation](https://docs.trae.ai/ide/skills)
232
+ - [Vercel Agent Skills Repository](https://github.com/vercel-labs/agent-skills)
217
233
 
218
234
  ## License
219
235
 
package/dist/index.js CHANGED
@@ -197,16 +197,18 @@ async function discoverSkills(basePath, subpath) {
197
197
  join2(searchPath, "skills/.curated"),
198
198
  join2(searchPath, "skills/.experimental"),
199
199
  join2(searchPath, "skills/.system"),
200
- join2(searchPath, ".codex/skills"),
200
+ join2(searchPath, ".agent/skills"),
201
+ join2(searchPath, ".agents/skills"),
201
202
  join2(searchPath, ".claude/skills"),
202
- join2(searchPath, ".opencode/skill"),
203
+ join2(searchPath, ".codex/skills"),
203
204
  join2(searchPath, ".cursor/skills"),
204
- join2(searchPath, ".agents/skills"),
205
+ join2(searchPath, ".github/skills"),
206
+ join2(searchPath, ".goose/skills"),
205
207
  join2(searchPath, ".kilocode/skills"),
208
+ join2(searchPath, ".kiro/skills"),
209
+ join2(searchPath, ".opencode/skills"),
206
210
  join2(searchPath, ".roo/skills"),
207
- join2(searchPath, ".goose/skills"),
208
- join2(searchPath, ".agent/skills"),
209
- join2(searchPath, ".github/skills")
211
+ join2(searchPath, ".trae/skills")
210
212
  ];
211
213
  for (const dir of prioritySearchDirs) {
212
214
  try {
@@ -252,13 +254,22 @@ import { join as join3 } from "path";
252
254
  import { existsSync } from "fs";
253
255
  var home = homedir();
254
256
  var agents = {
255
- opencode: {
256
- name: "opencode",
257
- displayName: "OpenCode",
258
- skillsDir: ".opencode/skills",
259
- globalSkillsDir: join3(home, ".config/opencode/skills"),
257
+ amp: {
258
+ name: "amp",
259
+ displayName: "Amp",
260
+ skillsDir: ".agents/skills",
261
+ globalSkillsDir: join3(home, ".config/agents/skills"),
260
262
  detectInstalled: async () => {
261
- return existsSync(join3(home, ".config/opencode")) || existsSync(join3(home, ".claude/skills"));
263
+ return existsSync(join3(home, ".config/amp"));
264
+ }
265
+ },
266
+ antigravity: {
267
+ name: "antigravity",
268
+ displayName: "Antigravity",
269
+ skillsDir: ".agent/skills",
270
+ globalSkillsDir: join3(home, ".gemini/antigravity/skills"),
271
+ detectInstalled: async () => {
272
+ return existsSync(join3(process.cwd(), ".agent")) || existsSync(join3(home, ".gemini/antigravity"));
262
273
  }
263
274
  },
264
275
  "claude-code": {
@@ -270,6 +281,15 @@ var agents = {
270
281
  return existsSync(join3(home, ".claude"));
271
282
  }
272
283
  },
284
+ clawdbot: {
285
+ name: "clawdbot",
286
+ displayName: "Clawdbot",
287
+ skillsDir: "skills",
288
+ globalSkillsDir: join3(home, ".clawdbot/skills"),
289
+ detectInstalled: async () => {
290
+ return existsSync(join3(home, ".clawdbot"));
291
+ }
292
+ },
273
293
  codex: {
274
294
  name: "codex",
275
295
  displayName: "Codex",
@@ -288,31 +308,31 @@ var agents = {
288
308
  return existsSync(join3(home, ".cursor"));
289
309
  }
290
310
  },
291
- amp: {
292
- name: "amp",
293
- displayName: "Amp",
294
- skillsDir: ".agents/skills",
295
- globalSkillsDir: join3(home, ".config/agents/skills"),
311
+ droid: {
312
+ name: "droid",
313
+ displayName: "Droid",
314
+ skillsDir: ".factory/skills",
315
+ globalSkillsDir: join3(home, ".factory/skills"),
296
316
  detectInstalled: async () => {
297
- return existsSync(join3(home, ".config/amp"));
317
+ return existsSync(join3(home, ".factory/skills"));
298
318
  }
299
319
  },
300
- kilo: {
301
- name: "kilo",
302
- displayName: "Kilo Code",
303
- skillsDir: ".kilocode/skills",
304
- globalSkillsDir: join3(home, ".kilocode/skills"),
320
+ "gemini-cli": {
321
+ name: "gemini-cli",
322
+ displayName: "Gemini CLI",
323
+ skillsDir: ".gemini/skills",
324
+ globalSkillsDir: join3(home, ".gemini/skills"),
305
325
  detectInstalled: async () => {
306
- return existsSync(join3(home, ".kilocode"));
326
+ return existsSync(join3(home, ".gemini"));
307
327
  }
308
328
  },
309
- roo: {
310
- name: "roo",
311
- displayName: "Roo Code",
312
- skillsDir: ".roo/skills",
313
- globalSkillsDir: join3(home, ".roo/skills"),
329
+ "github-copilot": {
330
+ name: "github-copilot",
331
+ displayName: "GitHub Copilot",
332
+ skillsDir: ".github/skills",
333
+ globalSkillsDir: join3(home, ".copilot/skills"),
314
334
  detectInstalled: async () => {
315
- return existsSync(join3(home, ".roo"));
335
+ return existsSync(join3(process.cwd(), ".github")) || existsSync(join3(home, ".copilot"));
316
336
  }
317
337
  },
318
338
  goose: {
@@ -324,49 +344,49 @@ var agents = {
324
344
  return existsSync(join3(home, ".config/goose"));
325
345
  }
326
346
  },
327
- "gemini-cli": {
328
- name: "gemini-cli",
329
- displayName: "Gemini CLI",
330
- skillsDir: ".gemini/skills",
331
- globalSkillsDir: join3(home, ".gemini/skills"),
347
+ kilo: {
348
+ name: "kilo",
349
+ displayName: "Kilo Code",
350
+ skillsDir: ".kilocode/skills",
351
+ globalSkillsDir: join3(home, ".kilocode/skills"),
332
352
  detectInstalled: async () => {
333
- return existsSync(join3(home, ".gemini"));
353
+ return existsSync(join3(home, ".kilocode"));
334
354
  }
335
355
  },
336
- antigravity: {
337
- name: "antigravity",
338
- displayName: "Antigravity",
339
- skillsDir: ".agent/skills",
340
- globalSkillsDir: join3(home, ".gemini/antigravity/skills"),
356
+ "kiro-cli": {
357
+ name: "kiro-cli",
358
+ displayName: "Kiro CLI",
359
+ skillsDir: ".kiro/skills",
360
+ globalSkillsDir: join3(home, ".kiro/skills"),
341
361
  detectInstalled: async () => {
342
- return existsSync(join3(process.cwd(), ".agent")) || existsSync(join3(home, ".gemini/antigravity"));
362
+ return existsSync(join3(home, ".kiro"));
343
363
  }
344
364
  },
345
- "github-copilot": {
346
- name: "github-copilot",
347
- displayName: "GitHub Copilot",
348
- skillsDir: ".github/skills",
349
- globalSkillsDir: join3(home, ".copilot/skills"),
365
+ opencode: {
366
+ name: "opencode",
367
+ displayName: "OpenCode",
368
+ skillsDir: ".opencode/skills",
369
+ globalSkillsDir: join3(home, ".config/opencode/skills"),
350
370
  detectInstalled: async () => {
351
- return existsSync(join3(process.cwd(), ".github")) || existsSync(join3(home, ".copilot"));
371
+ return existsSync(join3(home, ".config/opencode")) || existsSync(join3(home, ".claude/skills"));
352
372
  }
353
373
  },
354
- clawdbot: {
355
- name: "clawdbot",
356
- displayName: "Clawdbot",
357
- skillsDir: "skills",
358
- globalSkillsDir: join3(home, ".clawdbot/skills"),
374
+ roo: {
375
+ name: "roo",
376
+ displayName: "Roo Code",
377
+ skillsDir: ".roo/skills",
378
+ globalSkillsDir: join3(home, ".roo/skills"),
359
379
  detectInstalled: async () => {
360
- return existsSync(join3(home, ".clawdbot"));
380
+ return existsSync(join3(home, ".roo"));
361
381
  }
362
382
  },
363
- droid: {
364
- name: "droid",
365
- displayName: "Droid",
366
- skillsDir: ".factory/skills",
367
- globalSkillsDir: join3(home, ".factory/skills"),
383
+ trae: {
384
+ name: "trae",
385
+ displayName: "Trae",
386
+ skillsDir: ".trae/skills",
387
+ globalSkillsDir: join3(home, ".trae/skills"),
368
388
  detectInstalled: async () => {
369
- return existsSync(join3(home, ".factory/skills"));
389
+ return existsSync(join3(home, ".trae"));
370
390
  }
371
391
  },
372
392
  windsurf: {
@@ -519,7 +539,7 @@ function track(data) {
519
539
  // package.json
520
540
  var package_default = {
521
541
  name: "add-skill",
522
- version: "1.0.20",
542
+ version: "1.0.21",
523
543
  description: "Install agent skills onto coding agents (OpenCode, Claude Code, Codex, Cursor)",
524
544
  type: "module",
525
545
  bin: {
@@ -539,19 +559,21 @@ var package_default = {
539
559
  "agent-skills",
540
560
  "skills",
541
561
  "ai-agents",
542
- "opencode",
562
+ "amp",
563
+ "antigravity",
543
564
  "claude-code",
565
+ "clawdbot",
544
566
  "codex",
545
567
  "cursor",
546
- "amp",
547
- "kilo",
548
- "roo",
549
- "goose",
568
+ "droid",
550
569
  "gemini-cli",
551
- "antigravity",
552
570
  "github-copilot",
553
- "clawdbot",
554
- "droid",
571
+ "goose",
572
+ "kilo",
573
+ "kiro-cli",
574
+ "opencode",
575
+ "roo",
576
+ "trae",
555
577
  "windsurf"
556
578
  ],
557
579
  repository: {
@@ -585,7 +607,7 @@ var package_default = {
585
607
  // src/index.ts
586
608
  var version = package_default.version;
587
609
  setVersion(version);
588
- program.name("add-skill").description("Install skills onto coding agents (OpenCode, Claude Code, Codex, Cursor, Antigravity, Github Copilot, Roo Code)").version(version).argument("<source>", "Git repo URL, GitHub shorthand (owner/repo), local path (./path), or direct path to skill").option("-g, --global", "Install skill globally (user-level) instead of project-level").option("-a, --agent <agents...>", "Specify agents to install to (opencode, claude-code, codex, cursor, antigravity, gitub-copilot, roo)").option("-s, --skill <skills...>", "Specify skill names to install (skip selection prompt)").option("-l, --list", "List available skills in the repository without installing").option("-y, --yes", "Skip confirmation prompts").option("--all", "Install all skills to all agents without any prompts (implies -y -g)").configureOutput({
610
+ program.name("add-skill").description("Install skills onto coding agents (OpenCode, Claude Code, Codex, Kiro CLI, Cursor, Antigravity, Github Copilot, Roo Code)").version(version).argument("<source>", "Git repo URL, GitHub shorthand (owner/repo), local path (./path), or direct path to skill").option("-g, --global", "Install skill globally (user-level) instead of project-level").option("-a, --agent <agents...>", "Specify agents to install to (opencode, claude-code, codex, kiro-cli, cursor, antigravity, github-copilot, roo)").option("-s, --skill <skills...>", "Specify skill names to install (skip selection prompt)").option("-l, --list", "List available skills in the repository without installing").option("-y, --yes", "Skip confirmation prompts").option("--all", "Install all skills to all agents without any prompts (implies -y -g)").configureOutput({
589
611
  outputError: (str, write) => {
590
612
  if (str.includes("missing required argument")) {
591
613
  console.log();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "add-skill",
3
- "version": "1.0.20",
3
+ "version": "1.0.21",
4
4
  "description": "Install agent skills onto coding agents (OpenCode, Claude Code, Codex, Cursor)",
5
5
  "type": "module",
6
6
  "bin": {
@@ -20,19 +20,21 @@
20
20
  "agent-skills",
21
21
  "skills",
22
22
  "ai-agents",
23
- "opencode",
23
+ "amp",
24
+ "antigravity",
24
25
  "claude-code",
26
+ "clawdbot",
25
27
  "codex",
26
28
  "cursor",
27
- "amp",
28
- "kilo",
29
- "roo",
30
- "goose",
29
+ "droid",
31
30
  "gemini-cli",
32
- "antigravity",
33
31
  "github-copilot",
34
- "clawdbot",
35
- "droid",
32
+ "goose",
33
+ "kilo",
34
+ "kiro-cli",
35
+ "opencode",
36
+ "roo",
37
+ "trae",
36
38
  "windsurf"
37
39
  ],
38
40
  "repository": {