Lightweight tool for quickly spotting missing keys and differing values in .env files
Project description
dotenv-diff
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
.envfiles 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
.envfiles - Directories containing
.env*files - Glob patterns like
.env.*
Reveal Mode
Environment variables are often quoted in .env files to protect sensitive
values or to ensure correct parsing.
When a value is wrapped in quotes, dotenv-diff treats it as masked and
hides the actual content in output tables.
Example:
SECRET_KEY="secret-value" -> SECRET_KEY ********
If you need to inspect the real values, you can reveal them using the --reveal flag after every command. This will display the actual contents instead of masked placeholders.
Commands
summary
Show a high‑level overview of differences.
dotenv-diff summary /path/to/.env.* [--reveal]
| Metric | Value |
|---|---|
| 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.* [--reveal]
| VARIABLE | .env.local | .env.staging | .env.production |
|---|---|---|---|
| APP_ENV | development | staging | production |
| DEBUG | true | true | false |
| LOG_LEVEL | DEBUG | — | INFO |
| DATABASE_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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dotenv_diff-0.2.1.tar.gz.
File metadata
- Download URL: dotenv_diff-0.2.1.tar.gz
- Upload date:
- Size: 5.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
61e6528afda901dc313804792b21fa2d2fb60462fa4c1e839e2fdbbb3f628cc7
|
|
| MD5 |
a74634210d4b6f60b6c225d6d095f42b
|
|
| BLAKE2b-256 |
4c525045f2489886b3771b16f224551ddeae230d075a43d196e13f2f1c75a2a2
|
File details
Details for the file dotenv_diff-0.2.1-py3-none-any.whl.
File metadata
- Download URL: dotenv_diff-0.2.1-py3-none-any.whl
- Upload date:
- Size: 7.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
37a5cc121b5463a90f5ecec690d3690e7394d7cb7ecdee211fce85f85f673b37
|
|
| MD5 |
debb2e34172261a4b1e8f2d80cbdda9c
|
|
| BLAKE2b-256 |
d221ac646ca2653b85fe2590cfe48af95bffdfb8e4170f253f2436f3dc4e09ce
|