depfix
Dependabot for APIs. When a provider ships a breaking change, depfix scans your codebase, finds every affected call-site, generates verified fixes, and opens a pull request.
pip install depfix-ai
The Problem
Over 30% of service downtime traces back to external API/package changes going unnoticed. Breaking changes ship without warning. Changelogs don't get read. Teams discover the breakage in production.
Dependabot bumps version numbers. depfix fixes your code.
[ Traditional Dependency Bumper ]
package.json: openai@3.x --> openai@4.x --> Runtime errors everywhere
[ depfix ]
1. Detects the breaking change from provider feeds
2. Scans your codebase for every affected call-site
3. Generates LLM-verified code fixes
4. Runs your test suite before and after
5. Opens a ready-to-merge PR
How It Works
watch --> scan --> plan --> apply --> PR
| Step | What Happens |
|---|---|
| Watch | Polls 27+ provider feeds (npm, PyPI, GitHub releases, OpenAPI diffs) for new versions and classified breaking changes |
| Scan | Clones your repo, traces imports to actual API usage, finds every call-site with confidence scoring (HIGH/MEDIUM/LOW) |
| Plan | Matches breaking changes to detected call-sites, generates LLM-written fixes, runs your test suite to verify each fix |
| Apply | Applies verified fixes, composes version bump + API migration into one PR |
Quick Start
Installation
pip install depfix-ai
Note: The PyPI package name is
depfix-ai. The CLI command isdepfix.
Basic Usage
# Initialize local database and provider feeds
depfix init
# Scan a repo for breaking changes against a specific provider
depfix scan --repo your-org/your-app --provider openai
# Generate a fix plan (no PR yet)
depfix plan your-org/your-app --provider stripe
# Apply fixes and open a PR
depfix apply your-org/your-app --provider sentry
Full Pipeline (Single Command)
# Run the full pipeline: scan + plan + apply
bash scripts/test_pipeline.sh openai:your-org/your-app
Supported Providers
27+ providers out of the box. depfix auto-discovers new providers from npm, PyPI, and RubyGems.
| Category | Providers |
|---|---|
| AI/ML | OpenAI, Anthropic, Google Cloud AI, LangChain, Vercel AI SDK |
| Payments | Stripe |
| Auth | Clerk, Supabase, Auth0 |
| Databases | MongoDB, Redis, PostgreSQL, MySQL, Prisma, Elasticsearch |
| Observability | Sentry, PostHog, Datadog, New Relic |
| Messaging | Twilio, SendGrid, Slack, Discord |
| Cloud | AWS S3, Firebase, Google Cloud, Cloudflare |
| Other | Algolia, Kafka, RabbitMQ, Astro, Octokit |
Supported Ecosystems
| Ecosystem | Scan | Fix | Verify |
|---|---|---|---|
| JavaScript / TypeScript (npm) | Yes | Yes | Yes |
| Python (PyPI) | Yes | Yes | Yes |
| Ruby (RubyGems) | Yes | Yes | Yes |
| Go | Yes | -- | -- |
| Java, Kotlin, Rust, PHP, C#, Swift | Yes | -- | -- |
What Makes depfix Different
- Call-site detection, not just version numbers. depfix traces imports to actual API usage across your codebase. It finds the exact lines that break.
- Verified fixes. Every generated fix runs your test suite before and after. Broken fixes never reach a PR.
- Deterministic where possible. OpenAPI diffs and semver comparisons don't need an LLM. Only actual code rewrites use one.
- Version drift + API migration in one PR. depfix composes package.json version bumps with code-level fixes into a single, reviewable pull request.
- Honest confidence scoring. Every finding has a confidence level (HIGH/MEDIUM/LOW). depfix doesn't guess.
GitHub Action
Add to .github/workflows/depfix.yml:
name: depfix
on:
schedule:
- cron: '0 8 * * 1' # every Monday at 8am
workflow_dispatch:
jobs:
depfix:
runs-on: ubuntu-latest
steps:
- uses: bedilk/depfix-agents@main
with:
provider: openai,stripe,sentry
mode: apply
api-key: ${{ secrets.GOOGLE_API_KEY }}
CLI Reference
depfix init # set up local database and integrations
depfix watch --once # poll feeds for new changes
depfix scan --repo org/app --provider stripe # find affected call-sites
depfix plan org/app --provider stripe # generate verified fixes
depfix apply org/app --provider stripe # open a PR with the fixes
depfix eval --no-llm # run deterministic test corpus
Configuration
All config is via environment variables or .env file:
| Variable | Purpose |
|---|---|
GOOGLE_API_KEY |
Google Generative AI key (for Gemini) |
LLM_PROVIDER |
gemini, bedrock, or ollama |
GITHUB_APP_ID |
GitHub App for remote repo scanning |
GITHUB_APP_PRIVATE_KEY |
Private key for the GitHub App |
DATABASE_URL |
SQLite (default) or Postgres connection string |
See .env.example for the full list.
Self-Hosted
git clone https://github.com/bedilk/depfix-agents
cd depfix-agents
python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
cp .env.example .env # edit with your keys
depfix init
Docker:
docker compose up -d --build
docker compose exec app depfix scan --repo org/app --provider openai
Testing
make test # 893 unit tests, no network, no LLM
make lint # ruff check + format
make typecheck # mypy strict
make eval # deterministic eval corpus (CI gate, 91%+)
Architecture
src/depfix/
cli.py # CLI entry point (watch, scan, plan, apply)
orchestrator/ # Pipeline runner, policy engine, upgrade plans
scanners/ # Call-site detection, version applicability
fixers/ # LLM-powered code rewriting
classify/ # Breaking change classification from spec diffs
core/ # Domain models, agent, change feeds
storage/ # SQLAlchemy schema, migrations
gh/ # GitHub App integration, PR creation
Built By
Bedil Karimov and Tohir Saidzoda
We spent a year working with 50+ API vendors. The pattern was consistent: API communication is broken. Breaking changes ship with little warning. Useful features quietly launch and go unnoticed.
The infrastructure for automated code changes exists now. What was missing is the application layer connecting API providers to their customers' codebases. That's depfix.
License
Source Available - see LICENSE for details.
Metadata
Release files for depfix-ai 0.2.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| depfix_ai-0.2.2.tar.gz | 419.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| depfix_ai-0.2.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 944.2 kB
Release files / depfix_ai-0.2.2.tar.gz
| Download URL | depfix_ai-0.2.2.tar.gz |
|---|---|
| Size | 419.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
39c60aa6f913932fa74fcbfd6b6c6ee4a4ba09ca33b1584af688235443f90a5f
|
|
BLAKE2b-256 checksum How to use checksums |
aa1d47d8d7b59b73c7d420eacb9e0a79fbf110e71af3b930a171450bc55e0df9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 15, 2026.
Transparency logRelease files / depfix_ai-0.2.2-py3-none-any.whl
| Download URL | depfix_ai-0.2.2-py3-none-any.whl |
|---|---|
| Size | 525.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c1c41b990f04f63e3e7f231ab967bf2f81d1ec9d74c065dc76700a63158c1b27
|
|
BLAKE2b-256 checksum How to use checksums |
bd410385448d10e538ab43efa04fda6af2e651ece22a355a0db3638782f76474
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 15, 2026.
Transparency log