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.1.tar.gz (4.7 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.1-py3-none-any.whl (7.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: dotenv_diff-0.1.1.tar.gz
  • Upload date:
  • Size: 4.7 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.1.tar.gz
Algorithm Hash digest
SHA256 453d3ac791a55ebccb6052118a97617ab144d60f7ef2fee3210ce892e489f059
MD5 b27e1ee8ad7de78ea20cc527601d6af2
BLAKE2b-256 10fd2cf598a88b21404aaec999777840c6cd6cecf66a7578aac8e11cd7f634a0

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dotenv_diff-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 7.0 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 baa24528c3f599c642598780b24ad8822bd268b1e01e49efbcc86c7ae6737f4e
MD5 f55bae285ea83c86ebe282bfd2af77c0
BLAKE2b-256 31f72f3935d2bd40e996f389d6a47f5856d9ecbc2fbc36f6ae6e4ca90fde2753

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