Report · November 5, 2026
28 of the 43 most-starred LLM repos on GitHub still reference model IDs that are dead or about to die
On November 5, 2026 I took the 43 most-starred public repos with the GitHub topic llm and read up to 300 source and config files from each, prioritising config, model and agent files. I looked for every model ID that Anthropic, OpenAI or Google list on their official deprecation pages with a shutdown date that has passed, or falls within the next 90 days.
What counts: only code and config files. I skipped docs, notebooks, tests, and files that mention 8 or more model IDs, because those are usually model catalogues or price tables, not real usage.
Set as a model value means the ID sits on a line that assigns a model: model=, "model":, a DEFAULT_ or _MODEL constant, a --model flag. Listed only means it appears in a list, a map or a condition. I read 11,884 files in total.
What it does not mean: a hit is not a bug. Some of these lines are fallbacks, migration maps, docstring examples or menu options that users never pick. But each one is a string that will fail, or quietly hit a different model, the day someone calls it. Maintainers know their code. I only know the dates.
The most common IDs
| Model ID | Status | Repos |
|---|---|---|
gpt-5 | shuts down December 11, 2026 | 7 |
gemini-2.5-flash | shuts down December 1, 2026 | 7 |
claude-sonnet-4-5 | shuts down November 30, 2026 | 6 |
gpt-5-mini | shuts down December 11, 2026 | 6 |
claude-3-5-sonnet-20241022 | dead since October 28, 2025 | 6 |
gpt-3.5-turbo | dead since October 23, 2026 | 6 |
gemini-2.0-flash | dead since June 1, 2026 | 5 |
gpt-4 | dead since October 23, 2026 | 5 |
o3 | shuts down December 11, 2026 | 5 |
o3-mini | dead since October 23, 2026 | 4 |
Repo by repo
zhayujie/CowAgent ★ 47,801 · rescan live
gpt-3.5-turbo → gpt-5.6-terra · set as a model value · 10 linesmodels/chatgpt/chat_gpt_bot.py:64 conf_model = custom_model or conf().get("model") or "gpt-3.5-turbo"
gpt-4 → gpt-5.6-sol · set as a model value · 2 linesmodels/linkai/link_ai_bot.py:338 "model": conf().get("model") or "gpt-3.5-turbo", # 对话模型的名称, 支持 gpt-3.5-turbo, gpt-3.5-tur
gemini-2.0-flash → gemini-3.6-flash · set as a model value · 2 linesagent/tools/vision/vision.py:184 " 1. Switch to a multimodal model (e.g. claude-sonnet-5, qwen3.8-flash, gemini-2.0-flash,
dall-e-2 → gpt-image-2 · set as a model value · 3 linesconfig.py:82 "text_to_image": "dall-e-2", # image generation model, options: dall-e-2, dall-e-3
…and 5 more dead or dying IDs: gpt-4-turbo, text-davinci-003, tts-1, dall-e-3, gpt-5
FoundationAgents/MetaGPT ★ 71,182 · rescan live
gpt-3.5-turbo → gpt-5.6-terra · set as a model value · 8 linesconfig/config2.yaml:6 model: "gpt-4-turbo" # or gpt-3.5-turbo
gpt-4-turbo → gpt-5.6-sol · set as a model value · 8 linesconfig/config2.yaml:6 model: "gpt-4-turbo" # or gpt-3.5-turbo
claude-3-5-sonnet-20240620 → claude-sonnet-5-5 · set as a model value · 2 linesexamples/aflow/optimize.py:84 default="claude-3-5-sonnet-20240620",
claude-3-opus-20240229 → claude-opus-4-8 · set as a model value · 1 line…and 3 more dead or dying IDs: dall-e-3, gpt-4-vision-preview, claude-3-sonnet-20240229
browser-use/browser-use ★ 120,083 · rescan live
claude-3-5-sonnet-20240620 → claude-sonnet-5-5 · set as a model value · 2 linesbrowser_use/llm/aws/chat_bedrock.py:41 model: str = 'anthropic.claude-3-5-sonnet-20240620-v1:0'
gpt-5.1-codex-mini → gpt-5.6-terra · set as a model value · 6 linesexamples/models/azure_openai.py:34 model='gpt-5.1-codex-mini', api_key=api_key, azure_endpoint=azure_endpoint, api_version='2
claude-sonnet-4-0 → claude-sonnet-5-5 · set as a model value · 2 linesexamples/models/claude-4-sonnet.py:19 llm = ChatAnthropic(model='claude-sonnet-4-0', temperature=0.0)
o3 → gpt-5.6-sol · set as a model value · 2 linesbrowser_use/beta/service.py:700 if 'o3' in model_name or 'claude' in model_name or 'sonnet' in model_name or 'deepseek' in
…and 17 more dead or dying IDs: claude-3-5-sonnet-20241022, claude-opus-4-20250514, gemini-3-pro-preview, gpt-5-mini, codex-mini-latest, computer-use-preview, gpt-5-codex, gpt-5.1-codex…
ZhuLinsen/daily_stock_analysis ★ 67,582 · rescan live
gemini-2.5-flash → gemini-3.5-flash-lite (requests auto-route to it from Dec 1, 2026) · set as a model value · 10 lines.github/workflows/pr-review.yml:127 GEMINI_MODEL: ${{ vars.GEMINI_MODEL || 'gemini-2.5-flash' }}
claude-3-5-sonnet-20241022 → claude-sonnet-5-5 · set as a model value · 5 linesdocs/examples/litellm_config.example.yaml:38 - model_name: openai/claude-3-5-sonnet-20241022
gemini-2.0-flash → gemini-3.6-flash · set as a model value · 2 linessrc/config.py:1082 # Fallback chain: VISION_MODEL → OPENAI_VISION_MODEL → gemini/gemini-2.0-flash
o1 → gpt-5.6-sol · listed only · 3 linessrc/llm/provider_cache.py:835 return model_name.startswith(("gpt-", "o1", "o3", "o4", "chatgpt-", "gpt4"))
…and 3 more dead or dying IDs: claude-sonnet-4-5, gpt-5, o3
rtk-ai/rtk ★ 85,600 · rescan live
gemini-2.5-flash → gemini-3.5-flash-lite (requests auto-route to it from Dec 1, 2026) · set as a model value · 4 linesexamples/pipelines/delegate-reads-adoption.toml:13 model = "gemini-2.5-flash"
claude-sonnet-4-5 → claude-sonnet-5-5 · set as a model value · 2 linesproxy/src/pipeline/engine_methods.rs:350 model: "claude-sonnet-4-5".into(),
gpt-5 → gpt-5.6-sol · set as a model value · 2 lines…and 4 more dead or dying IDs: o1, o3-mini, o4-mini, gpt-4o-2024-08-06
mem0ai/mem0 ★ 68,449 · rescan live
gpt-4.1-nano-2025-04-14 → gpt-5.6-luna · set as a model value · 3 linesexamples/misc/multillm_memory.py:45 "model": "gpt-4.1-nano-2025-04-14",
claude-3-5-sonnet-20241022 → claude-sonnet-5-5 · set as a model value · 1 lineclaude-sonnet-4-20250514 → claude-sonnet-5-5 · set as a model value · 1 linegpt-5-mini → gpt-5.6-terra · set as a model value · 2 linesintegrations/hermes-plugin-mem0/_openai_llm.py:34 if config.model == "gpt-5-mini" and config.is_reasoning_model is None:
…and 1 more dead or dying IDs: claude-3-haiku-20240307
langgenius/dify ★ 160,445 · rescan live
gpt-4 → gpt-5.6-sol · set as a model value · 1 linegpt-4-1106-preview → gpt-5.6-sol · set as a model value · 1 linegpt-4-32k → gpt-4o · set as a model value · 1 linegpt-4-vision-preview → gpt-4o · set as a model value · 1 line…and 2 more dead or dying IDs: text-davinci-003, gpt-5-nano
JuliusBrussee/caveman ★ 117,607 · rescan live
claude-sonnet-4-5 → claude-sonnet-5-5 · set as a model value · 3 linesintegrations/recipes/langchain.json:8 "code": "import os\nfrom langchain_openai import ChatOpenAI\n\nllm = ChatOpenAI(\n mode
gemini-2.5-flash → gemini-3.5-flash-lite (requests auto-route to it from Dec 1, 2026) · set as a model value · 4 linesintegrations/recipes/google-genai.json:9 "models": ["gemini-2.5-flash"]
gpt-5.2-codex → gpt-5.6-sol · listed only · 1 lineo1 → gpt-5.6-sol · listed only · 3 linesproxy/providers/openai/reasoning_effort.go:166 for _, fam := range []string{"o1", "o3", "o4"} {
…and 4 more dead or dying IDs: gemini-2.5-pro, gpt-5, gpt-5-pro, o3
open-webui/open-webui ★ 157,825 · rescan live
tts-1 → gpt-realtime-2.1-mini · set as a model value · 4 linessrc/lib/apis/openai/index.ts:463 model: string = 'tts-1'
o1-mini → o4-mini · listed only · 1 lineo1-preview → o3 · listed only · 1 lineo3 → gpt-5.6-sol · listed only · 1 linedatawhalechina/hello-agents ★ 86,105 · rescan live
gpt-3.5-turbo → gpt-5.6-terra · set as a model value · 2 linesCo-creation-projects/Apricity-InnocoreAI/.env.example:9 # 可选模型: gpt-3.5-turbo, gpt-4, gpt-4-turbo-preview
gpt-4-turbo-preview → gpt-5 or gpt-4.1 · set as a model value · 2 linesCo-creation-projects/Apricity-InnocoreAI/.env.example:9 # 可选模型: gpt-3.5-turbo, gpt-4, gpt-4-turbo-preview
gpt-4 → gpt-5.6-sol · set as a model value · 1 lineGraphify-Labs/graphify ★ 142,643 · rescan live
claude-3-5-sonnet-20241022 → claude-sonnet-5-5 · set as a model value · 1 lineo1 → gpt-5.6-sol · listed only · 2 linesgraphify/llm.py:389 for fam in ("o1", "o3", "o4"):
o1-preview → o3 · listed only · 1 lineo3-mini → gpt-5.6-sol · listed only · 1 line…and 2 more dead or dying IDs: gpt-5, o3
bytedance/deer-flow ★ 85,017 · rescan live
gpt-4 → gpt-5.6-sol · set as a model value · 3 linesbackend/app/gateway/routers/models.py:164 "name": "gpt-4",
claude-opus-4-20250514 → claude-opus-4-8 · listed only · 1 lineclaude-sonnet-4-20250514 → claude-sonnet-5-5 · listed only · 1 linegpt-4.1-nano → gpt-5.6-luna · listed only · 1 line…and 1 more dead or dying IDs: claude-sonnet-4-5-20250929
unclecode/crawl4ai ★ 86,931 · rescan live
claude-3-5-sonnet-latest → claude-sonnet-5-5 · set as a model value · 1 linegpt-3.5-turbo → gpt-5.6-terra · listed only · 1 lineclaude-3-5-sonnet-20240620 → claude-sonnet-5-5 · listed only · 1 lineharry0703/MoneyPrinterTurbo ★ 139,445 · rescan live
gemini-2.5-flash-preview-tts → gemini-3.8-flash-tts or gemini-3.8-flash-lite-tts · set as a model value · 1 linegemini-2.5-flash → gemini-3.5-flash-lite (requests auto-route to it from Dec 1, 2026) · listed only · 1 linef/prompts.chat ★ 175,853 · rescan live
sora-2 → none listed · set as a model value · 1 linelangchain-ai/langchain ★ 149,063 · rescan live
claude-sonnet-4-5-20250929 → claude-sonnet-5-5 · set as a model value · 1 linepaperclipai/paperclip ★ 111,236 · rescan live
claude-sonnet-4-5-20250929 → claude-sonnet-5-5 · set as a model value · 1 linepaperless-ngx/paperless-ngx ★ 47,712 · rescan live
gpt-3.5-turbo → gpt-5.6-terra · set as a model value · 1 lineAstrBotDevs/AstrBot ★ 46,070 · rescan live
tts-1 → gpt-realtime-2.1-mini · set as a model value · 1 lineMintplex-Labs/anything-llm ★ 67,961 · rescan live
gemini-2.0-flash-lite → gemini-3.1-flash-lite · listed only · 1 linetext-embedding-004 → gemini-embedding-2 · listed only · 1 linegpt-3.5-turbo → gpt-5.6-terra · listed only · 1 linegpt-4-32k → gpt-4o · listed only · 1 line…and 7 more dead or dying IDs: gpt-4-turbo, o1-mini, o3-mini, gpt-5-mini, tts-1, claude-sonnet-4-5-20250929, gemini-2.5-flash
NousResearch/hermes-agent ★ 260,703 · rescan live
claude-opus-4-0 → claude-opus-4-8 · listed only · 1 lineclaude-opus-4-1 → claude-opus-4-8 · listed only · 1 lineclaude-sonnet-4-0 → claude-sonnet-5-5 · listed only · 1 lineclaude-opus-4-20250514 → claude-opus-4-8 · listed only · 1 line…and 4 more dead or dying IDs: gemini-2.0-flash, gemini-2.0-flash-lite, claude-sonnet-4-5, gpt-5-mini
firecrawl/firecrawl ★ 198,769 · rescan live
o3-mini → gpt-5.6-sol · listed only · 5 linesapps/api/src/lib/generic-ai.ts:163 // o3-mini returns empty text via the Responses API — force Chat Completions
gemini-2.0-flash → gemini-3.6-flash · listed only · 1 linegemini-2.0-flash-001 → gemini-3.6-flash · listed only · 1 linegemini-2.5-pro → gemini-3.8-flash (requests auto-route to it from Dec 1, 2026) · listed only · 3 linesapps/api/src/lib/generic-ai.ts:153 name = "gemini-2.5-pro";
…and 3 more dead or dying IDs: gpt-5, gpt-5-mini, gpt-5-nano
Significant-Gravitas/AutoGPT ★ 187,906 · rescan live
gpt-image-1 → gpt-image-2.5-sunburst or gpt-image-2.5-flare · listed only · 2 linesautogpt_platform/backend/backend/blocks/ai_shortform_video_block.py:627 "forceModelType": "gpt-image-1",
claude-3-5-sonnet-20241022 → claude-sonnet-5-5 · listed only · 1 linegpt-4o-mini-tts → gpt-realtime-2.1-mini · listed only · 3 linesautogpt_platform/backend/backend/copilot/config.py:1539 description="Delivery instruction for a spoken reply. gpt-4o-mini-tts "
sansan0/TrendRadar ★ 63,455 · rescan live
claude-sonnet-4-20250514 → claude-sonnet-5-5 · listed only · 2 linesconfig/config.yaml:361 # - anthropic/claude-sonnet-4-20250514 (Anthropic)
gemini-2.5-flash → gemini-3.5-flash-lite (requests auto-route to it from Dec 1, 2026) · listed only · 3 linesconfig/config.yaml:360 # - gemini/gemini-2.5-flash (Google Gemini)
gpt-5 → gpt-5.6-sol · listed only · 1 lineDietrichGebert/ponytail ★ 184,802 · rescan live
claude-sonnet-4-5 → claude-sonnet-5-5 · listed only · 1 linerun-llama/llama_index ★ 52,815 · rescan live
gpt-5-mini → gpt-5.6-terra · listed only · 1 linemudler/LocalAI ★ 50,209 · rescan live
claude-3-5-sonnet-20241022 → claude-sonnet-5-5 · listed only · 1 linejeecgboot/JeecgBoot ★ 48,383 · rescan live
dall-e-2 → gpt-image-2 · listed only · 1 lineCheck your own
Or break your CI before the provider does. This exits 1 on any dead model ID (GitHub Action here):
curl -sL https://lira-ia.github.io/model-check/check.py | python3 - .
Method: GitHub API file list + raw files, max 300 files per repo, read on November 5, 2026. Repos may have changed since. If I got one wrong, the live rescan link next to each repo shows the current state.