Model IDs get retired. Newer, cheaper versions ship every few weeks. Pinned names silently drift. Nobody re-checks. Marinate scans your repo locally and tells you what's stale — with sources — before it breaks production.
One command. No API key, no account, no signup. The catalog ships inside the package, so the scan itself makes no network calls at all. Every finding carries the file, line, and an official source link.
🥩 marinate check — 3 files · 0 call sites · 3 references data 2026.07.24.4 · cli 0.1.0 ▲ BEHAVIOR .claude/settings.json:1 "opus[1m]" is a floating alias that currently resolves to claude-opus-5. It last re-pointed on 2026-07-24 (previously claude-opus-4-8). Pin an explicit version so the deployed model can't change under you without a code edit. fix: Replace "opus" with an explicit version such as claude-opus-5. source: code.claude.com/docs/en/model-config · verified 2026-07-24 ▲ REVIEW src/agent.py:1 claude-3-5-sonnet-20241022 is documented as retired; documented successor is claude-sonnet-4-6. source: platform.claude.com/../model-deprecations · verified 2026-07-23 ● STALE src/classify.ts:1 gemini-2.5-pro is documented as deprecated. It is scheduled to retire on 2026-10-16. Documented successor: gemini-3.1-pro-preview. source: ai.google.dev/gemini-api/docs/pricing · verified 2026-07-23 2 behavior/review · 1 stale
Marinate is a linter, not a service. There is no backend, no account, and nothing to opt out of.
Model lifecycle data is compiled into the package at build time and versioned with it — the report prints which catalog it used. There is no registry to call and no key to hold.
No HTTP, no DNS, no fetch. A test in CI reads the CLI's own source and fails the build if any networking module or fetch call appears in it.
The one exception, stated plainly: npx downloads the package from the npm registry, exactly like installing anything else. After that the tool is airtight — your source, prompts, file paths, credentials and results never go anywhere, because there is no code path that could send them.
A retired model at least fails loudly. These three don't fail at all — your code runs, returns a normal response, and quietly does something other than what you configured. Every claim below is the provider's own wording, checked against the live page on 2026-07-25.
Minimum cacheable prompt length is set per model — and it is not monotonic across generations. Claude Opus 4.6 requires 4,096 tokens. Opus 5 requires 512. A 3,000-token cached prefix works on one and is ignored by the other.
“Any requests to cache fewer than this number of tokens will be processed without caching, and no error is returned.”platform.claude.com/docs/en/build-with-claude/prompt-caching
Claude 4.7 introduced a new tokenizer. Nothing in your request changed, but every count derived from the old one — a tuned max_tokens, a context budget, a cost model — is now wrong in the same direction.
“Claude 4.7 and later models … use a newer tokenizer … This tokenizer produces approximately 30% more tokens for the same text.”platform.claude.com/docs/en/about-claude/pricing
Tier aliases re-point when a generation ships. On 2026-07-24 the opus alias moved from Claude Opus 4.8 to Claude Opus 5. Same config file, same deploy, different model — with different cache minimums and different behaviour.
“Before v2.1.219, opus resolved to Opus 4.8 on the Anthropic API.”code.claude.com/docs/en/model-config
And when a model does finally go: “Deprecated models are likely to be less reliable than active models.” — Anthropic, model-deprecations. Nine OpenAI models shut down on 2026-07-23. Marinate reads the same pages these quotes come from, every day, and tells you which of them your repo is standing on.
A false alarm on a private repo is the one thing that gets a tool uninstalled. So caution is built in, not hoped for:
o1 is never mistaken for the o1 model. Only quoted pins count.Anthropic will never tell you to move a call site to Gemini. OpenAI will never recommend Claude. Marinate is neutral — its only job is keeping your config current, wherever the frontier is this month. Anthropic · OpenAI · Google · xAI · Mistral.
The CLI and release alerts. Local, zero-credential, one command. For solo devs and small projects.
Fleet view across repos, automated upgrade PRs, spend attribution — for teams with a real AI bill.
Be notified when a provider change affects one of your pinned models. No spam, unsubscribe anytime.
Building now: Anthropic + OpenAI compat rules, all-provider staleness catalog.