diff --git a/config/base-km.settings.json b/config/base-km.settings.json new file mode 100644 index 00000000..c60892d5 --- /dev/null +++ b/config/base-km.settings.json @@ -0,0 +1,10 @@ +{ + "env": { + "ANTHROPIC_BASE_URL": "https://api.kimi.com/coding/", + "ANTHROPIC_AUTH_TOKEN": "YOUR_KIMI_API_KEY_HERE", + "ANTHROPIC_MODEL": "kimi-k2-thinking-turbo", + "ANTHROPIC_DEFAULT_OPUS_MODEL": "kimi-k2-thinking-turbo", + "ANTHROPIC_DEFAULT_SONNET_MODEL": "kimi-k2-thinking-turbo", + "ANTHROPIC_DEFAULT_HAIKU_MODEL": "kimi-k2-thinking-turbo" + } +} diff --git a/src/api/services/provider-presets.ts b/src/api/services/provider-presets.ts index c57ca5c5..7daedaa3 100644 --- a/src/api/services/provider-presets.ts +++ b/src/api/services/provider-presets.ts @@ -93,11 +93,11 @@ export const PROVIDER_PRESETS: ProviderPreset[] = [ alwaysThinkingEnabled: true, }, { - id: 'kimi', + id: 'km', name: 'Kimi', description: 'Moonshot AI - Fast reasoning model', baseUrl: 'https://api.kimi.com/coding/', - defaultProfileName: 'kimi', + defaultProfileName: 'km', defaultModel: 'kimi-k2-thinking-turbo', apiKeyPlaceholder: 'sk-...', apiKeyHint: 'Get your API key from Moonshot AI', diff --git a/src/commands/help-command.ts b/src/commands/help-command.ts index 5971dfb5..3a4c0340 100644 --- a/src/commands/help-command.ts +++ b/src/commands/help-command.ts @@ -131,7 +131,7 @@ Run ${color('ccs config', 'command')} for web dashboard`.trim(); ['ccs', 'Use default Claude account'], ['ccs glm', 'GLM 5 (API key required)'], ['ccs glmt', 'GLM with thinking mode'], - ['ccs kimi', 'Kimi for Coding (API key)'], + ['ccs km', 'Kimi for Coding (API key)'], ['ccs ollama', 'Local Ollama (http://localhost:11434)'], ['ccs ollama-cloud', 'Ollama Cloud (API key required)'], ['', ''], // Spacer @@ -171,6 +171,7 @@ Run ${color('ccs config', 'command')} for web dashboard`.trim(); ['ccs codex', 'OpenAI Codex (supports -medium/-high/-xhigh model suffixes)'], ['ccs agy', 'Antigravity (Claude/Gemini models)'], ['ccs qwen', 'Qwen Code (qwen3-coder)'], + ['ccs kimi', 'Kimi (Moonshot AI K2/K2.5 models)'], ['ccs kiro', 'Kiro (AWS CodeWhisperer Claude models)'], ['ccs ghcp', 'GitHub Copilot (OAuth via CLIProxy Plus)'], ['', ''], // Spacer @@ -255,7 +256,8 @@ Run ${color('ccs config', 'command')} for web dashboard`.trim(); printSubSection('Delegation (inside Claude Code CLI)', [ ['/ccs "task"', 'Delegate task (auto-selects profile)'], ['/ccs --glm "task"', 'Force GLM-5 for simple tasks'], - ['/ccs --kimi "task"', 'Force Kimi for long context'], + ['/ccs --kimi "task"', 'Force Kimi OAuth for long context'], + ['/ccs --km "task"', 'Force Kimi API key for long context'], ['/ccs:continue "follow-up"', 'Continue last delegation session'], ]); diff --git a/ui/src/lib/provider-config.ts b/ui/src/lib/provider-config.ts index 05e2a958..cfcf4dbb 100644 --- a/ui/src/lib/provider-config.ts +++ b/ui/src/lib/provider-config.ts @@ -19,6 +19,7 @@ export const CLIPROXY_PROVIDERS = [ 'kiro', 'ghcp', 'claude', + 'kimi', ] as const; /** Union type for CLIProxy provider IDs */ @@ -39,6 +40,7 @@ export const PROVIDER_ASSETS: Record = { kiro: '/assets/providers/kiro.png', ghcp: '/assets/providers/copilot.svg', claude: '/assets/providers/claude.svg', + kimi: '/assets/providers/kimi.svg', }; // Provider brand colors @@ -52,6 +54,7 @@ export const PROVIDER_COLORS: Record = { kiro: '#4d908e', // Dark Cyan (AWS-inspired) ghcp: '#43aa8b', // Seaweed (GitHub-inspired) claude: '#D97757', // Anthropic brand color (matches SVG) + kimi: '#FF6B35', // Moonshot AI brand orange }; // Provider display names @@ -65,6 +68,7 @@ const PROVIDER_NAMES: Record = { kiro: 'Kiro (AWS)', ghcp: 'GitHub Copilot (OAuth)', claude: 'Claude (Anthropic)', + kimi: 'Kimi (Moonshot)', }; // Map provider to display name @@ -76,7 +80,7 @@ export function getProviderDisplayName(provider: string): string { * Providers that use Device Code OAuth flow instead of Authorization Code flow. * Device Code flow requires displaying a user code for manual entry at provider's website. */ -export const DEVICE_CODE_PROVIDERS: CLIProxyProvider[] = ['ghcp', 'kiro', 'qwen']; +export const DEVICE_CODE_PROVIDERS: CLIProxyProvider[] = ['ghcp', 'kiro', 'qwen', 'kimi']; /** Check if provider uses Device Code flow */ export function isDeviceCodeProvider(provider: string): boolean { diff --git a/ui/src/lib/provider-presets.ts b/ui/src/lib/provider-presets.ts index e998901d..451f0f9d 100644 --- a/ui/src/lib/provider-presets.ts +++ b/ui/src/lib/provider-presets.ts @@ -90,11 +90,11 @@ export const PROVIDER_PRESETS: ProviderPreset[] = [ category: 'alternative', }, { - id: 'kimi', + id: 'km', name: 'Kimi', description: 'Moonshot AI - Fast reasoning model', baseUrl: 'https://api.kimi.com/coding/', - defaultProfileName: 'kimi', + defaultProfileName: 'km', badge: 'Reasoning', icon: '/icons/kimi.svg', defaultModel: 'kimi-k2-thinking-turbo', @@ -102,6 +102,7 @@ export const PROVIDER_PRESETS: ProviderPreset[] = [ apiKeyPlaceholder: 'sk-...', apiKeyHint: 'Get your API key from Moonshot AI', category: 'alternative', + alwaysThinkingEnabled: true, }, { id: 'foundry',