CodingDevTools

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

Not on public PyPI. ConfigDrift is distributed via a direct GitHub install, Homebrew, or Scoop (see Install). There is no pip install configdrift on public PyPI.

Install

pip install git+https://github.com/Coding-Dev-Tools/configdrift.git

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:

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]

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

FormatExtensionNotes
YAML.yaml, .ymlFull nested structure support
JSON.jsonNested flattening
TOML.tomlPython 3.11+ native
.env.envKEY=VALUE format

Severity levels

Pricing

ConfigDrift is part of the DevForge / Coding Dev Tools suite. One license covers all 11 CLI tools.

PlanPriceBest for
Free$0Individual 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
EnterpriseCustomSSO, 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