release

RadarModel Now Finds the AI Models Your Code Calls

RadarModel AI watches the models your app calls and tells you when a provider retires, renames or reprices one. Until now you had to write that list yourself. RadarModel 0.3 reads it from your code: radarmodel-ai scan lists every model ID a project uses, where it uses it, and whether you watch it. It’s open source under the Apache License 2.0, and the code is on GitHub.

A watch list written by hand goes stale the day someone adds a fallback model in a config file or changes a default in an agent. The scan keeps it honest.

Three source files go in: a Python file calling gpt-4o-mini with an old model in a comment, a YAML config with claude-sonnet-4-5, and a default of gpt-o4-mini. The scan reports claude-sonnet-4-5 as watched, gpt-4o-mini as new, and gpt-o4-mini as not in OpenAI’s list.

The comment isn’t read. The typo is caught.

What it does

radarmodel-ai scan            # list every model ID the code uses, and where
radarmodel-ai scan -write     # add them to the watch list
radarmodel-ai scan -check     # exit 1 in CI when the list doesn't cover the code
  • Model IDs by their shape. OpenAI (gpt-4o, o3-mini, text-embedding-3-small), Anthropic (claude-sonnet-4-5), Google (gemini-2.5-pro, models/gemini-2.5-pro) and vendor/model IDs such as openai/gpt-4o, which go to OpenRouter when you use it and to the vendor’s own API otherwise, the way LiteLLM writes them.
  • Code and config, not prose. It reads string literals and config values in Python, JavaScript, TypeScript, Go, Ruby, Java, Rust, PHP, YAML, TOML, .env files and more. Comments, block comments and docstrings are left out, and so are strings a line only tests a name against (name.startswith("gpt-4")), file names, URLs, dependency folders and lock files.
  • Typos and retired models show up. Once RadarModel has a snapshot of a provider’s list, a model the code calls that isn’t in it is marked as such. That’s a model call that fails, or will.
  • Your config stays yours. -write adds entries to the watch list and keeps the rest of the file, its key order and its permissions.

Checked by hand on three real agents

We ran the scan on three open source AI agents, aider, gpt-researcher and browser-use, and read the results line by line both ways: every model found against the line it came from, and every model-like word the scan passed over against its context.

Agent Files read Models found
aider 228 189
gpt-researcher 528 53
browser-use 445 184

Every model ID the three call was found. What the scan passed over was prose, substring tests, recorded benchmark results, URLs and test placeholders, plus aider’s Azure model names, which come with Azure support in the next release. It also turned up a real bug: one of browser-use’s defaults is gpt-o4-mini, a model no provider lists. The full check is in test/results.

Also in 0.3

The Windows build is now tested the way the others are, with a real offline check run on every release, and the releases build with the current Go.

Download RadarModel, then see the quick start and the reference.