5-minute walkthrough
From a fresh install to your first alert. You can stop at step 2 if all you want is the free health check.
1. Health check
From any repo:
mm statusThe CLI pulls a signed registry snapshot from cdn.llmstatus.ai, scans the directory on-device, and prints every AI model it finds along with its lifecycle status and the soonest retirement date.
LLM Status — registry 20260528T060033Z (today), 380 models
Scanned ./apps/web: 12 reference(s) → 6 model(s), 1 custom
Models in use:
🔴 retired openai/gpt-4-0314 retires 2024-06-13 → openai/gpt-4-1 (2)
🟠 retiring anthropic/claude-opus-4 retires 2026-06-15 → anthropic/claude-opus-4-7 (1)
🟢 ok openai/gpt-5 (3)
⚠ 2 model(s) need attention before they retire.No telemetry, no account, fully offline-capable after the first run. The legend:
- 🟢 ok — current model, no action needed
- 🟡 deprecating — provider has stopped recommending it, no firm retirement date yet
- 🟠 retiring — firm retirement date within the next 90 days
- 🔴 retired — retirement date has passed; calls may already be failing
- ⚪ custom — string didn’t match anything in the registry (custom or fine-tuned model)
2. Sign in
If you want alerts on deprecations / retirements across your team, or an inventory of models across repos, sign in. Opens a browser tab — no terminal-paste of API keys needed:
mm loginThe CLI generates a one-time device code, opens llmstatus.ai/cli?code=... in your browser, you confirm in your account, and the key gets written to ~/.config/llmstatus/config.json (mode 0600). To paste an existing key instead:
mm login mm_live_yourKeyHere3. Scan a project
One scan finds every model call, lets you pick what to track, and uploads to your account:
mm scan # interactive TUI
mm scan --ci --json --project web # for pipelines
mm scan --sources all # include env, k8s, helm, sql, aws-secretsOr bare mm launches the full TUI (inventory · scan · what’s new · alerts) if you’d rather browse.
The detection sources:
| Source | What it reads |
|---|---|
filesystem | repo files (default) |
env | live process env vars (OPENAI_API_KEY, etc.) |
aws-secrets | AWS Secrets Manager + SSM |
k8s | kubectl secrets + configmaps |
helm | helm release values |
sql | psql, via --db DSN |
Privacy: the secret-aware sources shell out to your already-authenticated CLIs, run read-only, redact every snippet, and only ever upload model ids. Secret values never leave your machine. Use
--dry-runto preview what would upload before it does.
4. Set up alerts
In the web app: Notifications → Add rule. Pick:
- Scope — my models (only what you’ve added), providers (e.g. all OpenAI), or all (the whole registry).
- Event types — deprecation, retirement, new model, replacement available.
- Severity — info, warning, urgent.
- Lead-time chips — 90 / 30 / 7 / 1 day before retirement.
- Channels — email, Slack, SMS, in-app.
- Delivery — immediate or daily digest.
Notifications are deduped per (user, dedupe_key) so one alert covers all your usages of a model — no spam.
Upgrade from the CLI: mm upgrade opens Stripe checkout and polls until Pro is active.
5. Drop into CI
Catch regressions when someone pins a deprecated model:
# .github/workflows/mm.yml
- run: npx @modelstatus/cli scan --checkFails the build (non-zero exit) if any usage maps to a retiring or retired model. The CLI binary is also available on the CDN — drop it into your Dockerfile if you’d rather not pull from npm in CI.