Skip to main content

vtcode_config/models/model_id/
display.rs

1use super::ModelId;
2
3impl ModelId {
4    /// Get the display name for the model (human-readable)
5    pub fn display_name(&self) -> &'static str {
6        if let Some(meta) = self.openrouter_metadata() {
7            return meta.display;
8        }
9        match self {
10            // Gemini models
11            ModelId::Gemini25FlashPreview => "Gemini 2.5 Flash Preview",
12            ModelId::Gemini25Flash => "Gemini 2.5 Flash",
13            ModelId::Gemini25FlashLite => "Gemini 2.5 Flash Lite",
14            ModelId::Gemini25Pro => "Gemini 2.5 Pro",
15            ModelId::Gemini3ProPreview => "Gemini 3 Pro Preview",
16            // OpenAI models
17            ModelId::GPT5 => "GPT-5",
18            ModelId::GPT5Codex => "GPT-5 Codex",
19            ModelId::GPT5Mini => "GPT-5 Mini",
20            ModelId::GPT5Nano => "GPT-5 Nano",
21            ModelId::CodexMiniLatest => "Codex Mini Latest",
22            // Anthropic models
23            ModelId::ClaudeOpus45 => "Claude Opus 4.5",
24            ModelId::ClaudeOpus41 => "Claude Opus 4.1",
25            ModelId::ClaudeSonnet45 => "Claude Sonnet 4.5",
26            ModelId::ClaudeHaiku45 => "Claude Haiku 4.5",
27            ModelId::ClaudeSonnet4 => "Claude Sonnet 4",
28            // DeepSeek models
29            ModelId::DeepSeekChat => "DeepSeek V3.2 Chat",
30            ModelId::DeepSeekReasoner => "DeepSeek V3.2 Reasoner",
31            // xAI models
32            ModelId::XaiGrok4 => "Grok-4",
33            ModelId::XaiGrok4Mini => "Grok-4 Mini",
34            ModelId::XaiGrok4Code => "Grok-4 Code",
35            ModelId::XaiGrok4CodeLatest => "Grok-4 Code Latest",
36            ModelId::XaiGrok4Vision => "Grok-4 Vision",
37            // Z.AI models
38            ModelId::ZaiGlm4Plus => "GLM 4 Plus",
39            ModelId::ZaiGlm4PlusDeepThinking => "GLM 4 Plus Deep Thinking",
40            ModelId::ZaiGlm47 => "GLM 4.7",
41            ModelId::ZaiGlm47DeepThinking => "GLM 4.7 Deep Thinking",
42            ModelId::ZaiGlm47Flash => "GLM 4.7 Flash",
43            ModelId::ZaiGlm46 => "GLM 4.6",
44            ModelId::ZaiGlm46DeepThinking => "GLM 4.6 Deep Thinking",
45            ModelId::ZaiGlm46V => "GLM 4.6V",
46            ModelId::ZaiGlm46VFlash => "GLM 4.6V Flash",
47            ModelId::ZaiGlm46VFlashX => "GLM 4.6V FlashX",
48            ModelId::ZaiGlm45 => "GLM 4.5",
49            ModelId::ZaiGlm45DeepThinking => "GLM 4.5 Deep Thinking",
50            ModelId::ZaiGlm45Air => "GLM 4.5 Air",
51            ModelId::ZaiGlm45X => "GLM 4.5 X",
52            ModelId::ZaiGlm45Airx => "GLM 4.5 AirX",
53            ModelId::ZaiGlm45Flash => "GLM 4.5 Flash",
54            ModelId::ZaiGlm45V => "GLM 4.5V",
55            ModelId::ZaiGlm432b0414128k => "GLM 4 32B 0414 128K",
56            // Ollama models
57            ModelId::OllamaGptOss20b => "GPT-OSS 20B (local)",
58            ModelId::OllamaGptOss20bCloud => "GPT-OSS 20B (cloud)",
59            ModelId::OllamaGptOss120bCloud => "GPT-OSS 120B (cloud)",
60            ModelId::OllamaQwen317b => "Qwen3 1.7B (local)",
61            ModelId::OllamaDeepseekV32Cloud => "DeepSeek V3.2 (cloud)",
62            ModelId::OllamaQwen3Next80bCloud => "Qwen3 Next 80B (cloud)",
63            ModelId::OllamaMistralLarge3675bCloud => "Mistral Large 3 675B (cloud)",
64            ModelId::OllamaKimiK2ThinkingCloud => "Kimi K2 Thinking (cloud)",
65            ModelId::OllamaQwen3Coder480bCloud => "Qwen3 Coder 480B (cloud)",
66            ModelId::OllamaGlm46Cloud => "GLM-4.6 (cloud)",
67            ModelId::OllamaGemini3ProPreviewLatestCloud => "Gemini 3 Pro Preview (cloud)",
68            ModelId::OllamaGemini3FlashPreviewCloud => "Gemini 3 Flash Preview (cloud)",
69            ModelId::OllamaDevstral2123bCloud => "Devstral 2 123B (cloud)",
70            ModelId::OllamaMinimaxM2Cloud => "MiniMax-M2 (cloud)",
71            ModelId::OllamaGlm47Cloud => "GLM-4.7 (cloud)",
72            ModelId::OllamaMinimaxM21Cloud => "MiniMax-M2.1 (cloud)",
73            ModelId::OllamaNemotron3Nano30bCloud => "Nemotron-3-Nano 30B (cloud)",
74            ModelId::LmStudioMetaLlama38BInstruct => "Meta Llama 3 8B (LM Studio)",
75            ModelId::LmStudioMetaLlama318BInstruct => "Meta Llama 3.1 8B (LM Studio)",
76            ModelId::LmStudioQwen257BInstruct => "Qwen2.5 7B (LM Studio)",
77            ModelId::LmStudioGemma22BIt => "Gemma 2 2B (LM Studio)",
78            ModelId::LmStudioGemma29BIt => "Gemma 2 9B (LM Studio)",
79            ModelId::LmStudioPhi31Mini4kInstruct => "Phi-3.1 Mini 4K (LM Studio)",
80            // Hugging Face models
81            ModelId::HuggingFaceDeepseekV32 => "DeepSeek V3.2 (HF)",
82            ModelId::HuggingFaceOpenAIGptOss20b => "GPT-OSS 20B (HF)",
83            ModelId::HuggingFaceOpenAIGptOss120b => "GPT-OSS 120B (HF)",
84            ModelId::HuggingFaceGlm47 => "GLM-4.7 (HF)",
85            ModelId::HuggingFaceGlm47FlashNovita => "GLM-4.7-Flash (Novita)",
86            ModelId::HuggingFaceKimiK2Thinking => "Kimi K2 Thinking (HF)",
87            ModelId::HuggingFaceMinimaxM21Novita => "MiniMax-M2.1 (Novita)",
88            ModelId::HuggingFaceDeepseekV32Novita => "DeepSeek V3.2 (Novita)",
89            ModelId::HuggingFaceXiaomiMimoV2FlashNovita => "MiMo-V2-Flash (Novita)",
90            // MiniMax models
91            ModelId::MinimaxM21 => "MiniMax-M2.1",
92            ModelId::MinimaxM21Lightning => "MiniMax-M2.1-lightning",
93            ModelId::MinimaxM2 => "MiniMax-M2",
94            // OpenRouter models
95            _ => unreachable!(),
96        }
97    }
98}