Skip to main content

Pre-flight check: is this LLM model ID still alive?

Project description

Model Alive

Pre-flight check before every LLM API call: is this model ID still alive?

Hardcoded model IDs break silently until production fails. Anthropic retired Claude Sonnet 4 and Opus 4 on June 15, 2026. Mythos Preview retires June 30, 2026. Model Alive answers in one call — with source links and breaking change notes.

Install

pip install modelalive

Quick examples

# Retired model → exit 1
modelalive check claude-sonnet-4-20250514

# Resolve alias + replacement
modelalive resolve claude-3-5-sonnet-latest

# List all retired Anthropic models
modelalive list --status retired --provider anthropic

# Validate registry integrity
modelalive validate --strict
import modelalive

result = modelalive.alive("claude-mythos-preview")
print(result.days_until_retirement)  # 2 (as of 2026-06-28)
print(result.source_url)             # Anthropic deprecation docs
print(result.confidence)             # "verified"

model_id = modelalive.resolve("claude-sonnet-4-20250514")
# → "claude-sonnet-4-6"

HTTP API

uvicorn api.main:app --port 8787
Method Path Description
GET /v1/alive?model= Lifecycle check (410 if retired)
POST /v1/alive/batch Check up to 100 models
GET /v1/resolve?model= Best model ID to use
GET /v1/registry Filter by status, provider
GET /v1/sources Official doc URLs + last checked date
GET /v1/validate Registry integrity report
GET /v1/health Version + model count

CI gate (GitHub Actions)

- uses: Ahaozandaburada/modelalive@main
  with:
    models: claude-sonnet-4-20250514 gpt-5-2025-08-07
    warn-deprecated: "true"

Or plain shell:

- run: pip install modelalive && modelalive check ${{ env.MODEL_ID }}

Trust & accuracy

Every verified entry includes:

  • source — provider key (anthropic, openai, google)
  • source_url — official deprecation page (returned in API/SDK)
  • source_checked_at — date registry was last synced with docs
  • confidenceverified (in registry) or unknown (not listed)

Registry rules enforced in CI:

  • Retired/deprecated models must have replacement + retired_at
  • Past retired_at auto-marks model dead even if status lags
  • Aliases resolve before lookup (claude-3-5-sonnet-latest → dated snapshot)
  • modelalive validate --strict fails on errors before release

Canonical registry: edit registry/models.json, then:

python scripts/sync_registry.py   # copies to package bundle
modelalive validate --strict
pytest

Sources (as of 2026-06-28):

Response shape

{
  "queried_model": "claude-sonnet-4-20250514",
  "canonical_model": "claude-sonnet-4-20250514",
  "alive": false,
  "status": "retired",
  "provider": "anthropic",
  "retired_at": "2026-06-15",
  "replacement": "claude-sonnet-4-6",
  "breaking_changes": [],
  "source_url": "https://platform.claude.com/docs/en/about-claude/model-deprecations",
  "source_checked_at": "2026-06-28",
  "confidence": "verified"
}

Coverage

Provider Active Deprecated Retired
Anthropic Sonnet 4.6, Opus 4.8, Haiku 4.5, Mythos 5, … Opus 4.1, Mythos Preview Sonnet 4, Opus 4, 3.x series
OpenAI gpt-5.5, gpt-4o, … gpt-5 snapshots, gpt-5.2-chat-latest, … gpt-4-0314, gpt-3.5-turbo-0301, …
Google gemini-3.5-flash, … 2.5 Flash, embeddings, image previews gemini-2.0-flash (June 1), gemini-3-pro-preview

Unknown models return status: unknown, confidence: unknown, alive: true — we never block what we haven't verified.

Docker (self-host API)

docker compose up --build
curl "http://localhost:8787/v1/alive?model=gemini-2.0-flash"

Deploy to Fly.io:

fly launch --copy-config --yes
fly deploy

Keep registry fresh

pip install modelalive[http]
python scripts/refresh_sources.py   # fetch provider docs, update checked_at
modelalive validate --strict
python scripts/sync_registry.py

Weekly automated refresh runs via .github/workflows/registry-refresh.yml.

Sources (as of 2026-06-28):

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

modelalive-0.2.1.tar.gz (14.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

modelalive-0.2.1-py3-none-any.whl (12.5 kB view details)

Uploaded Python 3

File details

Details for the file modelalive-0.2.1.tar.gz.

File metadata

  • Download URL: modelalive-0.2.1.tar.gz
  • Upload date:
  • Size: 14.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for modelalive-0.2.1.tar.gz
Algorithm Hash digest
SHA256 6d9e8c8fb60d2a4c25b8643f5d1c66e11132d44a396b6d5db59b8738d0e186e9
MD5 092a962977f03e5fafec9c7a1840c84d
BLAKE2b-256 bbc92a25770c8cc3f0213b286242c722582170f9c2855e5e08c10a0de926fd69

See more details on using hashes here.

File details

Details for the file modelalive-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: modelalive-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 12.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for modelalive-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d27b29ebb499409ef9c9074551ad33a5d3e99c7edc490fc1d1a7dc5271cce329
MD5 785984e21a1aff6e98a9e19d24781f88
BLAKE2b-256 604ea02d7f093c0ff9a7497d56a2e0deaf7269a15563ed76a8e34f161f2ac438

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page