A free, zero-dependency CLI that answers the two questions that silently break API integrations: does my live API still match my OpenAPI spec, and did I just introduce a breaking change?
driftwire check — spec vs. realityProbe your live API and validate every response against your OpenAPI spec. Flags type mismatches, undocumented fields, missing required fields, and enum violations. The one thing oasdiff explicitly cannot do. Try it live →
driftwire diff — spec vs. specCompare two spec versions and surface the breaking changes: removed endpoints, fields, and parameters; newly-required fields; type changes; removed enum values.
# single-file wheel (no build step)
pip install "https://github.com/Haswell119/driftwire/releases/download/v0.2.0/driftwire-0.2.0-py3-none-any.whl"
# or from source
pip install git+https://github.com/Haswell119/driftwire.git
# macOS (Homebrew)
brew tap haswell119/driftwire
brew install driftwire
# Python 3.9+. Only dependency: PyYAML.
# catch breaking changes on every PR
driftwire diff openapi@base.yaml openapi.yaml
# or validate a deployed API against its spec
driftwire check openapi.yaml --url https://api.example.com
# exit 1 when drift is found — fails the build like any other check
Also ships as a GitHub Action (Haswell119/driftwire@main) — drop it into on: [pull_request] and it gates merges automatically.
The free core stays free, forever. Two features are licensed:
--format html renders a self-contained, severity-colored report you can attach to a PR..driftwire.yml waivers — record reviewed-and-justified exceptions so CI stays green on known drift while still blocking new drift. The workflow oasdiff sells for $100/mo.Most API tooling does one half of the job or the other. DriftWire does both in a single, dependency-light CLI that runs locally and in CI — no uploads, no telemetry, no account. Your spec and your responses never leave your machine.
Built by Meridian Digital. MIT free core · source on GitHub · releases · listed on ListedStartups.
What counts as a breaking change, why it slips through review, and how to catch it automatically in CI.
Why your docs stop matching your API, and how to validate live responses against your spec.