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::Gemini3ProPreview => "Gemini 3 Pro Preview",
12            ModelId::Gemini3FlashPreview => "Gemini 3 Flash",
13            // OpenAI models
14            ModelId::GPT5 => "GPT-5",
15            ModelId::GPT52 => "GPT-5.2",
16            ModelId::GPT52Codex => "GPT-5.2 Codex",
17            ModelId::GPT5Codex => "GPT-5 Codex",
18            ModelId::GPT5Mini => "GPT-5 Mini",
19            ModelId::GPT5Nano => "GPT-5 Nano",
20            ModelId::GPT51 => "GPT-5.1",
21            ModelId::GPT51Codex => "GPT-5.1 Codex",
22            ModelId::GPT51CodexMax => "GPT-5.1 Codex Max",
23            ModelId::GPT51Mini => "GPT-5.1 Mini",
24            ModelId::CodexMiniLatest => "Codex Mini Latest",
25            // Anthropic models
26            ModelId::ClaudeOpus46 => "Claude Opus 4.6",
27            ModelId::ClaudeOpus45 => "Claude Opus 4.5",
28            ModelId::ClaudeOpus41 => "Claude Opus 4.1",
29            ModelId::ClaudeSonnet45 => "Claude Sonnet 4.5",
30            ModelId::ClaudeHaiku45 => "Claude Haiku 4.5",
31            ModelId::ClaudeSonnet4 => "Claude Sonnet 4",
32            ModelId::ClaudeOpus4 => "Claude Opus 4",
33            ModelId::ClaudeSonnet37 => "Claude 3.7 Sonnet",
34            ModelId::ClaudeHaiku35 => "Claude 3.5 Haiku",
35            // DeepSeek models
36            ModelId::DeepSeekChat => "DeepSeek V3.2 Chat",
37            ModelId::DeepSeekReasoner => "DeepSeek V3.2 Reasoner",
38            // xAI models
39            ModelId::XaiGrok4 => "Grok-4",
40            ModelId::XaiGrok4Mini => "Grok-4 Mini",
41            ModelId::XaiGrok4Code => "Grok-4 Code",
42            ModelId::XaiGrok4CodeLatest => "Grok-4 Code Latest",
43            ModelId::XaiGrok4Vision => "Grok-4 Vision",
44            // Z.AI models
45            ModelId::ZaiGlm5 => "GLM 5",
46            // Ollama models
47            ModelId::OllamaGptOss20b => "GPT-OSS 20B (local)",
48            ModelId::OllamaGptOss20bCloud => "GPT-OSS 20B (cloud)",
49            ModelId::OllamaGptOss120bCloud => "GPT-OSS 120B (cloud)",
50            ModelId::OllamaQwen317b => "Qwen3 1.7B (local)",
51            ModelId::OllamaDeepseekV32Cloud => "DeepSeek V3.2 (cloud)",
52            ModelId::OllamaQwen3Next80bCloud => "Qwen3 Next 80B (cloud)",
53            ModelId::OllamaMistralLarge3675bCloud => "Mistral Large 3 675B (cloud)",
54            ModelId::OllamaQwen3Coder480bCloud => "Qwen3 Coder 480B (cloud)",
55            ModelId::OllamaGemini3ProPreviewLatestCloud => "Gemini 3 Pro Preview (cloud)",
56            ModelId::OllamaGemini3FlashPreviewCloud => "Gemini 3 Flash Preview (cloud)",
57            ModelId::OllamaDevstral2123bCloud => "Devstral 2 123B (cloud)",
58            ModelId::OllamaMinimaxM2Cloud => "MiniMax-M2 (cloud)",
59            ModelId::OllamaGlm5Cloud => "GLM-5 (cloud)",
60            ModelId::OllamaMinimaxM25Cloud => "MiniMax-M2.5 (cloud)",
61            ModelId::OllamaNemotron3Nano30bCloud => "Nemotron-3-Nano 30B (cloud)",
62            ModelId::LmStudioMetaLlama38BInstruct => "Meta Llama 3 8B (LM Studio)",
63            ModelId::LmStudioMetaLlama318BInstruct => "Meta Llama 3.1 8B (LM Studio)",
64            ModelId::LmStudioQwen257BInstruct => "Qwen2.5 7B (LM Studio)",
65            ModelId::LmStudioGemma22BIt => "Gemma 2 2B (LM Studio)",
66            ModelId::LmStudioGemma29BIt => "Gemma 2 9B (LM Studio)",
67            ModelId::LmStudioPhi31Mini4kInstruct => "Phi-3.1 Mini 4K (LM Studio)",
68            // Hugging Face models
69            ModelId::HuggingFaceDeepseekV32 => "DeepSeek V3.2 (HF)",
70            ModelId::HuggingFaceOpenAIGptOss20b => "GPT-OSS 20B (HF)",
71            ModelId::HuggingFaceOpenAIGptOss120b => "GPT-OSS 120B (HF)",
72            ModelId::HuggingFaceMinimaxM25Novita => "MiniMax-M2.5 (Novita)",
73            ModelId::HuggingFaceDeepseekV32Novita => "DeepSeek V3.2 (Novita)",
74            ModelId::HuggingFaceXiaomiMimoV2FlashNovita => "MiMo-V2-Flash (Novita)",
75            ModelId::HuggingFaceGlm5Novita => "GLM-5 (Novita)",
76            ModelId::HuggingFaceQwen3CoderNextNovita => "Qwen3-Coder-Next (Novita)",
77            ModelId::OpenRouterMinimaxM25 => "MiniMax-M2.5 (OpenRouter)",
78            ModelId::OpenRouterQwen3CoderNext => "Qwen3-Coder-Next (OpenRouter)",
79            // MiniMax models
80            ModelId::MinimaxM25 => "MiniMax-M2.5",
81            ModelId::MinimaxM2 => "MiniMax-M2",
82            ModelId::MoonshotMinimaxM25 => "MiniMax-M2.5 (Moonshot)",
83            ModelId::MoonshotQwen3CoderNext => "Qwen3-Coder-Next (Moonshot)",
84            // OpenRouter models
85            _ => unreachable!(),
86        }
87    }
88}