ConfigDrift: catch config drift before it causes incidents
Keep staging and prod consistent. ConfigDrift compares config files and environment directories, flags drift, and exits non-zero on breaking changes so CI can block the PR before it ships.
Last updated: 2026-07-17 · ConfigDrift on GitHub
pip install configdrift on public PyPI.Install
Or via Homebrew: brew tap Coding-Dev-Tools/tap && brew install configdrift
Or via Scoop: scoop bucket add Coding-Dev-Tools https://github.com/Coding-Dev-Tools/scoop-bucket && scoop install configdrift
One license covers all 11 DevForge CLI tools. The free CLI works fully offline — no telemetry, no phone-home.
Why config drift matters
Configuration drift — when staging and production quietly diverge — is a leading cause of "works on my machine" incidents. ConfigDrift turns drift detection into a routine, automatable check:
- Multi-environment compliance — ensure staging and prod configs are identical before every deploy.
- Secrets audit — detect env vars that exist in one environment but are missing in another.
- CI/CD gating — block PRs that introduce config drift across environments.
- Incident prevention — catch a changed database endpoint before it causes a production outage.
Quick start
Compare two config files:
configdrift check dev.yaml prod.yaml
Scan entire directories as environments:
configdrift scan ./config/dev ./config/staging ./config/prod
Generate a config file that defines your environments:
configdrift init configdrift scan --config .configdrift.yaml
Commands
check — compare config files
configdrift check <file1> <file2> [--output table|json|silent] [--baseline dev] [--target prod]
table(default) — rich colored table output.json— machine-readable JSON for CI integration.silent— exit code only (0 = no breaking drift, 1 = breaking drift found).
scan — compare environment directories
configdrift scan ./dev ./staging ./prod --baseline dev
Scans all config files in each directory, merges them, and compares against a baseline environment.
init — generate a config file
configdrift init .
Creates .configdrift.yaml in the specified directory.
CI/CD gating
Use --output silent so a breaking drift fails the build:
configdrift check dev.yaml prod.yaml --output silent || echo "Drift detected!"
GitHub Actions:
- name: Detect config drift
run: |
pip install git+https://github.com/Coding-Dev-Tools/configdrift.git
configdrift check ./config/staging/app.yaml ./config/prod/app.yaml --output silent
Supported formats
| Format | Extension | Notes |
|---|---|---|
| YAML | .yaml, .yml | Full nested structure support |
| JSON | .json | Nested flattening |
| TOML | .toml | Python 3.11+ native |
| .env | .env | KEY=VALUE format |
Severity levels
- Info — non-critical value changes.
- Warning — added or removed optional keys.
- Breaking — changes to critical keys:
database*,auth*,api_key*,secret*,password*,token*,endpoint*.
Pricing
ConfigDrift is part of the DevForge / Coding Dev Tools suite. One license covers all 11 CLI tools.
| Plan | Price | Best for |
|---|---|---|
| Free | $0 | Individual devs, OSS — CLI only, 1 env pair |
| ConfigDrift Individual | $15/mo ($12 billed annually) | Professional devs — unlimited environments, custom rules |
| Suite (all 11 tools) | $49/mo ($39 billed annually) | Full Coding Dev Tools toolkit — 40% savings |
| Team | $79/mo ($63 billed annually) | Up to 5 devs — drift history, Slack alerts, priority support |
| Enterprise | Custom | SSO, RBAC, compliance reports, dedicated support |
No lock-in: the CLI works fully offline on the free tier — no telemetry, no phone-home. Annual billing saves 20%.
FAQ
Is ConfigDrift on public PyPI?
No. Install via git+https://github.com/Coding-Dev-Tools/configdrift.git, Homebrew (brew tap Coding-Dev-Tools/tap && brew install configdrift), or Scoop. There is no public pip install configdrift.
Which config formats are supported?
YAML, JSON, TOML (Python 3.11+), and .env (KEY=VALUE).
Can I gate CI on drift?
Yes. Run configdrift check a.yaml b.yaml --output silent; it exits 1 on breaking drift so the pipeline fails before merge.
Start catching drift today
Free, open-source, MIT. One command to install.
View ConfigDrift on GitHub