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::Gemini31ProPreview => "Gemini 3.1 Pro Preview",
12            ModelId::Gemini31ProPreviewCustomTools => "Gemini 3.1 Pro Preview (Custom Tools)",
13            ModelId::Gemini31FlashLitePreview => "Gemini 3.1 Flash Lite Preview",
14            ModelId::Gemini3FlashPreview => "Gemini 3 Flash",
15            // OpenAI models
16            ModelId::GPT => "GPT",
17            ModelId::GPT5 => "GPT-5",
18            ModelId::GPT52 => "GPT-5.2",
19            ModelId::GPT54 => "GPT-5.4",
20            ModelId::GPT54Pro => "GPT-5.4 Pro",
21            ModelId::GPT5Mini => "GPT-5 Mini",
22            ModelId::GPT5Nano => "GPT-5 Nano",
23            ModelId::GPT53Codex => "GPT-5.3 Codex",
24            ModelId::OpenAIGptOss20b => "GPT-OSS 20B",
25            ModelId::OpenAIGptOss120b => "GPT-OSS 120B",
26            // Anthropic models
27            ModelId::ClaudeOpus46 => "Claude Opus 4.6",
28            ModelId::ClaudeSonnet46 => "Claude Sonnet 4.6",
29            ModelId::ClaudeHaiku45 => "Claude Haiku 4.5",
30            // DeepSeek models
31            ModelId::DeepSeekChat => "DeepSeek V3.2 Chat",
32            ModelId::DeepSeekReasoner => "DeepSeek V3.2 Reasoner",
33            // Z.AI models
34            ModelId::ZaiGlm5 => "GLM 5",
35            // Ollama models
36            ModelId::OllamaGptOss20b => "GPT-OSS 20B (local)",
37            ModelId::OllamaGptOss20bCloud => "GPT-OSS 20B (cloud)",
38            ModelId::OllamaGptOss120bCloud => "GPT-OSS 120B (cloud)",
39            ModelId::OllamaQwen317b => "Qwen3 1.7B (local)",
40            ModelId::OllamaQwen3CoderNext => "Qwen3-Coder-Next (cloud)",
41            ModelId::OllamaDeepseekV32Cloud => "DeepSeek V3.2 (cloud)",
42            ModelId::OllamaQwen3Next80bCloud => "Qwen3 Next 80B (cloud)",
43            ModelId::OllamaGemini3FlashPreviewCloud => "Gemini 3 Flash Preview (cloud)",
44            ModelId::OllamaMinimaxM2Cloud => "MiniMax-M2 (cloud)",
45            ModelId::OllamaGlm5Cloud => "GLM-5 (cloud)",
46            ModelId::OllamaMinimaxM25Cloud => "MiniMax-M2.5 (cloud)",
47            // Hugging Face models
48            ModelId::HuggingFaceDeepseekV32 => "DeepSeek V3.2 (HF)",
49            ModelId::HuggingFaceOpenAIGptOss20b => "GPT-OSS 20B (HF)",
50            ModelId::HuggingFaceOpenAIGptOss120b => "GPT-OSS 120B (HF)",
51            ModelId::HuggingFaceMinimaxM25Novita => "MiniMax-M2.5 (Novita)",
52            ModelId::HuggingFaceDeepseekV32Novita => "DeepSeek V3.2 (Novita)",
53            ModelId::HuggingFaceXiaomiMimoV2FlashNovita => "MiMo-V2-Flash (Novita)",
54            ModelId::HuggingFaceGlm5Novita => "GLM-5 (Novita)",
55            ModelId::HuggingFaceQwen3CoderNextNovita => "Qwen3-Coder-Next (Novita)",
56            ModelId::HuggingFaceQwen35397BA17BTogether => "Qwen3.5-397B-A17B (Together)",
57            ModelId::HuggingFaceStep35Flash => "Step 3.5 Flash (HF)",
58            ModelId::OpenRouterMinimaxM25 => "MiniMax-M2.5 (OpenRouter)",
59            ModelId::OpenRouterQwen3CoderNext => "Qwen3-Coder-Next (OpenRouter)",
60            // MiniMax models
61            ModelId::MinimaxM25 => "MiniMax-M2.5",
62            // Moonshot models
63            ModelId::MoonshotKimiK25 => "Kimi K2.5 (Moonshot)",
64            // OpenRouter models
65            _ => unreachable!(),
66        }
67    }
68}