cli-ai-skills 1.9.0 → 1.10.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 (40) hide show
  1. package/bin/cli.js +44 -12
  2. package/lib/adal.js +73 -0
  3. package/lib/antigravity.js +77 -0
  4. package/lib/cursor.js +73 -0
  5. package/lib/detector.js +65 -2
  6. package/lib/interactive.js +25 -1
  7. package/lib/ui/table.js +6 -4
  8. package/lib/utils/path-resolver.js +9 -3
  9. package/lib/version-checker.js +12 -6
  10. package/package.json +1 -1
  11. package/skills/antigravity/agent-skill-discovery/README.md +288 -0
  12. package/skills/antigravity/agent-skill-discovery/SKILL.md +910 -0
  13. package/skills/antigravity/agent-skill-orchestrator/README.md +385 -0
  14. package/skills/antigravity/agent-skill-orchestrator/SKILL.md +1398 -0
  15. package/skills/antigravity/audio-transcriber/CHANGELOG.md +164 -0
  16. package/skills/antigravity/audio-transcriber/README.md +340 -0
  17. package/skills/antigravity/audio-transcriber/SKILL.md +558 -0
  18. package/skills/antigravity/audio-transcriber/examples/basic-transcription.sh +250 -0
  19. package/skills/antigravity/audio-transcriber/references/tools-comparison.md +352 -0
  20. package/skills/antigravity/audio-transcriber/scripts/install-requirements.sh +190 -0
  21. package/skills/antigravity/audio-transcriber/scripts/transcribe.py +486 -0
  22. package/skills/antigravity/prompt-engineer/README.md +659 -0
  23. package/skills/antigravity/prompt-engineer/SKILL.md +252 -0
  24. package/skills/antigravity/skill-creator/README.md +270 -0
  25. package/skills/antigravity/skill-creator/SKILL.md +473 -0
  26. package/skills/antigravity/youtube-summarizer/CHANGELOG.md +61 -0
  27. package/skills/antigravity/youtube-summarizer/README.md +365 -0
  28. package/skills/antigravity/youtube-summarizer/SKILL.md +411 -0
  29. package/skills/antigravity/youtube-summarizer/scripts/extract-transcript.py +65 -0
  30. package/skills/antigravity/youtube-summarizer/scripts/install-dependencies.sh +28 -0
  31. package/skills/claude/audio-transcriber/CHANGELOG.md +0 -5
  32. package/skills/claude/youtube-summarizer/CHANGELOG.md +0 -5
  33. package/skills/codex/audio-transcriber/CHANGELOG.md +0 -5
  34. package/skills/codex/youtube-summarizer/CHANGELOG.md +0 -5
  35. package/skills/copilot/audio-transcriber/CHANGELOG.md +0 -5
  36. package/skills/copilot/youtube-summarizer/CHANGELOG.md +0 -5
  37. package/skills/gemini/audio-transcriber/CHANGELOG.md +0 -5
  38. package/skills/gemini/youtube-summarizer/CHANGELOG.md +0 -5
  39. package/skills/opencode/audio-transcriber/CHANGELOG.md +0 -5
  40. package/skills/opencode/youtube-summarizer/CHANGELOG.md +0 -5
package/bin/cli.js CHANGED
@@ -8,6 +8,9 @@ const { installClaudeSkills } = require('../lib/claude');
8
8
  const { install: installCodexSkills } = require('../lib/codex');
9
9
  const { install: installOpenCodeSkills } = require('../lib/opencode');
10
10
  const { install: installGeminiSkills } = require('../lib/gemini');
11
+ const { install: installAntigravitySkills } = require('../lib/antigravity');
12
+ const { install: installCursorSkills } = require('../lib/cursor');
13
+ const { install: installAdalSkills } = require('../lib/adal');
11
14
  const { listBundles, validateBundle } = require('../lib/bundles');
12
15
  const { searchSkills } = require('../lib/search');
13
16
  const { displayToolsTable } = require('../lib/ui/table');
