agent-skills-cli 1.0.7 â 1.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +43 -27
- package/dist/cli/agents.d.ts +10 -0
- package/dist/cli/agents.d.ts.map +1 -0
- package/dist/cli/agents.js +270 -0
- package/dist/cli/agents.js.map +1 -0
- package/dist/cli/commands/audit.d.ts +11 -0
- package/dist/cli/commands/audit.d.ts.map +1 -0
- package/dist/cli/commands/audit.js +168 -0
- package/dist/cli/commands/audit.js.map +1 -0
- package/dist/cli/commands/blueprint.d.ts +11 -0
- package/dist/cli/commands/blueprint.d.ts.map +1 -0
- package/dist/cli/commands/blueprint.js +210 -0
- package/dist/cli/commands/blueprint.js.map +1 -0
- package/dist/cli/commands/bootstrap.d.ts +11 -0
- package/dist/cli/commands/bootstrap.d.ts.map +1 -0
- package/dist/cli/commands/bootstrap.js +267 -0
- package/dist/cli/commands/bootstrap.js.map +1 -0
- package/dist/cli/commands/capture.d.ts +11 -0
- package/dist/cli/commands/capture.d.ts.map +1 -0
- package/dist/cli/commands/capture.js +109 -0
- package/dist/cli/commands/capture.js.map +1 -0
- package/dist/cli/commands/ci.d.ts +11 -0
- package/dist/cli/commands/ci.d.ts.map +1 -0
- package/dist/cli/commands/ci.js +144 -0
- package/dist/cli/commands/ci.js.map +1 -0
- package/dist/cli/commands/collab.d.ts +11 -0
- package/dist/cli/commands/collab.d.ts.map +1 -0
- package/dist/cli/commands/collab.js +196 -0
- package/dist/cli/commands/collab.js.map +1 -0
- package/dist/cli/commands/convert.d.ts +11 -0
- package/dist/cli/commands/convert.d.ts.map +1 -0
- package/dist/cli/commands/convert.js +219 -0
- package/dist/cli/commands/convert.js.map +1 -0
- package/dist/cli/commands/craft.d.ts +18 -0
- package/dist/cli/commands/craft.d.ts.map +1 -0
- package/dist/cli/commands/craft.js +205 -0
- package/dist/cli/commands/craft.js.map +1 -0
- package/dist/cli/commands/export.d.ts +9 -0
- package/dist/cli/commands/export.d.ts.map +1 -0
- package/dist/cli/commands/export.js +103 -0
- package/dist/cli/commands/export.js.map +1 -0
- package/dist/cli/commands/forge.d.ts +11 -0
- package/dist/cli/commands/forge.d.ts.map +1 -0
- package/dist/cli/commands/forge.js +152 -0
- package/dist/cli/commands/forge.js.map +1 -0
- package/dist/cli/commands/grid.d.ts +11 -0
- package/dist/cli/commands/grid.d.ts.map +1 -0
- package/dist/cli/commands/grid.js +217 -0
- package/dist/cli/commands/grid.js.map +1 -0
- package/dist/cli/commands/insight.d.ts +7 -0
- package/dist/cli/commands/insight.d.ts.map +1 -0
- package/dist/cli/commands/insight.js +71 -0
- package/dist/cli/commands/insight.js.map +1 -0
- package/dist/cli/commands/install.d.ts +6 -0
- package/dist/cli/commands/install.d.ts.map +1 -0
- package/dist/cli/commands/install.js +359 -0
- package/dist/cli/commands/install.js.map +1 -0
- package/dist/cli/commands/interactive.d.ts +7 -0
- package/dist/cli/commands/interactive.d.ts.map +1 -0
- package/dist/cli/commands/interactive.js +535 -0
- package/dist/cli/commands/interactive.js.map +1 -0
- package/dist/cli/commands/list.d.ts +6 -0
- package/dist/cli/commands/list.d.ts.map +1 -0
- package/dist/cli/commands/list.js +77 -0
- package/dist/cli/commands/list.js.map +1 -0
- package/dist/cli/commands/lockspec.d.ts +11 -0
- package/dist/cli/commands/lockspec.d.ts.map +1 -0
- package/dist/cli/commands/lockspec.js +179 -0
- package/dist/cli/commands/lockspec.js.map +1 -0
- package/dist/cli/commands/marketplace.d.ts +7 -0
- package/dist/cli/commands/marketplace.d.ts.map +1 -0
- package/dist/cli/commands/marketplace.js +417 -0
- package/dist/cli/commands/marketplace.js.map +1 -0
- package/dist/cli/commands/method.d.ts +7 -0
- package/dist/cli/commands/method.d.ts.map +1 -0
- package/dist/cli/commands/method.js +140 -0
- package/dist/cli/commands/method.js.map +1 -0
- package/dist/cli/commands/mine.d.ts +11 -0
- package/dist/cli/commands/mine.d.ts.map +1 -0
- package/dist/cli/commands/mine.js +254 -0
- package/dist/cli/commands/mine.js.map +1 -0
- package/dist/cli/commands/recall.d.ts +11 -0
- package/dist/cli/commands/recall.d.ts.map +1 -0
- package/dist/cli/commands/recall.js +201 -0
- package/dist/cli/commands/recall.js.map +1 -0
- package/dist/cli/commands/remove.d.ts +40 -0
- package/dist/cli/commands/remove.d.ts.map +1 -0
- package/dist/cli/commands/remove.js +161 -0
- package/dist/cli/commands/remove.js.map +1 -0
- package/dist/cli/commands/rule.d.ts +11 -0
- package/dist/cli/commands/rule.d.ts.map +1 -0
- package/dist/cli/commands/rule.js +230 -0
- package/dist/cli/commands/rule.js.map +1 -0
- package/dist/cli/commands/search.d.ts +6 -0
- package/dist/cli/commands/search.d.ts.map +1 -0
- package/dist/cli/commands/search.js +173 -0
- package/dist/cli/commands/search.js.map +1 -0
- package/dist/cli/commands/show.d.ts +6 -0
- package/dist/cli/commands/show.d.ts.map +1 -0
- package/dist/cli/commands/show.js +150 -0
- package/dist/cli/commands/show.js.map +1 -0
- package/dist/cli/commands/submit.d.ts +15 -0
- package/dist/cli/commands/submit.d.ts.map +1 -0
- package/dist/cli/commands/submit.js +151 -0
- package/dist/cli/commands/submit.js.map +1 -0
- package/dist/cli/commands/suggest.d.ts +11 -0
- package/dist/cli/commands/suggest.d.ts.map +1 -0
- package/dist/cli/commands/suggest.js +164 -0
- package/dist/cli/commands/suggest.js.map +1 -0
- package/dist/cli/commands/track.d.ts +11 -0
- package/dist/cli/commands/track.d.ts.map +1 -0
- package/dist/cli/commands/track.js +199 -0
- package/dist/cli/commands/track.js.map +1 -0
- package/dist/cli/commands/trigger.d.ts +11 -0
- package/dist/cli/commands/trigger.d.ts.map +1 -0
- package/dist/cli/commands/trigger.js +157 -0
- package/dist/cli/commands/trigger.js.map +1 -0
- package/dist/cli/commands/utils-commands.d.ts +9 -0
- package/dist/cli/commands/utils-commands.d.ts.map +1 -0
- package/dist/cli/commands/utils-commands.js +389 -0
- package/dist/cli/commands/utils-commands.js.map +1 -0
- package/dist/cli/commands/validate.d.ts +6 -0
- package/dist/cli/commands/validate.d.ts.map +1 -0
- package/dist/cli/commands/validate.js +40 -0
- package/dist/cli/commands/validate.js.map +1 -0
- package/dist/cli/fzf-search.d.ts +28 -0
- package/dist/cli/fzf-search.d.ts.map +1 -0
- package/dist/cli/fzf-search.js +211 -0
- package/dist/cli/fzf-search.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +87 -2537
- package/dist/cli/index.js.map +1 -1
- package/dist/core/audit.d.ts +24 -0
- package/dist/core/audit.d.ts.map +1 -0
- package/dist/core/audit.js +195 -0
- package/dist/core/audit.js.map +1 -0
- package/dist/core/index.d.ts +10 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +10 -0
- package/dist/core/index.js.map +1 -1
- package/dist/core/installer.d.ts +79 -0
- package/dist/core/installer.d.ts.map +1 -0
- package/dist/core/installer.js +142 -0
- package/dist/core/installer.js.map +1 -0
- package/dist/core/scanner-rules.d.ts +58 -0
- package/dist/core/scanner-rules.d.ts.map +1 -0
- package/dist/core/scanner-rules.js +335 -0
- package/dist/core/scanner-rules.js.map +1 -0
- package/dist/core/skill-lock.d.ts +114 -0
- package/dist/core/skill-lock.d.ts.map +1 -0
- package/dist/core/skill-lock.js +133 -0
- package/dist/core/skill-lock.js.map +1 -0
- package/dist/core/suggest.d.ts +51 -0
- package/dist/core/suggest.d.ts.map +1 -0
- package/dist/core/suggest.js +241 -0
- package/dist/core/suggest.js.map +1 -0
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
# Agent Skills CLI đ
|
|
2
2
|
|
|
3
|
-
> **One CLI. 100,000+ skills.
|
|
3
|
+
> **One CLI. 100,000+ skills. 42 AI agents.**
|
|
4
4
|
|
|
5
5
|
[](https://www.npmjs.com/package/agent-skills-cli)
|
|
6
6
|
[](LICENSE)
|
|
7
7
|
|
|
8
|
-
Install skills from the world's largest marketplace and sync them to **
|
|
8
|
+
Install skills from the world's largest marketplace and sync them to **42 AI agents** including Cursor, Claude Code, GitHub Copilot, Windsurf, Cline, Gemini CLI, Zed, and more â all with a single command.
|
|
9
9
|
|
|
10
10
|
đ **Website:** [agentskills.in](https://agentskills.in)
|
|
11
11
|
|
|
@@ -19,12 +19,12 @@ skills install @anthropic/xlsx
|
|
|
19
19
|
## ⨠Features
|
|
20
20
|
|
|
21
21
|
- **100,000+ Skills** â Access the largest collection of AI agent skills
|
|
22
|
-
- **Interactive Search** â
|
|
23
|
-
- **
|
|
24
|
-
- **
|
|
25
|
-
- **Git URL Support** â Install from GitHub, GitLab, or
|
|
22
|
+
- **FZF Interactive Search** â Real-time search with keyboard navigation: `skills search -i`
|
|
23
|
+
- **42 AI Agents** â Cursor, Claude, Copilot, Windsurf, Cline, Gemini CLI, Zed, and 35+ more
|
|
24
|
+
- **Lock File Tracking** â Track all installations in `~/.skills/skills.lock`
|
|
25
|
+
- **Git URL Support** â Install from GitHub, GitLab, or repos: `skills add owner/repo@skill`
|
|
26
26
|
- **Platform Targeting** â Install to specific platforms with `-t claude,cursor`
|
|
27
|
-
- **Update
|
|
27
|
+
- **Update & Remove** â Full lifecycle: `skills update`, `skills check`, `skills remove`
|
|
28
28
|
- **Privacy-First Telemetry** â Anonymous usage tracking with opt-out
|
|
29
29
|
|
|
30
30
|
---
|
|
@@ -42,24 +42,36 @@ npm install -g agent-skills-cli
|
|
|
42
42
|
## đ Quick Start
|
|
43
43
|
|
|
44
44
|
```bash
|
|
45
|
-
# Install a skill (auto-detects platforms)
|
|
46
|
-
skills install
|
|
45
|
+
# â Install a skill (auto-detects platforms)
|
|
46
|
+
skills install @facebook/verify
|
|
47
|
+
|
|
48
|
+
# â Install from a GitHub repo
|
|
49
|
+
skills add vercel-labs/agent-skills
|
|
47
50
|
|
|
48
51
|
# Install to specific platforms
|
|
49
|
-
skills install @
|
|
52
|
+
skills install @facebook/verify -a claude,cursor
|
|
50
53
|
|
|
51
|
-
# Install
|
|
52
|
-
skills install
|
|
54
|
+
# Install to ALL 42 platforms at once
|
|
55
|
+
skills install @lobehub/typescript --all
|
|
53
56
|
|
|
54
|
-
# Install
|
|
55
|
-
skills install
|
|
57
|
+
# Install globally (home directory)
|
|
58
|
+
skills install pdf -g -a claude
|
|
56
59
|
|
|
57
|
-
# Install from
|
|
58
|
-
skills add
|
|
60
|
+
# Install specific skill from repo
|
|
61
|
+
skills add anthropic/skills@xlsx
|
|
59
62
|
|
|
60
63
|
# List skills in a repo
|
|
61
64
|
skills add owner/repo --list
|
|
62
65
|
|
|
66
|
+
# Remove installed skills
|
|
67
|
+
skills remove xlsx
|
|
68
|
+
|
|
69
|
+
# Check installed skills
|
|
70
|
+
skills check
|
|
71
|
+
|
|
72
|
+
# Update skills from source
|
|
73
|
+
skills update --all
|
|
74
|
+
|
|
63
75
|
# Search and install skills interactively
|
|
64
76
|
skills search python
|
|
65
77
|
|
|
@@ -78,25 +90,29 @@ skills search react --json
|
|
|
78
90
|
| `skills install <name>` | Install a skill from marketplace |
|
|
79
91
|
| `skills add <source>` | Install from Git repo (owner/repo or URL) |
|
|
80
92
|
| `skills search <query>` | Search and install skills interactively |
|
|
81
|
-
| `skills
|
|
82
|
-
| `skills
|
|
93
|
+
| `skills search -i` | FZF-style interactive search with keyboard navigation |
|
|
94
|
+
| `skills check` | Check installed skills with source and version info |
|
|
95
|
+
| `skills update` | Update skills from their source repos |
|
|
96
|
+
| `skills remove` | Remove installed skills (interactive multi-select) |
|
|
83
97
|
| `skills doctor` | Diagnose issues |
|
|
84
98
|
|
|
85
99
|
### Install Options
|
|
86
100
|
|
|
87
101
|
```bash
|
|
88
|
-
skills install
|
|
89
|
-
skills install
|
|
90
|
-
skills install
|
|
91
|
-
skills install
|
|
92
|
-
skills install
|
|
93
|
-
skills install
|
|
102
|
+
skills install @facebook/verify # Auto-detect platforms (prompts)
|
|
103
|
+
skills install @facebook/verify -a cursor # Install to Cursor only
|
|
104
|
+
skills install @lobehub/typescript -a cursor,claude # Install to multiple
|
|
105
|
+
skills install @facebook/verify --all # Install to all 42 agents
|
|
106
|
+
skills install pdf -g -a claude # Install globally (~/.claude/skills/)
|
|
107
|
+
skills install -s verify -a cursor # Install by skill name
|
|
108
|
+
skills add @facebook/verify -a cursor # 'add' is an alias for 'install'
|
|
94
109
|
```
|
|
95
110
|
|
|
96
111
|
### Git URL Install (`skills add`)
|
|
97
112
|
|
|
98
113
|
```bash
|
|
99
114
|
skills add owner/repo # GitHub shorthand
|
|
115
|
+
skills add owner/repo@skill-name # NEW: Install specific skill directly
|
|
100
116
|
skills add https://github.com/user/repo # Full URL
|
|
101
117
|
skills add https://gitlab.com/org/repo # GitLab
|
|
102
118
|
skills add owner/repo --list # List skills in repo
|
|
@@ -116,7 +132,7 @@ skills info # Show installation status
|
|
|
116
132
|
|
|
117
133
|
---
|
|
118
134
|
|
|
119
|
-
## đ¤ Supported Platforms (
|
|
135
|
+
## đ¤ Supported Platforms (42 Agents)
|
|
120
136
|
|
|
121
137
|
| Platform | Project Dir | Global Dir |
|
|
122
138
|
|----------|-------------|------------|
|
|
@@ -127,11 +143,11 @@ skills info # Show installation status
|
|
|
127
143
|
| **Windsurf** | `.windsurf/skills/` | `~/.codeium/windsurf/skills/` |
|
|
128
144
|
| **Cline** | `.cline/skills/` | `~/.cline/skills/` |
|
|
129
145
|
| **Gemini CLI** | `.gemini/skills/` | `~/.gemini/skills/` |
|
|
146
|
+
| **Zed** | `.zed/skills/` | `~/.config/zed/skills/` |
|
|
130
147
|
| **Antigravity** | `.agent/skills/` | `~/.gemini/antigravity/skills/` |
|
|
131
148
|
| **OpenCode** | `.opencode/skill/` | `~/.config/opencode/skill/` |
|
|
132
|
-
| **Amp** | `.agents/skills/` | `~/.config/agents/skills/` |
|
|
133
149
|
|
|
134
|
-
**+
|
|
150
|
+
**+32 more agents:** Amp, Kilo, Roo, Goose, CodeBuddy, Continue, Crush, Clawdbot, Droid, Kiro, MCPJam, Mux, OpenHands, Pi, Qoder, Qwen Code, Trae, Zencoder, Neovate, Command Code, Ara, Aide, Alex, BB, CodeStory, Helix AI, Meekia, Pear AI, Adal, Pochi, Sourcegraph Cody, Void AI
|
|
135
151
|
|
|
136
152
|
---
|
|
137
153
|
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface AgentConfig {
|
|
2
|
+
name: string;
|
|
3
|
+
displayName: string;
|
|
4
|
+
projectDir: string;
|
|
5
|
+
globalDir: string;
|
|
6
|
+
}
|
|
7
|
+
export declare const AGENTS: Record<string, AgentConfig>;
|
|
8
|
+
/** Helper to get install path */
|
|
9
|
+
export declare function getInstallPath(agent: string, global: boolean): string;
|
|
10
|
+
//# sourceMappingURL=agents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/cli/agents.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAgQ9C,CAAC;AAEF,iCAAiC;AACjC,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM,CAIrE"}
|
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared agent configuration used across CLI commands.
|
|
3
|
+
*/
|
|
4
|
+
import { homedir } from 'os';
|
|
5
|
+
const home = homedir();
|
|
6
|
+
export const AGENTS = {
|
|
7
|
+
'cursor': {
|
|
8
|
+
name: 'cursor',
|
|
9
|
+
displayName: 'Cursor',
|
|
10
|
+
projectDir: '.cursor/skills',
|
|
11
|
+
globalDir: `${home}/.cursor/skills`,
|
|
12
|
+
},
|
|
13
|
+
'claude': {
|
|
14
|
+
name: 'claude',
|
|
15
|
+
displayName: 'Claude Code',
|
|
16
|
+
projectDir: '.claude/skills',
|
|
17
|
+
globalDir: `${home}/.claude/skills`,
|
|
18
|
+
},
|
|
19
|
+
'copilot': {
|
|
20
|
+
name: 'copilot',
|
|
21
|
+
displayName: 'GitHub Copilot',
|
|
22
|
+
projectDir: '.github/skills',
|
|
23
|
+
globalDir: `${home}/.github/skills`,
|
|
24
|
+
},
|
|
25
|
+
'codex': {
|
|
26
|
+
name: 'codex',
|
|
27
|
+
displayName: 'Codex',
|
|
28
|
+
projectDir: '.codex/skills',
|
|
29
|
+
globalDir: `${home}/.codex/skills`,
|
|
30
|
+
},
|
|
31
|
+
'antigravity': {
|
|
32
|
+
name: 'antigravity',
|
|
33
|
+
displayName: 'Antigravity',
|
|
34
|
+
projectDir: '.agent/skills',
|
|
35
|
+
globalDir: `${home}/.gemini/antigravity/skills`,
|
|
36
|
+
},
|
|
37
|
+
// New agents from add-skill
|
|
38
|
+
'opencode': {
|
|
39
|
+
name: 'opencode',
|
|
40
|
+
displayName: 'OpenCode',
|
|
41
|
+
projectDir: '.opencode/skill',
|
|
42
|
+
globalDir: `${home}/.config/opencode/skill`,
|
|
43
|
+
},
|
|
44
|
+
'amp': {
|
|
45
|
+
name: 'amp',
|
|
46
|
+
displayName: 'Amp',
|
|
47
|
+
projectDir: '.agents/skills',
|
|
48
|
+
globalDir: `${home}/.config/agents/skills`,
|
|
49
|
+
},
|
|
50
|
+
'kilo': {
|
|
51
|
+
name: 'kilo',
|
|
52
|
+
displayName: 'Kilo Code',
|
|
53
|
+
projectDir: '.kilocode/skills',
|
|
54
|
+
globalDir: `${home}/.kilocode/skills`,
|
|
55
|
+
},
|
|
56
|
+
'roo': {
|
|
57
|
+
name: 'roo',
|
|
58
|
+
displayName: 'Roo Code',
|
|
59
|
+
projectDir: '.roo/skills',
|
|
60
|
+
globalDir: `${home}/.roo/skills`,
|
|
61
|
+
},
|
|
62
|
+
'goose': {
|
|
63
|
+
name: 'goose',
|
|
64
|
+
displayName: 'Goose',
|
|
65
|
+
projectDir: '.goose/skills',
|
|
66
|
+
globalDir: `${home}/.config/goose/skills`,
|
|
67
|
+
},
|
|
68
|
+
// New agents from vercel-labs/skills (19 additional)
|
|
69
|
+
'cline': {
|
|
70
|
+
name: 'cline',
|
|
71
|
+
displayName: 'Cline',
|
|
72
|
+
projectDir: '.cline/skills',
|
|
73
|
+
globalDir: `${home}/.cline/skills`,
|
|
74
|
+
},
|
|
75
|
+
'codebuddy': {
|
|
76
|
+
name: 'codebuddy',
|
|
77
|
+
displayName: 'CodeBuddy',
|
|
78
|
+
projectDir: '.codebuddy/skills',
|
|
79
|
+
globalDir: `${home}/.codebuddy/skills`,
|
|
80
|
+
},
|
|
81
|
+
'command-code': {
|
|
82
|
+
name: 'command-code',
|
|
83
|
+
displayName: 'Command Code',
|
|
84
|
+
projectDir: '.commandcode/skills',
|
|
85
|
+
globalDir: `${home}/.commandcode/skills`,
|
|
86
|
+
},
|
|
87
|
+
'continue': {
|
|
88
|
+
name: 'continue',
|
|
89
|
+
displayName: 'Continue',
|
|
90
|
+
projectDir: '.continue/skills',
|
|
91
|
+
globalDir: `${home}/.continue/skills`,
|
|
92
|
+
},
|
|
93
|
+
'crush': {
|
|
94
|
+
name: 'crush',
|
|
95
|
+
displayName: 'Crush',
|
|
96
|
+
projectDir: '.crush/skills',
|
|
97
|
+
globalDir: `${home}/.config/crush/skills`,
|
|
98
|
+
},
|
|
99
|
+
'clawdbot': {
|
|
100
|
+
name: 'clawdbot',
|
|
101
|
+
displayName: 'Clawdbot',
|
|
102
|
+
projectDir: 'skills',
|
|
103
|
+
globalDir: `${home}/.clawdbot/skills`,
|
|
104
|
+
},
|
|
105
|
+
'droid': {
|
|
106
|
+
name: 'droid',
|
|
107
|
+
displayName: 'Droid',
|
|
108
|
+
projectDir: '.factory/skills',
|
|
109
|
+
globalDir: `${home}/.factory/skills`,
|
|
110
|
+
},
|
|
111
|
+
'gemini-cli': {
|
|
112
|
+
name: 'gemini-cli',
|
|
113
|
+
displayName: 'Gemini CLI',
|
|
114
|
+
projectDir: '.gemini/skills',
|
|
115
|
+
globalDir: `${home}/.gemini/skills`,
|
|
116
|
+
},
|
|
117
|
+
'kiro-cli': {
|
|
118
|
+
name: 'kiro-cli',
|
|
119
|
+
displayName: 'Kiro CLI',
|
|
120
|
+
projectDir: '.kiro/skills',
|
|
121
|
+
globalDir: `${home}/.kiro/skills`,
|
|
122
|
+
},
|
|
123
|
+
'mcpjam': {
|
|
124
|
+
name: 'mcpjam',
|
|
125
|
+
displayName: 'MCPJam',
|
|
126
|
+
projectDir: '.mcpjam/skills',
|
|
127
|
+
globalDir: `${home}/.mcpjam/skills`,
|
|
128
|
+
},
|
|
129
|
+
'mux': {
|
|
130
|
+
name: 'mux',
|
|
131
|
+
displayName: 'Mux',
|
|
132
|
+
projectDir: '.mux/skills',
|
|
133
|
+
globalDir: `${home}/.mux/skills`,
|
|
134
|
+
},
|
|
135
|
+
'openhands': {
|
|
136
|
+
name: 'openhands',
|
|
137
|
+
displayName: 'OpenHands',
|
|
138
|
+
projectDir: '.openhands/skills',
|
|
139
|
+
globalDir: `${home}/.openhands/skills`,
|
|
140
|
+
},
|
|
141
|
+
'pi': {
|
|
142
|
+
name: 'pi',
|
|
143
|
+
displayName: 'Pi',
|
|
144
|
+
projectDir: '.pi/skills',
|
|
145
|
+
globalDir: `${home}/.pi/agent/skills`,
|
|
146
|
+
},
|
|
147
|
+
'qoder': {
|
|
148
|
+
name: 'qoder',
|
|
149
|
+
displayName: 'Qoder',
|
|
150
|
+
projectDir: '.qoder/skills',
|
|
151
|
+
globalDir: `${home}/.qoder/skills`,
|
|
152
|
+
},
|
|
153
|
+
'qwen-code': {
|
|
154
|
+
name: 'qwen-code',
|
|
155
|
+
displayName: 'Qwen Code',
|
|
156
|
+
projectDir: '.qwen/skills',
|
|
157
|
+
globalDir: `${home}/.qwen/skills`,
|
|
158
|
+
},
|
|
159
|
+
'trae': {
|
|
160
|
+
name: 'trae',
|
|
161
|
+
displayName: 'Trae',
|
|
162
|
+
projectDir: '.trae/skills',
|
|
163
|
+
globalDir: `${home}/.trae/skills`,
|
|
164
|
+
},
|
|
165
|
+
'windsurf': {
|
|
166
|
+
name: 'windsurf',
|
|
167
|
+
displayName: 'Windsurf',
|
|
168
|
+
projectDir: '.windsurf/skills',
|
|
169
|
+
globalDir: `${home}/.codeium/windsurf/skills`,
|
|
170
|
+
},
|
|
171
|
+
'zencoder': {
|
|
172
|
+
name: 'zencoder',
|
|
173
|
+
displayName: 'Zencoder',
|
|
174
|
+
projectDir: '.zencoder/skills',
|
|
175
|
+
globalDir: `${home}/.zencoder/skills`,
|
|
176
|
+
},
|
|
177
|
+
'neovate': {
|
|
178
|
+
name: 'neovate',
|
|
179
|
+
displayName: 'Neovate',
|
|
180
|
+
projectDir: '.neovate/skills',
|
|
181
|
+
globalDir: `${home}/.neovate/skills`,
|
|
182
|
+
},
|
|
183
|
+
// Additional agents from Vercel Skills (13 more = 42 total)
|
|
184
|
+
'ara': {
|
|
185
|
+
name: 'ara',
|
|
186
|
+
displayName: 'Ara',
|
|
187
|
+
projectDir: '.ara/skills',
|
|
188
|
+
globalDir: `${home}/.ara/skills`,
|
|
189
|
+
},
|
|
190
|
+
'aide': {
|
|
191
|
+
name: 'aide',
|
|
192
|
+
displayName: 'Aide',
|
|
193
|
+
projectDir: '.aide/skills',
|
|
194
|
+
globalDir: `${home}/.aide/skills`,
|
|
195
|
+
},
|
|
196
|
+
'alex': {
|
|
197
|
+
name: 'alex',
|
|
198
|
+
displayName: 'Alex',
|
|
199
|
+
projectDir: '.alex/skills',
|
|
200
|
+
globalDir: `${home}/.alex/skills`,
|
|
201
|
+
},
|
|
202
|
+
'bb': {
|
|
203
|
+
name: 'bb',
|
|
204
|
+
displayName: 'BB',
|
|
205
|
+
projectDir: '.bb/skills',
|
|
206
|
+
globalDir: `${home}/.bb/skills`,
|
|
207
|
+
},
|
|
208
|
+
'codestory': {
|
|
209
|
+
name: 'codestory',
|
|
210
|
+
displayName: 'CodeStory',
|
|
211
|
+
projectDir: '.codestory/skills',
|
|
212
|
+
globalDir: `${home}/.codestory/skills`,
|
|
213
|
+
},
|
|
214
|
+
'helix-ai': {
|
|
215
|
+
name: 'helix-ai',
|
|
216
|
+
displayName: 'Helix AI',
|
|
217
|
+
projectDir: '.helix/skills',
|
|
218
|
+
globalDir: `${home}/.helix/skills`,
|
|
219
|
+
},
|
|
220
|
+
'meekia': {
|
|
221
|
+
name: 'meekia',
|
|
222
|
+
displayName: 'Meekia',
|
|
223
|
+
projectDir: '.meekia/skills',
|
|
224
|
+
globalDir: `${home}/.meekia/skills`,
|
|
225
|
+
},
|
|
226
|
+
'pear-ai': {
|
|
227
|
+
name: 'pear-ai',
|
|
228
|
+
displayName: 'Pear AI',
|
|
229
|
+
projectDir: '.pearai/skills',
|
|
230
|
+
globalDir: `${home}/.pearai/skills`,
|
|
231
|
+
},
|
|
232
|
+
'adal': {
|
|
233
|
+
name: 'adal',
|
|
234
|
+
displayName: 'Adal',
|
|
235
|
+
projectDir: '.adal/skills',
|
|
236
|
+
globalDir: `${home}/.adal/skills`,
|
|
237
|
+
},
|
|
238
|
+
'pochi': {
|
|
239
|
+
name: 'pochi',
|
|
240
|
+
displayName: 'Pochi',
|
|
241
|
+
projectDir: '.pochi/skills',
|
|
242
|
+
globalDir: `${home}/.pochi/skills`,
|
|
243
|
+
},
|
|
244
|
+
'sourcegraph-cody': {
|
|
245
|
+
name: 'sourcegraph-cody',
|
|
246
|
+
displayName: 'Sourcegraph Cody',
|
|
247
|
+
projectDir: '.sourcegraph/skills',
|
|
248
|
+
globalDir: `${home}/.sourcegraph/skills`,
|
|
249
|
+
},
|
|
250
|
+
'void-ai': {
|
|
251
|
+
name: 'void-ai',
|
|
252
|
+
displayName: 'Void AI',
|
|
253
|
+
projectDir: '.void/skills',
|
|
254
|
+
globalDir: `${home}/.void/skills`,
|
|
255
|
+
},
|
|
256
|
+
'zed': {
|
|
257
|
+
name: 'zed',
|
|
258
|
+
displayName: 'Zed',
|
|
259
|
+
projectDir: '.zed/skills',
|
|
260
|
+
globalDir: `${home}/.zed/skills`,
|
|
261
|
+
},
|
|
262
|
+
};
|
|
263
|
+
/** Helper to get install path */
|
|
264
|
+
export function getInstallPath(agent, global) {
|
|
265
|
+
const config = AGENTS[agent];
|
|
266
|
+
if (!config)
|
|
267
|
+
return `.${agent}/skills`;
|
|
268
|
+
return global ? config.globalDir : config.projectDir;
|
|
269
|
+
}
|
|
270
|
+
//# sourceMappingURL=agents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/cli/agents.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Audit Command
|
|
3
|
+
* Security vulnerability scanning for AI agent skills
|
|
4
|
+
* (SkillKit calls this "scan" â we call it "audit")
|
|
5
|
+
*/
|
|
6
|
+
import { Command } from 'commander';
|
|
7
|
+
/**
|
|
8
|
+
* Register the audit command with commander
|
|
9
|
+
*/
|
|
10
|
+
export declare function registerAuditCommand(program: Command): void;
|
|
11
|
+
//# sourceMappingURL=audit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/audit.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYpC;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAsB3D"}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Audit Command
|
|
3
|
+
* Security vulnerability scanning for AI agent skills
|
|
4
|
+
* (SkillKit calls this "scan" â we call it "audit")
|
|
5
|
+
*/
|
|
6
|
+
import chalk from 'chalk';
|
|
7
|
+
import ora from 'ora';
|
|
8
|
+
import { resolve } from 'path';
|
|
9
|
+
import { runAudit, shouldFail, toSARIF, } from '../../core/audit.js';
|
|
10
|
+
/**
|
|
11
|
+
* Register the audit command with commander
|
|
12
|
+
*/
|
|
13
|
+
export function registerAuditCommand(program) {
|
|
14
|
+
program
|
|
15
|
+
.command('audit <path>')
|
|
16
|
+
.alias('scan')
|
|
17
|
+
.description('Security audit â scan skills for vulnerabilities')
|
|
18
|
+
.option('-f, --format <format>', 'Output format: summary, json, table, sarif', 'summary')
|
|
19
|
+
.option('--fail-on <severity>', 'Exit code 1 if findings at this severity or above (critical, high, medium, low)')
|
|
20
|
+
.option('--skip-rules <rules>', 'Comma-separated rule IDs or categories to skip')
|
|
21
|
+
.action(async (path, options) => {
|
|
22
|
+
try {
|
|
23
|
+
const auditOptions = {
|
|
24
|
+
format: options.format || 'summary',
|
|
25
|
+
failOn: options.failOn,
|
|
26
|
+
skipRules: options.skipRules ? options.skipRules.split(',').map((s) => s.trim()) : [],
|
|
27
|
+
};
|
|
28
|
+
await auditCommand(path, auditOptions);
|
|
29
|
+
}
|
|
30
|
+
catch (err) {
|
|
31
|
+
console.error(chalk.red('Error:'), err.message);
|
|
32
|
+
process.exit(1);
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Run the audit command
|
|
38
|
+
*/
|
|
39
|
+
async function auditCommand(targetPath, options) {
|
|
40
|
+
const resolvedPath = resolve(targetPath);
|
|
41
|
+
const spinner = ora('Scanning for security vulnerabilities...').start();
|
|
42
|
+
const result = await runAudit(resolvedPath, options);
|
|
43
|
+
spinner.succeed(`Scanned ${result.filesScanned} file(s)`);
|
|
44
|
+
console.log('');
|
|
45
|
+
// Output based on format
|
|
46
|
+
switch (options.format) {
|
|
47
|
+
case 'json':
|
|
48
|
+
console.log(JSON.stringify(result, null, 2));
|
|
49
|
+
break;
|
|
50
|
+
case 'sarif':
|
|
51
|
+
console.log(JSON.stringify(toSARIF(result), null, 2));
|
|
52
|
+
break;
|
|
53
|
+
case 'table':
|
|
54
|
+
printTable(result);
|
|
55
|
+
break;
|
|
56
|
+
case 'summary':
|
|
57
|
+
default:
|
|
58
|
+
printSummary(result);
|
|
59
|
+
break;
|
|
60
|
+
}
|
|
61
|
+
// Exit with error if threshold exceeded
|
|
62
|
+
if (options.failOn && shouldFail(result, options.failOn)) {
|
|
63
|
+
console.log('');
|
|
64
|
+
console.log(chalk.red(`â Audit failed: findings at ${options.failOn} severity or above`));
|
|
65
|
+
process.exit(1);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Print summary format
|
|
70
|
+
*/
|
|
71
|
+
function printSummary(result) {
|
|
72
|
+
if (result.findings.length === 0) {
|
|
73
|
+
console.log(chalk.green('đĄī¸ No security issues found!'));
|
|
74
|
+
console.log('');
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
console.log(chalk.bold('đĄī¸ Security Audit Results'));
|
|
78
|
+
console.log('');
|
|
79
|
+
// Group by file
|
|
80
|
+
const byFile = new Map();
|
|
81
|
+
for (const finding of result.findings) {
|
|
82
|
+
const existing = byFile.get(finding.file) || [];
|
|
83
|
+
existing.push(finding);
|
|
84
|
+
byFile.set(finding.file, existing);
|
|
85
|
+
}
|
|
86
|
+
for (const [file, findings] of byFile) {
|
|
87
|
+
console.log(chalk.bold.underline(file));
|
|
88
|
+
console.log('');
|
|
89
|
+
for (const f of findings.sort((a, b) => severityRank(a.severity) - severityRank(b.severity))) {
|
|
90
|
+
const icon = severityIcon(f.severity);
|
|
91
|
+
const color = severityColor(f.severity);
|
|
92
|
+
const ruleId = chalk.dim(`[${f.ruleId}]`);
|
|
93
|
+
console.log(` ${icon} ${color(f.severity.toUpperCase().padEnd(8))} ${ruleId} ${f.title} ${chalk.dim(`(line ${f.line})`)}`);
|
|
94
|
+
console.log(` ${chalk.dim(truncate(f.lineContent, 80))}`);
|
|
95
|
+
console.log('');
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
// Print summary bar
|
|
99
|
+
const parts = [];
|
|
100
|
+
if (result.summary.critical > 0)
|
|
101
|
+
parts.push(chalk.red(`${result.summary.critical} critical`));
|
|
102
|
+
if (result.summary.high > 0)
|
|
103
|
+
parts.push(chalk.red(`${result.summary.high} high`));
|
|
104
|
+
if (result.summary.medium > 0)
|
|
105
|
+
parts.push(chalk.yellow(`${result.summary.medium} medium`));
|
|
106
|
+
if (result.summary.low > 0)
|
|
107
|
+
parts.push(chalk.dim(`${result.summary.low} low`));
|
|
108
|
+
if (result.summary.info > 0)
|
|
109
|
+
parts.push(chalk.dim(`${result.summary.info} info`));
|
|
110
|
+
console.log(chalk.bold(`Summary: ${parts.join(', ')} | ${result.summary.total} finding(s) across ${result.filesScanned} file(s)`));
|
|
111
|
+
console.log('');
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Print table format
|
|
115
|
+
*/
|
|
116
|
+
function printTable(result) {
|
|
117
|
+
if (result.findings.length === 0) {
|
|
118
|
+
console.log(chalk.green('No findings.'));
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
// Header
|
|
122
|
+
console.log(chalk.bold('Severity'.padEnd(10)) +
|
|
123
|
+
chalk.bold('Rule'.padEnd(8)) +
|
|
124
|
+
chalk.bold('Category'.padEnd(22)) +
|
|
125
|
+
chalk.bold('File'.padEnd(30)) +
|
|
126
|
+
chalk.bold('Line'.padEnd(6)) +
|
|
127
|
+
chalk.bold('Title'));
|
|
128
|
+
console.log('â'.repeat(120));
|
|
129
|
+
for (const f of result.findings.sort((a, b) => severityRank(a.severity) - severityRank(b.severity))) {
|
|
130
|
+
const color = severityColor(f.severity);
|
|
131
|
+
console.log(color(f.severity.toUpperCase().padEnd(10)) +
|
|
132
|
+
chalk.dim(f.ruleId.padEnd(8)) +
|
|
133
|
+
f.category.padEnd(22) +
|
|
134
|
+
truncate(f.file, 28).padEnd(30) +
|
|
135
|
+
String(f.line).padEnd(6) +
|
|
136
|
+
f.title);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
function severityRank(severity) {
|
|
140
|
+
const ranks = { critical: 0, high: 1, medium: 2, low: 3, info: 4 };
|
|
141
|
+
return ranks[severity];
|
|
142
|
+
}
|
|
143
|
+
function severityIcon(severity) {
|
|
144
|
+
const icons = {
|
|
145
|
+
critical: 'đ´',
|
|
146
|
+
high: 'đ ',
|
|
147
|
+
medium: 'đĄ',
|
|
148
|
+
low: 'đĩ',
|
|
149
|
+
info: 'âšī¸ ',
|
|
150
|
+
};
|
|
151
|
+
return icons[severity];
|
|
152
|
+
}
|
|
153
|
+
function severityColor(severity) {
|
|
154
|
+
const colors = {
|
|
155
|
+
critical: chalk.red.bold,
|
|
156
|
+
high: chalk.red,
|
|
157
|
+
medium: chalk.yellow,
|
|
158
|
+
low: chalk.blue,
|
|
159
|
+
info: chalk.dim,
|
|
160
|
+
};
|
|
161
|
+
return colors[severity];
|
|
162
|
+
}
|
|
163
|
+
function truncate(str, maxLen) {
|
|
164
|
+
if (str.length <= maxLen)
|
|
165
|
+
return str;
|
|
166
|
+
return str.slice(0, maxLen - 1) + 'âĻ';
|
|
167
|
+
}
|
|
168
|
+
//# sourceMappingURL=audit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audit.js","sourceRoot":"","sources":["../../../src/cli/commands/audit.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Blueprint Command
|
|
3
|
+
* Structured development plans with milestones and tasks
|
|
4
|
+
* (SkillKit calls this "plan" â we call it "blueprint")
|
|
5
|
+
*/
|
|
6
|
+
import { Command } from 'commander';
|
|
7
|
+
/**
|
|
8
|
+
* Register the blueprint command
|
|
9
|
+
*/
|
|
10
|
+
export declare function registerBlueprintCommand(program: Command): void;
|
|
11
|
+
//# sourceMappingURL=blueprint.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blueprint.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/blueprint.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA2BpC;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA4C/D"}
|