CI & GitHub
Two ways to gate pull requests on model lifecycle: run mm ci in any CI system, or install the GitHub App for a one-click setup.
mm ci in any pipeline
# .github/workflows/mm.yml
- run: npx @modelstatus/cli ci . --fail-on retiringmm ci scans the directory against the signed registry and exits non-zero when any usage is at or above the --fail-on threshold:
| Threshold | Fails on |
|---|---|
none | never (report only) |
deprecating | deprecating + retiring + retired |
retiring | retiring + retired |
retired | retired only (default) |
It runs offline after the first registry fetch and needs no account. Under GitHub Actions it emits inline annotations on the offending lines and a job step summary. Useful flags:
--diff <base>— only report findings in files changed vs a base ref. On pull requests this is automatic viaGITHUB_BASE_REF.--json-out <file>— write clean findings JSON to a file (stdout stays annotations-only).--report— (Pro) sync the run’s usages and a CI-run row to your cloud account, so the dashboard tracks drift per branch.
Not on GitHub? The same command works in GitLab CI, CircleCI, Jenkins, or a Dockerfile — the exit code is the contract. Binaries are on the CDN (manifest: cli/latest/version.json) if you’d rather not pull from npm.
The GitHub App
Install the LLM Status GitHub App and every pull request gets a check run — no workflow file, no secrets, no CLI in your pipeline.
- The check fails with a findings table when a PR introduces a deprecated or retiring model.
- When a finding has a known replacement, the check-run page shows an Open fix PR button. Click it and the app opens a pull request against your branch with the exact rewrites, shown as a diff.
- The app reads only what it needs to scan and posts results back as checks and comments.
The App requires a Pro account.
Free vs Pro
| Plan | |
|---|---|
mm ci offline gate (--fail-on, --diff, annotations) | Free |
mm ci --report cloud drift tracking | Pro |
| GitHub App checks + fix PRs | Pro |
| Retirement alerts (email, Slack, SMS, webhook) | Free account: email + in-app · Pro: all channels |
Details on tiers: Free vs Pro.