@@ -94,16 +97,17 @@ async function main() {
94
97
 
95
98
  // Display tools table
96
99
  displayToolsTable(detected);
97
-
98
- const hasAny = detected.copilot.installed || detected.claude.installed ||
99
- detected.codex_cli.installed || detected.codex_app.installed || detected.opencode.installed ||
100
- detected.gemini.installed;
101
-
100
+
101
+ const hasAny = detected.copilot.installed || detected.claude.installed ||
102
+ detected.codex_cli.installed || detected.codex_app.installed || detected.opencode.installed ||
103
+ detected.gemini.installed || detected.antigravity.installed ||
104
+ detected.cursor.installed || detected.adal.installed;
105
+
102
106
  if (!hasAny) {
103
107
  console.log(getInstallInstructions());
104
108
  process.exit(1);
105
109
  }
106
-
110
+
107
111
  // Check for --yes flag (skip prompts)
108
112
  const skipPrompt = args.includes('-y') || args.includes('--yes');
109
113
 
@@ -115,6 +119,9 @@ async function main() {
115
119
  if (detected.codex_cli.installed) platforms.push('codex_cli');
116
120
  if (detected.opencode.installed) platforms.push('opencode');
117
121
  if (detected.gemini.installed) platforms.push('gemini');
122
+ if (detected.antigravity.installed) platforms.push('antigravity');
123
+ if (detected.cursor.installed) platforms.push('cursor');
124
+ if (detected.adal.installed) platforms.push('adal');
118
125
  } else {
119
126
  platforms = await promptPlatforms(detected);
120
127
  }
@@ -149,6 +156,15 @@ async function main() {
149
156
  if (platforms.includes('gemini')) {
150
157
  installGeminiSkills(repoPath, [skill], quiet);
151
158
  }
159
+ if (platforms.includes('antigravity')) {
160
+ installAntigravitySkills(repoPath, [skill], quiet);
161
+ }
162
+ if (platforms.includes('cursor')) {
163
+ installCursorSkills(repoPath, [skill], quiet);
164
+ }
165
+ if (platforms.includes('adal')) {
166
+ installAdalSkills(repoPath, [skill], quiet);
167
+ }
152
168
  });
153
169
 
154
170
  if (!quiet) {
@@ -165,11 +181,12 @@ async function main() {
165
181
 
166
182
  // Display tools table
167
183
  displayToolsTable(detected);
168
-
169
- const hasAny = detected.copilot.installed || detected.claude.installed ||
170
- detected.codex_cli.installed || detected.codex_app.installed || detected.opencode.installed ||
171
- detected.gemini.installed;
172
-
184
+
185
+ const hasAny = detected.copilot.installed || detected.claude.installed ||
186
+ detected.codex_cli.installed || detected.codex_app.installed || detected.opencode.installed ||
187
+ detected.gemini.installed || detected.antigravity.installed ||
188
+ detected.cursor.installed || detected.adal.installed;
189
+
173
190
  if (!hasAny) {
174
191
  console.log(getInstallInstructions());
175
192
  process.exit(1);
@@ -231,6 +248,9 @@ async function main() {
231
248
  if (detected.codex_app.installed) platforms.push('codex_app');
232
249
  if (detected.opencode.installed) platforms.push('opencode');
233
250
  if (detected.gemini.installed) platforms.push('gemini');
251
+ if (detected.antigravity.installed) platforms.push('antigravity');
252
+ if (detected.cursor.installed) platforms.push('cursor');
253
+ if (detected.adal.installed) platforms.push('adal');
234
254
  } else {
235
255
  // Interactive selection
236
256
  platforms = await promptPlatforms(detected);
@@ -271,7 +291,19 @@ async function main() {
271
291
  if (platforms.includes('gemini')) {
272
292
  installGeminiSkills(repoPath, null, quiet);
273
293
  }
274
-
294
+
295
+ if (platforms.includes('antigravity')) {
296
+ installAntigravitySkills(repoPath, null, quiet);
297
+ }
298
+
299
+ if (platforms.includes('cursor')) {
300
+ installCursorSkills(repoPath, null, quiet);
301
+ }
302
+
303
+ if (platforms.includes('adal')) {
304
+ installAdalSkills(repoPath, null, quiet);
305
+ }
306
+
275
307
  if (!quiet) {
276
308
  console.log(chalk.green(`\n✅ Instalação concluída com sucesso!\n`));
277
309
  }
package/lib/adal.js ADDED
@@ -0,0 +1,73 @@
1
+ const fs = require('fs-extra');
2
+ const path = require('path');
3
+ const chalk = require('chalk');
4
+ const os = require('os');
5
+ const { getSkillsSourcePath, getUserSkillsPath } = require('./utils/path-resolver');
6
+
7
+ /**
8
+ * Install skills for AdaL CLI
9
+ * @param {string} repoPath - Path to the cli-ai-skills repository
10
+ * @param {Array<string>|null} skills - Skills to install (null = all)
11
+ * @param {boolean} quiet - Suppress output
12
+ */
13
+ function install(repoPath, skills = null, quiet = false) {
14
+ const targetDir = getUserSkillsPath('adal');
15
+
16
+ // Criar diretório se não existir
17
+ fs.ensureDirSync(targetDir);
18
+
19
+ const sourceDir = getSkillsSourcePath(repoPath, 'adal');
20
+
21
+ if (!fs.existsSync(sourceDir)) {
22
+ if (!quiet) {
23
+ console.log(chalk.red('❌ Diretório .adal/skills não encontrado no repositório'));
24
+ }
25
+ return;
26
+ }
27
+
28
+ // Listar skills disponíveis
29
+ const availableSkills = fs.readdirSync(sourceDir).filter(f => {
30
+ const fullPath = path.join(sourceDir, f);
31
+ return fs.statSync(fullPath).isDirectory() && f !== 'node_modules';
32
+ });
33
+
34
+ const skillsToInstall = skills || availableSkills;
35
+
36
+ let installed = 0;
37
+ let failed = 0;
38
+
39
+ skillsToInstall.forEach(skill => {
40
+ const sourcePath = path.join(sourceDir, skill);
41
+ const targetPath = path.join(targetDir, skill);
42
+
43
+ if (!fs.existsSync(sourcePath)) {
44
+ if (!quiet) {
45
+ console.log(chalk.yellow(`⚠️ Skill não encontrada: ${skill}`));
46
+ }
47
+ failed++;
48
+ return;
49
+ }
50
+
51
+ // Criar symlink
52
+ try {
53
+ if (fs.existsSync(targetPath)) {
54
+ fs.removeSync(targetPath);
55
+ }
56
+ fs.symlinkSync(sourcePath, targetPath);
57
+
58
+ if (!quiet) {
59
+ console.log(chalk.green(` ✓ AdaL: ${skill}`));
60
+ }
61
+ installed++;
62
+ } catch (err) {
63
+ if (!quiet) {
64
+ console.log(chalk.red(` ✗ Erro ao instalar ${skill}: ${err.message}`));
65
+ }
66
+ failed++;
67
+ }
68
+ });
69
+
70
+ return { installed, failed };
71
+ }
72
+
73
+ module.exports = { install };
@@ -0,0 +1,77 @@
1
+ const fs = require('fs');
2
+ const path = require('path');
3
+ const os = require('os');
4
+ const chalk = require('chalk');
5
+ const { getSkillsSourcePath, getUserSkillsPath } = require('./utils/path-resolver');
6
+
7
+ /**
8
+ * Install skills for Google Antigravity
9
+ * @param {string} repoPath - Path to the cli-ai-skills repository
10
+ * @param {Array<string>|null} skills - Skills to install (null = all)
11
+ * @param {boolean} quiet - Suppress output
12
+ */
13
+ function install(repoPath, skills = null, quiet = false) {
14
+ const targetDir = getUserSkillsPath('antigravity');
15
+
16
+ // Create directory if it doesn't exist
17
+ if (!fs.existsSync(targetDir)) {
18
+ fs.mkdirSync(targetDir, { recursive: true });
19
+ }
20
+
21
+ const sourceDir = getSkillsSourcePath(repoPath, 'antigravity');
22
+
23
+ if (!fs.existsSync(sourceDir)) {
24
+ if (!quiet) {
25
+ console.log(chalk.red('❌ Diretório .antigravity/skills não encontrado no repositório'));
26
+ }
27
+ return { installed: 0, failed: 0 };
28
+ }
29
+
30
+ // List available skills
31
+ const availableSkills = fs.readdirSync(sourceDir).filter(f => {
32
+ const fullPath = path.join(sourceDir, f);
33
+ return fs.statSync(fullPath).isDirectory() && f !== 'node_modules';
34
+ });
35
+
36
+ const skillsToInstall = skills || availableSkills;
37
+
38
+ let installed = 0;
39
+ let failed = 0;
40
+
41
+ skillsToInstall.forEach(skill => {
42
+ const sourcePath = path.join(sourceDir, skill);
43
+ const targetPath = path.join(targetDir, skill);
44
+
45
+ if (!fs.existsSync(sourcePath)) {
46
+ if (!quiet) {
47
+ console.log(chalk.yellow(`⚠️ Skill não encontrada: ${skill}`));
48
+ }
49
+ failed++;
50
+ return;
51
+ }
52
+
53
+ // Create symlink (use absolute path to avoid broken symlinks)
54
+ try {
55
+ if (fs.existsSync(targetPath)) {
56
+ fs.rmSync(targetPath, { recursive: true, force: true });
57
+ }
58
+ // Use absolute path for symlink target
59
+ const absoluteSourcePath = path.isAbsolute(sourcePath) ? sourcePath : path.resolve(sourcePath);
60
+ fs.symlinkSync(absoluteSourcePath, targetPath);
61
+
62
+ if (!quiet) {
63
+ console.log(chalk.green(` ✓ Antigravity: ${skill}`));
64
+ }
65
+ installed++;
66
+ } catch (err) {
67
+ if (!quiet) {
68
+ console.log(chalk.red(` ✗ Erro ao instalar ${skill}: ${err.message}`));
69
+ }
70
+ failed++;
71
+ }
72
+ });
73
+
74
+ return { installed, failed };
75
+ }
76
+
77
+ module.exports = { install };
package/lib/cursor.js ADDED
@@ -0,0 +1,73 @@
1
+ const fs = require('fs-extra');
2
+ const path = require('path');
3
+ const chalk = require('chalk');
4
+ const os = require('os');
5
+ const { getSkillsSourcePath, getUserSkillsPath } = require('./utils/path-resolver');
6
+
7
+ /**
8
+ * Install skills for Cursor IDE
9
+ * @param {string} repoPath - Path to the cli-ai-skills repository
10
+ * @param {Array<string>|null} skills - Skills to install (null = all)
11
+ * @param {boolean} quiet - Suppress output
12
+ */
13
+ function install(repoPath, skills = null, quiet = false) {
14
+ const targetDir = getUserSkillsPath('cursor');
15
+
16
+ // Criar diretório se não existir
17
+ fs.ensureDirSync(targetDir);
18
+
19
+ const sourceDir = getSkillsSourcePath(repoPath, 'cursor');
20
+
21
+ if (!fs.existsSync(sourceDir)) {
22
+ if (!quiet) {
23
+ console.log(chalk.red('❌ Diretório .cursor/skills não encontrado no repositório'));
24
+ }
25
+ return;
26
+ }
27
+
28
+ // Listar skills disponíveis
29
+ const availableSkills = fs.readdirSync(sourceDir).filter(f => {
30
+ const fullPath = path.join(sourceDir, f);
31
+ return fs.statSync(fullPath).isDirectory() && f !== 'node_modules';
32
+ });
33
+
34
+ const skillsToInstall = skills || availableSkills;
35
+
36
+ let installed = 0;
37
+ let failed = 0;
38
+
39
+ skillsToInstall.forEach(skill => {
40
+ const sourcePath = path.join(sourceDir, skill);
41
+ const targetPath = path.join(targetDir, skill);
42
+
43
+ if (!fs.existsSync(sourcePath)) {
44
+ if (!quiet) {
45
+ console.log(chalk.yellow(`⚠️ Skill não encontrada: ${skill}`));
46
+ }
47
+ failed++;
48
+ return;
49
+ }
50
+
51
+ // Criar symlink
52
+ try {
53
+ if (fs.existsSync(targetPath)) {
54
+ fs.removeSync(targetPath);
55
+ }
56
+ fs.symlinkSync(sourcePath, targetPath);
57
+
58
+ if (!quiet) {
59
+ console.log(chalk.green(` ✓ Cursor: ${skill}`));
60
+ }
61
+ installed++;
62
+ } catch (err) {
63
+ if (!quiet) {
64
+ console.log(chalk.red(` ✗ Erro ao instalar ${skill}: ${err.message}`));
65
+ }
66
+ failed++;
67
+ }
68
+ });
69
+
70
+ return { installed, failed };
71
+ }
72
+
73
+ module.exports = { install };
package/lib/detector.js CHANGED
@@ -14,7 +14,10 @@ function detectTools() {
14
14
  codex_cli: detectCodexCli(),
15
15
  codex_app: detectCodexApp(),
16
16
  opencode: detectOpenCode(),
17
- gemini: detectGemini()
17
+ gemini: detectGemini(),
18
+ antigravity: detectAntigravity(),
19
+ cursor: detectCursor(),
20
+ adal: detectAdal()
18
21
  };
19
22
 
20
23
  return tools;
@@ -153,6 +156,63 @@ function detectGemini() {
153
156
  }
154
157
  }
155
158
 
159
+ /**
160
+ * Detect Google Antigravity installation
161
+ */
162
+ function detectAntigravity() {
163
+ try {
164
+ const version = execSync('antigravity --version', { encoding: 'utf-8', stdio: ['pipe', 'pipe', 'ignore'] }).trim();
165
+ const pathExec = execSync('which antigravity', { encoding: 'utf-8', stdio: ['pipe', 'pipe', 'ignore'] }).trim();
166
+ return { installed: true, version, path: pathExec };
167
+ } catch {
168
+ return { installed: false, version: null, path: null };
169
+ }
170
+ }
171
+
172
+ /**
173
+ * Detect Cursor IDE
174
+ */
175
+ function detectCursor() {
176
+ // Check macOS Application
177
+ if (os.platform() === 'darwin') {
178
+ const appPath = '/Applications/Cursor.app';
179
+ if (fs.existsSync(appPath)) {
180
+ return { installed: true, version: 'Cursor IDE', path: appPath };
181
+ }
182
+ }
183
+
184
+ // Check for 'cursor' command
185
+ try {
186
+ const pathExec = execSync('which cursor', { encoding: 'utf-8', stdio: ['pipe', 'pipe', 'ignore'] }).trim();
187
+ return { installed: true, version: 'Cursor CLI', path: pathExec };
188
+ } catch {
189
+ // Check for ~/.cursor directory
190
+ const homeDir = os.homedir();
191
+ if (fs.existsSync(path.join(homeDir, '.cursor'))) {
192
+ return { installed: true, version: 'Unknown', path: path.join(homeDir, '.cursor') };
193
+ }
194
+ return { installed: false, version: null, path: null };
195
+ }
196
+ }
197
+
198
+ /**
199
+ * Detect AdaL CLI
200
+ */
201
+ function detectAdal() {
202
+ try {
203
+ const version = execSync('adal --version', { encoding: 'utf-8', stdio: ['pipe', 'pipe', 'ignore'] }).trim();
204
+ const pathExec = execSync('which adal', { encoding: 'utf-8', stdio: ['pipe', 'pipe', 'ignore'] }).trim();
205
+ return { installed: true, version, path: pathExec };
206
+ } catch {
207
+ // Check for ~/.adal directory
208
+ const homeDir = os.homedir();
209
+ if (fs.existsSync(path.join(homeDir, '.adal'))) {
210
+ return { installed: true, version: 'Unknown', path: path.join(homeDir, '.adal') };
211
+ }
212
+ return { installed: false, version: null, path: null };
213
+ }
214
+ }
215
+
156
216
  /**
157
217
  * Retorna mensagem de ajuda para ferramentas não instaladas
158
218
  */
@@ -179,9 +239,12 @@ Instale ao menos uma das seguintes ferramentas:
179
239
  📦 Gemini CLI:
180
240
  npm install -g @google/gemini-cli
181
241
 
242
+ 📦 Google Antigravity:
243
+ https://antigravity.google/download
244
+
182
245
  Após instalar, execute novamente: npx cli-ai-skills
183
246
  `;
184
247
  }
185
248
 
186
- module.exports = { detectTools, getInstallInstructions, detectCodex, detectCodexCli, detectCodexApp };
249
+ module.exports = { detectTools, getInstallInstructions, detectCodex, detectCodexCli, detectCodexApp, detectAntigravity, detectCursor, detectAdal };
187
250
 
@@ -93,7 +93,7 @@ async function promptPlatforms(detected) {
93
93
 
94
94
  if (detected.opencode && detected.opencode.installed) {
95
95
  choices.push({
96
- name: '✅ OpenCode (~/.opencode/skills/)',
96
+ name: '✅ OpenCode (~/.agents/skills/)',
97
97
  value: 'opencode',
98
98
  checked: true
99
99
  });
@@ -107,6 +107,30 @@ async function promptPlatforms(detected) {
107
107
  });
108
108
  }
109
109
 
110
+ if (detected.antigravity && detected.antigravity.installed) {
111
+ choices.push({
112
+ name: '✅ Google Antigravity (~/.agent/skills/)',
113
+ value: 'antigravity',
114
+ checked: true
115
+ });
116
+ }
117
+
118
+ if (detected.cursor && detected.cursor.installed) {
119
+ choices.push({
120
+ name: '✅ Cursor IDE (~/.cursor/skills/)',
121
+ value: 'cursor',
122
+ checked: true
123
+ });
124
+ }
125
+
126
+ if (detected.adal && detected.adal.installed) {
127
+ choices.push({
128
+ name: '✅ AdaL CLI (~/.adal/skills/)',
129
+ value: 'adal',
130
+ checked: true
131
+ });
132
+ }
133
+
110
134
  if (choices.length === 0) {
111
135
  return [];
112
136
  }
package/lib/ui/table.js CHANGED
@@ -16,7 +16,8 @@ function displayToolsTable(tools) {
16
16
  codex_cli: 'OpenAI Codex CLI',
17
17
  codex_app: 'OpenAI Codex App',
18
18
  opencode: 'OpenCode',
19
- gemini: 'Gemini CLI'
19
+ gemini: 'Gemini CLI',
20
+ antigravity: 'Google Antigravity'
20
21
  };
21
22
 
22
23
  for (const [key, name] of Object.entries(toolNames)) {
@@ -45,16 +46,17 @@ function displayToolsTable(tools) {
45
46
  */
46
47
  function getToolsSummary(tools) {
47
48
  const installed = [];
48
-
49
+
49
50
  if (tools.copilot && tools.copilot.installed) installed.push('copilot');
50
51
  if (tools.claude && tools.claude.installed) installed.push('claude');
51
52
  if (tools.codex_cli && tools.codex_cli.installed) installed.push('codex_cli');
52
53
  if (tools.codex_app && tools.codex_app.installed) installed.push('codex_app');
53
54
  if (tools.opencode && tools.opencode.installed) installed.push('opencode');
54
55
  if (tools.gemini && tools.gemini.installed) installed.push('gemini');
55
-
56
+ if (tools.antigravity && tools.antigravity.installed) installed.push('antigravity');
57
+
56
58
  return {
57
- total: 6,
59
+ total: 7,
58
60
  installed: installed.length,
59
61
  names: installed
60
62
  };
@@ -40,7 +40,10 @@ function getSkillsSourcePath(basePath, platform) {
40
40
  'claude': '.claude',
41
41
  'codex': '.codex',
42
42
  'opencode': '.opencode',
43
- 'gemini': '.gemini'
43
+ 'gemini': '.gemini',
44
+ 'antigravity': '.antigravity',
45
+ 'cursor': '.cursor',
46
+ 'adal': '.adal'
44
47
  };
45
48
 
46
49
  // For npm package: basePath/skills/{platform}/
@@ -92,8 +95,11 @@ function getUserSkillsPath(platform) {
92
95
  const platformDirs = {
93
96
  'copilot': path.join(home, '.github', 'skills'),
94
97
  'claude': path.join(home, '.claude', 'skills'),
95
- 'opencode': path.join(home, '.opencode', 'skills'),
96
- 'gemini': path.join(home, '.gemini', 'skills')
98
+ 'opencode': path.join(home, '.agents', 'skills'),
99
+ 'gemini': path.join(home, '.gemini', 'skills'),
100
+ 'antigravity': path.join(home, '.agent', 'skills'),
101
+ 'cursor': path.join(home, '.cursor', 'skills'),
102
+ 'adal': path.join(home, '.adal', 'skills')
97
103
  };
98
104
 
99
105
  return platformDirs[platform] || path.join(home, `.${platform}`, 'skills');
@@ -19,11 +19,14 @@ function checkInstalledVersion() {
19
19
  const homeDir = os.homedir();
20
20
 
21
21
  const skillDirs = {
22
- copilot: path.join(homeDir, '.copilot', 'skills'),
22
+ copilot: path.join(homeDir, '.github', 'skills'),
23
23
  claude: path.join(homeDir, '.claude', 'skills'),
24
24
  codex: path.join(homeDir, '.codex', 'skills'),
25
- opencode: path.join(homeDir, '.opencode', 'skills'),
26
- gemini: path.join(homeDir, '.gemini', 'skills')
25
+ opencode: path.join(homeDir, '.agents', 'skills'),
26
+ gemini: path.join(homeDir, '.gemini', 'skills'),
27
+ antigravity: path.join(homeDir, '.agent', 'skills'),
28
+ cursor: path.join(homeDir, '.cursor', 'skills'),
29
+ adal: path.join(homeDir, '.adal', 'skills')
27
30
  };
28
31
 
29
32
  for (const [platform, skillDir] of Object.entries(skillDirs)) {
@@ -90,11 +93,14 @@ function isUpdateAvailable(installInfo) {
90
93
  function checkPlatformInstallation(platform) {
91
94
  const homeDir = os.homedir();
92
95
  const platformMap = {
93
- copilot: '.copilot',
96
+ copilot: '.github',
94
97
  claude: '.claude',
95
98
  codex: '.codex',
96
- opencode: '.opencode',
97
- gemini: '.gemini'
99
+ opencode: '.agents',
100
+ gemini: '.gemini',
101
+ antigravity: '.agent',
102
+ cursor: '.cursor',
103
+ adal: '.adal'
98
104
  };
99
105
 
100
106
  const dirName = platformMap[platform];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cli-ai-skills",
3
- "version": "1.9.0",
3
+ "version": "1.10.0",
4
4
  "description": "Install AI skills for GitHub Copilot CLI, Claude Code, OpenAI Codex, OpenCode, and Gemini CLI",
5
5
  "main": "lib/index.js",
6
6
  "bin": {