@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.
Files changed (3) hide show
  1. package/README.md +19 -9
  2. package/bin/cli.js +87 -28
  3. 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
- **Kiro** - Auto-detected
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
- The CLI automatically detects your IDE and installs to the right location.
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 the npx command
68
- 2. CLI detects your IDE automatically
69
- 3. Skills installed to `.kiro/`, `.cursor/`, or `.windsurf/`
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
- // Check for Kiro
37
- if (fs.existsSync(path.join(cwd, '.kiro'))) return 'kiro';
38
-
39
- // Check for Cursor
40
- if (fs.existsSync(path.join(cwd, '.cursor'))) return 'cursor';
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 for Windsurf
43
- if (fs.existsSync(path.join(cwd, '.windsurf'))) return 'windsurf';
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 homeDir = os.homedir();
47
- if (fs.existsSync(path.join(homeDir, '.kiro'))) return 'kiro';
48
- if (fs.existsSync(path.join(homeDir, '.cursor'))) return 'cursor';
49
- if (fs.existsSync(path.join(homeDir, '.windsurf'))) return 'windsurf';
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 Kiro (most common)
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, `.${ide}`);
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 ${ide.toUpperCase()}...`);
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 ${ide.toUpperCase()}...\n`);
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(`⚠️ .${ide} folder already exists.`);
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: .${ide}/skills/\n`);
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 ${ide.charAt(0).toUpperCase() + ide.slice(1)}`);
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 globalSkillsPath = path.join(homeDir, `.${ide}`, 'skills');
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 ${ide.toUpperCase()}...\n`);
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 ${ide.charAt(0).toUpperCase() + ide.slice(1)}`);
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 Kiro, Cursor, Windsurf & more
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
- Kiro - Automatically detected
186
- Cursor - Automatically detected
187
- Windsurf - Automatically detected
188
- Others - Uses Kiro format by default
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.1",
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",