feat: add support for Gemini CLI

- Added .gemini/skills/ui-ux-pro-max/SKILL.md configuration
- Updated CLI to detect and install for Gemini (.gemini + .shared)
- Added Gemini CLI instructions to README.md
This commit is contained in:
dingtalk_ssjygq
2026-01-09 09:18:56 +08:00
parent 528138c76f
commit d45721a49a
6 changed files with 473 additions and 3 deletions

View File

@@ -1,4 +1,4 @@
export type AIType = 'claude' | 'cursor' | 'windsurf' | 'antigravity' | 'copilot' | 'kiro' | 'roocode' | 'codex' | 'qoder' | 'all';
export type AIType = 'claude' | 'cursor' | 'windsurf' | 'antigravity' | 'copilot' | 'kiro' | 'roocode' | 'codex' | 'qoder' | 'gemini' | 'all';
export interface Release {
tag_name: string;
@@ -20,7 +20,7 @@ export interface InstallConfig {
force?: boolean;
}
export const AI_TYPES: AIType[] = ['claude', 'cursor', 'windsurf', 'antigravity', 'copilot', 'roocode', 'kiro', 'codex', 'qoder', 'all'];
export const AI_TYPES: AIType[] = ['claude', 'cursor', 'windsurf', 'antigravity', 'copilot', 'roocode', 'kiro', 'codex', 'qoder', 'gemini', 'all'];
export const AI_FOLDERS: Record<Exclude<AIType, 'all'>, string[]> = {
claude: ['.claude'],
@@ -32,4 +32,5 @@ export const AI_FOLDERS: Record<Exclude<AIType, 'all'>, string[]> = {
codex: ['.codex'],
roocode: ['.roo', '.shared'],
qoder: ['.qoder', '.shared'],
gemini: ['.gemini', '.shared'],
};

View File

@@ -37,6 +37,9 @@ export function detectAIType(cwd: string = process.cwd()): DetectionResult {
if (existsSync(join(cwd, '.qoder'))) {
detected.push('qoder');
}
if (existsSync(join(cwd, '.gemini'))) {
detected.push('gemini');
}
// Suggest based on what's detected
let suggested: AIType | null = null;
@@ -69,6 +72,8 @@ export function getAITypeDescription(aiType: AIType): string {
return 'RooCode (.roo/commands/ + .shared/)';
case 'qoder':
return 'Qoder (.qoder/rules/ + .shared/)';
case 'gemini':
return 'Gemini CLI (.gemini/skills/ + .shared/)';
case 'all':
return 'All AI assistants';
}

View File

@@ -39,7 +39,7 @@ export async function copyFolders(
const copiedFolders: string[] = [];
const foldersToCopy = aiType === 'all'
? ['.claude', '.cursor', '.windsurf', '.agent', '.github', '.kiro', '.roo','.codex', '.shared']
? ['.claude', '.cursor', '.windsurf', '.agent', '.github', '.kiro', '.roo','.codex', '.gemini', '.shared']
: AI_FOLDERS[aiType];
// Deduplicate folders (e.g., .shared might be listed multiple times)