Skip to main content

Lightweight tool for quickly spotting missing keys and differing values in .env files

Project description

dotenv-diff

PyPI Python License Build

Lightweight tool for quickly spotting missing keys and differing values in .env files

dotenv-diff helps compare multiple .env files and immediately see:

  • Which variables are missing in which files
  • Which values differ between environments
  • A clear matrix overview of all keys and files

It is designed as a simple developer utility for projects that maintain multiple environment configurations (local, staging, production, etc.).


Features

  • Compare any number of .env files at once
  • Detect missing keys across environments
  • Detect diverging values
  • Show results in human‑friendly tables
  • Three different views: summary, values, and presence
  • Works with individual files, directories, and glob patterns

Installation

pip install dotenv-diff

Usage

All functionality is available through the command line interface.

You can pass:

  • Individual .env files
  • Directories containing .env* files
  • Glob patterns like .env.*

Commands

summary

Show a high‑level overview of differences.

dotenv-diff summary /path/to/.env.*
╭─ SUMMARY ───────────────────╮
│ Total Files:           3    │
│ Unique Keys:          12    │
│ Incomplete Keys:       3    │
│ Diverging Values:      4    │
╰─────────────────────────────╯
Incomplete Key Details
• REDIS_HOST is missing in:
  ↳ .env.production
  ↳ .env.staging

Diverging Value Details
• APP_ENV
  ↳ .env.local: development
  ↳ .env.production: production
  ↳ .env.staging: staging

values

Show a matrix of actual values for each key and file.

dotenv-diff values /path/to/.env.*
╭───────────────────────────────────────────────────────────────╮
│ VARIABLE        │ .env.local │ .env.staging │ .env.production │
├─────────────────┼────────────┼──────────────┼─────────────────┤
│ APP_ENV         │ development│ staging      │ production      │
│ DEBUG           │ true       │ true         │ false           │
│ LOG_LEVEL       │ DEBUG      │ —            │ INFO            │
│ DATABASE_USER   │ dev_user   │ prod_user    │ prod_user       │
│ DATABASE_PASS   │ dev_pass   │ prod_pass    │ prod_pass       │
│ PORT            │ 8000       │ 8000         │ —               │
╰───────────────────────────────────────────────────────────────╯

presence

Show only whether a variable exists in each file.

dotenv-diff presence /path/to/.env.*
╭───────────────────────────────────────────────────────────────╮
│ VARIABLE        │ .env.local │ .env.staging │ .env.production │
├─────────────────┼────────────┼──────────────┼─────────────────┤
│ APP_ENV         │     ✅     │      ✅     │       ✅       │
│ DEBUG           │     ✅     │      ✅     │       ✅       │
│ LOG_LEVEL       │     ✅     │      ❌     │       ✅       │
│ DATABASE_USER   │     ✅     │      ✅     │       ✅       │
│ DATABASE_PASS   │     ✅     │      ✅     │       ✅       │
│ PORT            │     ✅     │      ✅     │       ❌       │
╰───────────────────────────────────────────────────────────────╯

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dotenv_diff-0.1.0.tar.gz (4.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dotenv_diff-0.1.0-py3-none-any.whl (6.8 kB view details)

Uploaded Python 3

File details

Details for the file dotenv_diff-0.1.0.tar.gz.

File metadata

  • Download URL: dotenv_diff-0.1.0.tar.gz
  • Upload date:
  • Size: 4.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for dotenv_diff-0.1.0.tar.gz
Algorithm Hash digest
SHA256 50751b782ce6a636914b75e150c22e38f2988b6dee805cc873fc74daf6af8557
MD5 dde70eddf3eed9527b5146c68cfcbb1a
BLAKE2b-256 570104eae61d1aacc5ab2a85cc0e11049dcb31b3284cd592bc387bdf648da8c2

See more details on using hashes here.

File details

Details for the file dotenv_diff-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: dotenv_diff-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 6.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for dotenv_diff-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9f32262827ddbbebdfd35873bab50319ea586d16838ab2a630e64b286257e0ea
MD5 020477faa0d7c1f32069ccf93cee58e1
BLAKE2b-256 94a50fefb88823f018168b2084c9f3d90535c89ad4bfbeedbc450a37d3b0bae6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page