@votruongdanh/ai-agent-skills 1.0.1 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +19 -9
- package/bin/cli.js +87 -28
- package/package.json +9 -4
package/README.md
CHANGED
|
@@ -17,12 +17,20 @@ That's it! No need to clone repos or download files.
|
|
|
17
17
|
|
|
18
18
|
## 🎯 Supported IDEs
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
✅ **Cursor** - Auto-detected
|
|
22
|
-
✅ **Windsurf** - Auto-detected
|
|
23
|
-
✅ **Others** - Uses Kiro format
|
|
20
|
+
The CLI automatically detects your IDE and installs to the correct location:
|
|
24
21
|
|
|
25
|
-
|
|
22
|
+
✅ **Antigravity** - `.antigravity/` or `.ag/`
|
|
23
|
+
✅ **Kiro** - `.kiro/`
|
|
24
|
+
✅ **Cursor** - `.cursor/`
|
|
25
|
+
✅ **Windsurf** - `.windsurf/`
|
|
26
|
+
✅ **Continue** - `.continue/`
|
|
27
|
+
✅ **Cody** - `.cody/`
|
|
28
|
+
✅ **GitHub Copilot** - `.github/copilot/`
|
|
29
|
+
✅ **Aider** - `.aider/`
|
|
30
|
+
✅ **Tabnine** - `.tabnine/`
|
|
31
|
+
✅ **Others** - Uses Kiro format (most compatible)
|
|
32
|
+
|
|
33
|
+
No configuration needed - just run the install command!
|
|
26
34
|
|
|
27
35
|
## 📦 11 Professional Skills
|
|
28
36
|
|
|
@@ -64,11 +72,13 @@ npx @votruongdanh/ai-agent-skills global
|
|
|
64
72
|
|
|
65
73
|
## 🔧 How It Works
|
|
66
74
|
|
|
67
|
-
1. Run
|
|
68
|
-
2. CLI detects your IDE
|
|
69
|
-
3. Skills installed to
|
|
75
|
+
1. Run `npx @votruongdanh/ai-agent-skills init`
|
|
76
|
+
2. CLI automatically detects your IDE (Antigravity, Kiro, Cursor, etc.)
|
|
77
|
+
3. Skills installed to the correct config folder
|
|
70
78
|
4. Restart your IDE
|
|
71
|
-
5. Type `/` in chat to see skills
|
|
79
|
+
5. Type `/` in chat to see available skills
|
|
80
|
+
|
|
81
|
+
Works with 9+ AI-powered IDEs out of the box!
|
|
72
82
|
|
|
73
83
|
## ⚙️ Customization
|
|
74
84
|
|
package/bin/cli.js
CHANGED
|
@@ -29,29 +29,78 @@ function checkForUpdates(callback) {
|
|
|
29
29
|
}).on('error', () => callback()); // Silent fail
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
-
// Detect IDE type
|
|
32
|
+
// Detect IDE type with expanded support
|
|
33
33
|
function detectIDE() {
|
|
34
34
|
const cwd = process.cwd();
|
|
35
|
+
const homeDir = os.homedir();
|
|
35
36
|
|
|
36
|
-
//
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
37
|
+
// IDE detection map - order matters (most specific first)
|
|
38
|
+
const ideChecks = [
|
|
39
|
+
{ name: 'antigravity', paths: ['.antigravity', '.ag'] },
|
|
40
|
+
{ name: 'kiro', paths: ['.kiro'] },
|
|
41
|
+
{ name: 'cursor', paths: ['.cursor'] },
|
|
42
|
+
{ name: 'windsurf', paths: ['.windsurf'] },
|
|
43
|
+
{ name: 'continue', paths: ['.continue'] },
|
|
44
|
+
{ name: 'cody', paths: ['.cody'] },
|
|
45
|
+
{ name: 'copilot', paths: ['.github/copilot'] },
|
|
46
|
+
{ name: 'aider', paths: ['.aider'] },
|
|
47
|
+
{ name: 'tabnine', paths: ['.tabnine'] },
|
|
48
|
+
];
|
|
41
49
|
|
|
42
|
-
// Check
|
|
43
|
-
|
|
50
|
+
// Check current directory first
|
|
51
|
+
for (const ide of ideChecks) {
|
|
52
|
+
for (const idePath of ide.paths) {
|
|
53
|
+
if (fs.existsSync(path.join(cwd, idePath))) {
|
|
54
|
+
return ide.name;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
44
58
|
|
|
45
59
|
// Check home directory for global configs
|
|
46
|
-
const
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
60
|
+
for (const ide of ideChecks) {
|
|
61
|
+
for (const idePath of ide.paths) {
|
|
62
|
+
if (fs.existsSync(path.join(homeDir, idePath))) {
|
|
63
|
+
return ide.name;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
50
67
|
|
|
51
|
-
// Default to
|
|
68
|
+
// Default to kiro (most common and compatible)
|
|
52
69
|
return 'kiro';
|
|
53
70
|
}
|
|
54
71
|
|
|
72
|
+
// Get IDE display name
|
|
73
|
+
function getIDEDisplayName(ide) {
|
|
74
|
+
const names = {
|
|
75
|
+
'antigravity': 'Antigravity',
|
|
76
|
+
'kiro': 'Kiro',
|
|
77
|
+
'cursor': 'Cursor',
|
|
78
|
+
'windsurf': 'Windsurf',
|
|
79
|
+
'continue': 'Continue',
|
|
80
|
+
'cody': 'Cody',
|
|
81
|
+
'copilot': 'GitHub Copilot',
|
|
82
|
+
'aider': 'Aider',
|
|
83
|
+
'tabnine': 'Tabnine'
|
|
84
|
+
};
|
|
85
|
+
return names[ide] || ide.charAt(0).toUpperCase() + ide.slice(1);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
// Get IDE config directory
|
|
89
|
+
function getIDEConfigDir(ide) {
|
|
90
|
+
const configDirs = {
|
|
91
|
+
'antigravity': '.antigravity',
|
|
92
|
+
'kiro': '.kiro',
|
|
93
|
+
'cursor': '.cursor',
|
|
94
|
+
'windsurf': '.windsurf',
|
|
95
|
+
'continue': '.continue',
|
|
96
|
+
'cody': '.cody',
|
|
97
|
+
'copilot': '.github/copilot',
|
|
98
|
+
'aider': '.aider',
|
|
99
|
+
'tabnine': '.tabnine'
|
|
100
|
+
};
|
|
101
|
+
return configDirs[ide] || `.${ide}`;
|
|
102
|
+
}
|
|
103
|
+
|
|
55
104
|
function copyDirectory(src, dest, options = {}) {
|
|
56
105
|
if (!fs.existsSync(dest)) {
|
|
57
106
|
fs.mkdirSync(dest, { recursive: true });
|
|
@@ -95,21 +144,23 @@ function getInstalledVersion(targetPath) {
|
|
|
95
144
|
function init() {
|
|
96
145
|
const cwd = process.cwd();
|
|
97
146
|
const ide = detectIDE();
|
|
147
|
+
const ideDisplay = getIDEDisplayName(ide);
|
|
148
|
+
const ideConfigDir = getIDEConfigDir(ide);
|
|
98
149
|
const skillsSource = path.join(__dirname, '..', '.kiro');
|
|
99
|
-
const skillsTarget = path.join(cwd,
|
|
150
|
+
const skillsTarget = path.join(cwd, ideConfigDir);
|
|
100
151
|
const installedVersion = getInstalledVersion(skillsTarget);
|
|
101
152
|
const isUpdate = installedVersion !== null;
|
|
102
153
|
|
|
103
154
|
if (isUpdate) {
|
|
104
|
-
console.log(`🔄 Updating AI Agent Skills for ${
|
|
155
|
+
console.log(`🔄 Updating AI Agent Skills for ${ideDisplay}...`);
|
|
105
156
|
console.log(` ${installedVersion} → ${CURRENT_VERSION}\n`);
|
|
106
157
|
} else {
|
|
107
|
-
console.log(`🚀 Installing AI Agent Skills for ${
|
|
158
|
+
console.log(`🚀 Installing AI Agent Skills for ${ideDisplay}...\n`);
|
|
108
159
|
}
|
|
109
160
|
|
|
110
161
|
try {
|
|
111
162
|
if (fs.existsSync(skillsTarget) && !isUpdate) {
|
|
112
|
-
console.log(`⚠️
|
|
163
|
+
console.log(`⚠️ ${ideConfigDir} folder already exists.`);
|
|
113
164
|
console.log(' Merging skills into existing folder...\n');
|
|
114
165
|
}
|
|
115
166
|
|
|
@@ -123,7 +174,7 @@ function init() {
|
|
|
123
174
|
} else {
|
|
124
175
|
console.log('✅ Successfully installed AI Agent Skills!\n');
|
|
125
176
|
}
|
|
126
|
-
console.log(`📦 Location:
|
|
177
|
+
console.log(`📦 Location: ${ideConfigDir}/skills/\n`);
|
|
127
178
|
console.log('📋 Available skills:');
|
|
128
179
|
console.log(' • /brainstorm - Ideation and feature exploration');
|
|
129
180
|
console.log(' • /create - Build new features and components');
|
|
@@ -137,7 +188,7 @@ function init() {
|
|
|
137
188
|
console.log(' • /test - Test strategy and coverage');
|
|
138
189
|
console.log(' • /ui-ux-pro-max - UI/UX improvements and design\n');
|
|
139
190
|
console.log('🎯 Next steps:');
|
|
140
|
-
console.log(` 1. Reopen your project in ${
|
|
191
|
+
console.log(` 1. Reopen your project in ${ideDisplay}`);
|
|
141
192
|
console.log(' 2. Type "/" in chat to see available skills');
|
|
142
193
|
console.log(' 3. Start using skills like /create, /debug, /enhance\n');
|
|
143
194
|
} catch (error) {
|
|
@@ -149,10 +200,12 @@ function init() {
|
|
|
149
200
|
function installGlobal() {
|
|
150
201
|
const homeDir = os.homedir();
|
|
151
202
|
const ide = detectIDE();
|
|
152
|
-
const
|
|
203
|
+
const ideDisplay = getIDEDisplayName(ide);
|
|
204
|
+
const ideConfigDir = getIDEConfigDir(ide);
|
|
205
|
+
const globalSkillsPath = path.join(homeDir, ideConfigDir, 'skills');
|
|
153
206
|
const skillsSource = path.join(__dirname, '..', '.kiro', 'skills');
|
|
154
207
|
|
|
155
|
-
console.log(`🌍 Installing AI Agent Skills globally for ${
|
|
208
|
+
console.log(`🌍 Installing AI Agent Skills globally for ${ideDisplay}...\n`);
|
|
156
209
|
|
|
157
210
|
try {
|
|
158
211
|
if (!fs.existsSync(globalSkillsPath)) {
|
|
@@ -164,7 +217,7 @@ function installGlobal() {
|
|
|
164
217
|
console.log('✅ Successfully installed skills globally!\n');
|
|
165
218
|
console.log('📍 Location: ' + globalSkillsPath + '\n');
|
|
166
219
|
console.log('🎯 Next steps:');
|
|
167
|
-
console.log(` 1. Restart ${
|
|
220
|
+
console.log(` 1. Restart ${ideDisplay}`);
|
|
168
221
|
console.log(' 2. Skills will be available in all projects\n');
|
|
169
222
|
} catch (error) {
|
|
170
223
|
console.error('❌ Error installing global skills:', error.message);
|
|
@@ -174,18 +227,24 @@ function installGlobal() {
|
|
|
174
227
|
|
|
175
228
|
function showHelp() {
|
|
176
229
|
console.log(`
|
|
177
|
-
AI Agent Skills CLI - Universal skills for
|
|
230
|
+
AI Agent Skills CLI - Universal skills for AI-powered IDEs
|
|
178
231
|
|
|
179
232
|
Usage:
|
|
180
233
|
npx @votruongdanh/ai-agent-skills init Install skills in current project
|
|
181
234
|
npx @votruongdanh/ai-agent-skills global Install skills globally
|
|
182
235
|
npx @votruongdanh/ai-agent-skills help Show this help message
|
|
183
236
|
|
|
184
|
-
Supported IDEs:
|
|
185
|
-
✅
|
|
186
|
-
✅
|
|
187
|
-
✅
|
|
188
|
-
✅
|
|
237
|
+
Supported IDEs (Auto-detected):
|
|
238
|
+
✅ Antigravity - .antigravity or .ag folder
|
|
239
|
+
✅ Kiro - .kiro folder
|
|
240
|
+
✅ Cursor - .cursor folder
|
|
241
|
+
✅ Windsurf - .windsurf folder
|
|
242
|
+
✅ Continue - .continue folder
|
|
243
|
+
✅ Cody - .cody folder
|
|
244
|
+
✅ GitHub Copilot - .github/copilot folder
|
|
245
|
+
✅ Aider - .aider folder
|
|
246
|
+
✅ Tabnine - .tabnine folder
|
|
247
|
+
✅ Others - Uses Kiro format by default
|
|
189
248
|
|
|
190
249
|
Available Skills:
|
|
191
250
|
/brainstorm - Ideation and feature exploration
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@votruongdanh/ai-agent-skills",
|
|
3
|
-
"version": "1.0
|
|
4
|
-
"description": "Professional AI Agent Skills - 11 powerful workflows for Kiro, Cursor, Windsurf, and other AI IDEs",
|
|
3
|
+
"version": "1.1.0",
|
|
4
|
+
"description": "Professional AI Agent Skills - 11 powerful workflows for Antigravity, Kiro, Cursor, Windsurf, Continue, Cody, and other AI IDEs",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"bin": {
|
|
7
7
|
"ai-skills": "bin/cli.js"
|
|
@@ -16,6 +16,12 @@
|
|
|
16
16
|
"kiro",
|
|
17
17
|
"cursor",
|
|
18
18
|
"windsurf",
|
|
19
|
+
"antigravity",
|
|
20
|
+
"continue",
|
|
21
|
+
"cody",
|
|
22
|
+
"copilot",
|
|
23
|
+
"aider",
|
|
24
|
+
"tabnine",
|
|
19
25
|
"ai",
|
|
20
26
|
"agent",
|
|
21
27
|
"skills",
|
|
@@ -23,8 +29,7 @@
|
|
|
23
29
|
"development",
|
|
24
30
|
"workflow",
|
|
25
31
|
"automation",
|
|
26
|
-
"productivity"
|
|
27
|
-
"copilot"
|
|
32
|
+
"productivity"
|
|
28
33
|
],
|
|
29
34
|
"author": {
|
|
30
35
|
"name": "Vo Truong Danh",
|