Env diff

Paste two .env files — changed variables appear instantly, no button, no upload.

Options

How to use it

  1. Paste the first .env into “Environment A” and the second into “Environment B” — every added, removed or changed variable appears as you type, there is no button to press.
  2. The comparison is by key, not by line: moving a line, adding a blank line or a comment does not create a difference, only changes to a variable name or value do.
  3. Use “Copy diff” to take the full list away: each line is +, - or ~ followed by the key, the value and (for changes) the old and new value — ready for a ticket or an email.

Example

Two files

【Environment A】
DB_HOST=localhost
DB_PORT=5432
API_KEY=sk-aaaaaaaaaa
FEATURE_NEW=false

【Environment B】
DB_HOST=db.prod.example.com
DB_PORT=5432
API_KEY=sk-bbbbbbbbbb
NEW_RELIC_KEY=nr-xyz

Differences

+ NEW_RELIC_KEY=nr-xyz
~ DB_HOST=localhost -> db.prod.example.com
~ API_KEY=sk-aaaaaaaaaa -> sk-bbbbbbbbbb
- FEATURE_NEW=false
(+1 ~2 −1)

The 【Environment A】/【Environment B】 lines are example headings; in real use the two files go into the two input boxes. Only real key/value changes are listed: DB_PORT is the same in both, so it is not shown, and the key order never matters.

Rules, limits and known issues

  • This is a key-based diff, not a line-based one: a variable moved to another line, a new blank line or a comment is not a difference. Only a changed variable name or value is listed.
  • Key order does not matter — the files are compared as key/value maps, so reordering the lines never changes the result. A key is matched exactly, including case: DB_HOST and db_host are different keys.
  • Comments (a whole line starting with #) and blank lines are ignored. An optional “export ” prefix is stripped. Values may be quoted; double-quoted values interpret \n \r \t \\ and \", single-quoted values keep their content literally.
  • Values are compared exactly by default — KEY= hello and KEY=hello are different. Turn on “Trim whitespace around values” if you want surrounding spaces ignored; turn on “Ignore values (keys only)” to compare key sets without their values.
  • Duplicate keys keep the last value, as dotenv does, and a note tells you how many duplicates were found. Variable references like ${OTHER_VAR} are compared as written and are not expanded.
  • Limits: results update about 0.6 s after you stop typing above 200,000 characters combined; one file over 1,000,000 characters is reported as an error, never truncated. At most 400 change lines are rendered, but copying always gives the full list.
  • No file upload, no URL loading, no variable expansion, no history and no share links. Everything runs in your browser: nothing is uploaded or stored.

What people usually need next, once the two environments are compared.