Skip to main content

ModelBump

Dependabot for LLM models. ModelBump finds the AI models your code depends on and warns you before a provider retires them. Later versions will also test the old model against its replacement, repair prompts that regress, and open the upgrade pull request for you.

PyPI CI Python License Code style: ruff Checked with mypy

Status: v0.1.0 ships the first stage, Scan, as a command-line tool and a GitHub Action. The other stages are still being built; see the roadmap.

The problem

Apps built on hosted LLMs (OpenAI, Anthropic, Google, ...) depend on specific model versions, and providers retire those versions on a schedule. When a model is retired, an app either breaks outright or keeps running while quietly producing worse answers, because prompts tuned for the old model don't transfer cleanly to the new one.

A 2026 study of 22,555 migration commits across 17,703 open-source repositories found that:

  • 82% of migrations happened after the old model was already shut down (our own re-check on a larger dataset finds a smaller share, but still more than half),
  • model identifiers were hard-coded in 94% of migrating apps, and
  • only 4% of migrations came with any evaluation suite.

Source: H. L. Kim, "When the Model Retires: An Empirical Study of LLM Migration in Open-Source Applications", arXiv:2609.31288, 2026.

Install and scan

Requires Python 3.12 or newer.

pip install modelbump
modelbump scan .

Or run it once without installing, with uv:

uvx modelbump scan .

Each line of the report gives the file, line and column, the model ID, its status (OK, RETIRING_SOON, DEPRECATED, RETIRED or UNKNOWN), the shutdown date with the suggested replacement, and where the ID sits (a call argument, an assignment, a config value, a comment, ...).

Useful options:

Option What it does
--fail-within 30 Exit with code 1 if a model is retired or shuts down within 30 days (for CI)
--skip-comments Leave out IDs that only describe a model: comments, docstrings, sentences, price tables
--skip-tests Leave out test files and test folders
--exclude PATTERN Skip matching paths, e.g. --exclude '*.ipynb' (repeat for more)
--format json / --format sarif Machine-readable reports; SARIF shows up in GitHub code scanning

Run modelbump scan --help for the rest.

GitHub Action

name: ModelBump
on:
  pull_request:
  schedule:
    - cron: "0 6 * * 1"  # every Monday, to catch new retirement notices

permissions:
  contents: read
  security-events: write  # to upload findings to code scanning

jobs:
  scan:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v7
      - uses: imhammad/modelbump@v0.1.0
        with:
          fail-within: "30"
          skip-comments: "true"

All inputs are listed in the scanner documentation.

How well the scanner works

We ran the scanner on 100 real projects, each at the commit just before it moved off a retired model, and labelled a sample of 250 findings by hand (evaluation details):

Setting Finds the old model's lines (recall) Findings that are real dependencies (precision)
Default 97.7% 47.9%
--skip-comments --skip-tests 82.0% 75.2%

Replayed on those 100 projects, the scanner flagged 96 before they migrated. The default is tuned not to miss anything; the two flags trade some misses for a much quieter report.

The plan

Stage What it does Status
Scan Static analysis finds every model ID in your code and config, checks it against a registry of provider retirement dates, and fails CI before the shutdown date. Available (v0.1.0)
Test Builds an app-specific regression suite from your prompts, tests, and (optionally) logs. Planned
Compare Runs old vs. new model with sequential statistical tests, separating real regressions from normal LLM randomness, within a cost budget. Planned
Repair Searches for prompt edits that fix regressions without breaking anything that already worked. Planned
Bump Opens a ready-to-review PR with the new model, repaired prompts, the regression suite, and an evidence report. Planned

Development

Requires uv.

git clone https://github.com/imhammad/modelbump.git
cd modelbump
uv sync
uv run modelbump --version
uv run pytest

Roadmap

  • Phase 0: Foundations: packaging, CI, pre-commit, branch protection
  • Phase 1: Migration dataset + model retirement registry
  • Phase 2: Scanner + GitHub Action (v0.1.0)
  • Phase 3: Model runner with caching and cost budgets
  • Phase 4: Statistical comparison engine
  • Phase 5: Regression suite synthesis + LLM-judge calibration
  • Phase 6: Prompt repair
  • Phase 7: End-to-end modelbump bump + v1.0.0

Research

ModelBump is also a research project: an empirical study of how open-source LLM apps migrate off retired models (paper in preparation), and later a paper on the tool itself. Research notes, protocols and results are in the research section of the docs.

License

Apache License 2.0

Metadata

Release files for modelbump 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for modelbump 0.2.0
File Size Uploaded Provenance
modelbump-0.2.0.tar.gz 39.4 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for modelbump 0.2.0
File Interpreter ABI Platform
modelbump-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 86.6 kB

Release files / modelbump-0.2.0.tar.gz

Download URL modelbump-0.2.0.tar.gz
Size 39.4 kB
Tags Source
SHA-256 checksum
How to use checksums
7bfc36039f43288269fb900892294c7ad2ebd838417e546ab8d29e72fc4044da
BLAKE2b-256 checksum
How to use checksums
de45bf31aa8aad8d4ea5fea7e11f254b7a6a133b3636f119dc87555e38450d11
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 27, 2026.

Transparency log

Release files / modelbump-0.2.0-py3-none-any.whl

Download URL modelbump-0.2.0-py3-none-any.whl
Size 47.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f602c46095dcd63e6030242c2dcb3a08d854b7208f98e42eb3326421df88360d
BLAKE2b-256 checksum
How to use checksums
d5ffd329c8eeadb540360ad6f39d82c3105478c07f6c01cc71e107ab0abf76c0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 27, 2026.

Transparency log

Security for modelbump 0.2.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for modelbump-0.2.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 27, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page