Eleven model snapshots retire on October 23. Find them in your repo before your users do

OpenAI shuts down eleven model snapshots on 2026-10-23, among them gpt-4-turbo, gpt-4o-2024-05-13, o3-mini and o4-mini. The GPT-5 and o3 snapshots follow on 2026-12-11. Anthropic and Google retire models on their own schedules too. Most codebases find out when requests start returning 404.

modelshift scanning and fixing the bundled sample app

Finding what retires

I wrote modelshift to answer two questions from the terminal. Which model IDs in my repo are going away, and does the replacement still behave the same?

npx github:Arthur031221/modelshift scan examples/sample-app

The scan walks the repository and lists each model ID with its file and line, its provider, its lifecycle status and the recommended replacement. The status comes from a bundled registry built from the providers' deprecation pages. The exit code is 1 when something retires within the window, so it also works as a CI check.

I ran it over four popular, unrelated open-source repositories. It found 131 distinct model IDs that are retiring or already retired, referenced 1,649 times across 296 files.

Rewriting the IDs

modelshift fix examples/sample-app

fix prints a diff that swaps each ID for its replacement and drops parameters the new model rejects. Claude Opus 4.7 and later, for example, return a 400 when a request sets temperature, top_p or top_k. Add --write to apply the change, or --pr to open a pull request.

Checking the replacement

Swapping the string is the easy part. The hard part is knowing whether the new model still returns valid JSON, still calls your tools with the same arguments, refuses more often, or takes twice as long.

modelshift replay --from qwen3:1.7b --to qwen3:4b --prompts demo/prompts.jsonl --no-think

replay runs your prompts on both models and compares JSON validity, refusals, tool calls, length, latency and text similarity, then writes an HTML report. It works against any OpenAI-compatible endpoint, including a local Ollama server, so you can try it without API keys. In the bundled example, a weather tool call that the small model made was missing from the larger model's answer, which is the kind of change a string swap would never show.

Limits

It needs Node 20 or newer and is not on npm yet, so run it with npx from GitHub. The registry is maintained by hand from provider pages, so a wrong date is the most likely bug. If you find one, please open an issue.

The code is at https://github.com/Arthur031221/modelshift under the MIT license.

添加评论
点赞收藏
点踩分享查看原文
评论
?
参与讨论