Skip to main content

Dotenv Diff Checker

Compare a .env file against its .env.example template to find missing, extra and value-mismatched keys. Parses export prefixes, quotes and inline comments; optional case-insensitive keys, value comparison and value masking. Runs entirely in your browser.

Input

Options

Replaces every non-empty value with ***** so you can share the report safely.

Output

Summary

Result
StatusCount
No data yet

Details

Result
StatusKey.env.example.env
No data yet
Exportable report
 
Was this helpful?

Guides

The Dotenv Diff Checker compares an actual .env file against its .env.example template and shows you exactly what has drifted: keys that are missing, keys that are extra, keys whose values differ, and keys that match. It is the fastest way to catch the classic "works on my machine" bug where a new environment variable was added to the template but never set in a deployment.

Paste your .env.example on the left and your real .env on the right. The report updates instantly as you type — everything runs in your browser, so nothing you paste ever leaves your machine.

How to use it

  1. Paste the contents of your .env.example (the committed template) into the first box.
  2. Paste your actual .env into the second box.
  3. Read the summary counts and the detailed table. Copy or download the report to share it with a teammate or attach it to a ticket.

The parser understands real-world dotenv syntax: it skips blank lines and # comments, strips a leading export , removes surrounding single or double quotes, and drops trailing inline # comments (while leaving # characters inside quoted values alone).

Options

  • Case-sensitive key comparison — on by default. Turn it off to treat Api_Key and API_KEY as the same variable.
  • Compare values — when on, a key present in both files but with a different value is flagged as a value mismatch. Empty template values (placeholders like DB_HOST=) are never treated as mismatches, since a blank in the example just means "fill this in".
  • Mask values in report — on by default. Replaces every non-empty value with ***** so you can safely paste the report into a PR, chat, or bug tracker without leaking secrets.

FAQ

What counts as "missing" versus "extra"?

Missing keys are declared in .env.example but absent from your .env — usually the cause of a crash on boot. Extra keys exist in your .env but not in the template — often stale local overrides or an out-of-date example file that should be updated.

Does it validate values or check formats?

No. It compares keys and, optionally, whether their values are identical. It does not know that a port should be numeric or that a URL should be reachable — it is a structural diff, not a linter.

Is it safe to paste production secrets?

Yes. The comparison happens entirely client-side in your browser; the two files are never uploaded, logged, or sent anywhere. Leaving Mask values on is still recommended before you copy the report elsewhere, and shareable links never include the pasted file contents.

Can I export the result?

Yes. The detail table downloads as CSV, and the Exportable report is a plain-text summary you can copy or download as env-diff-report.txt to drop into code review or CI notes.

Privacy

This tool is 100% client-side. Your .env and .env.example contents stay in the browser tab — there is no server round-trip, no storage, and no analytics on what you paste.

dotenvenvdiffconfigenvironment-variablesdevops

Love the tools? Lose the ads.

One payment clears every ad from your account, for good. No subscription, no tracking.