Skip to content
| Marketplace
Sign in
Visual Studio Code>Linters>Env Drift — Multi-Environment Config DiffNew to Visual Studio Code? Get it now.
Env Drift — Multi-Environment Config Diff

Env Drift — Multi-Environment Config Diff

Manmohan Mirkar

|
2 installs
| (0) | Free
Compares Terraform .tfvars across environments (dev/staging/prod) and flags missing variables and suspicious drift — right in your editor.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Env Drift — Multi-Environment Config Diff

Catch the config drift between your Terraform environments before it causes a "worked in staging, broke in prod" incident — right inside VS Code.

Infrastructure is usually defined per environment (dev.tfvars, staging.tfvars, prod.tfvars). Over time these silently diverge: a variable is added to one env but not another, or a risky flag like enable_deletion_protection is true in prod but false everywhere else. Env Drift compares them all and tells you.

Features

  • 📊 Environment matrix — every variable as a row, every environment as a column, so you see all values side-by-side. Run “Env Drift: Show Environment Matrix.”
  • 🔴 Missing-variable detection — a key defined in some environments but not others is flagged inline.
  • 🟠 Suspicious drift — high-risk keys (security/feature flags, booleans) that differ across environments are surfaced as warnings.
  • 🟢 Expected differences — region, account_id, *_arn, etc. are ignored by default (configurable) so you only see real problems.
  • 🧩 Schema validation against variables.tf — cross-checks each *.tfvars against the variable "..." {} declarations in nearby .tf files:
    • undeclared keys (almost always a typo Terraform would warn about), and
    • required variables (no default) not set in an environment. This catches "would this even terraform apply?" bugs, not just drift.
  • ✅ Status bar — live count of drift issues; click to open the matrix.
  • 🔗 Click any value in the matrix to jump to that line in the right env file.

How it classifies each key

Status Meaning Flagged?
missing defined in some envs, absent in others ✅ info
suspicious risky key (or boolean) with differing values ✅ warning
different values differ (often legitimate: sizes, names) shown only
same identical everywhere shown only
ignored matched an ignore pattern (expected to differ) no

Settings

Setting Default What it does
envDrift.enabled true Master switch
envDrift.files **/*.tfvars Which files are environments
envDrift.exclude **/.terraform/** Paths to skip
envDrift.ignoreKeys region/account_id/… Keys expected to differ
envDrift.suspiciousKeyPattern enable/protect/encrypt/… High-risk key regex
envDrift.validateAgainstVariables true Check tfvars against variables.tf (typos + required vars)

Each *.tfvars file is treated as one environment (named after the file, or its parent folder for generic names like terraform.tfvars).

Install (locally)

This extension isn't on the Marketplace — install the prebuilt .vsix directly.

  1. Download env-drift-0.1.0.vsix from the latest release.

  2. Install it:

    code --install-extension env-drift-0.1.0.vsix
    

    Or in VS Code: Extensions panel → ⋯ menu → Install from VSIX… → pick the file.

  3. Reload VS Code. Open a folder with *.tfvars files and look for the Env Drift item in the status bar.

Prefer building from source? See Develop / run below.

Develop / run

npm install
npm run compile
npm test        # parser + differ unit tests

Press F5 to launch an Extension Development Host — it opens the bundled samples/ folder (dev/staging/prod with deliberate drift) so you can see it work immediately. Look for the Env Drift item in the status bar.

Roadmap

  • Terragrunt, per-env folders, and Kubernetes/Kustomize overlay layouts
  • "Promote value" quick-fix to copy a value from one env to another
  • Export drift report to Markdown for PRs

License

MIT

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft