.env File Validator — Check Syntax, Duplicates & Missing Keys

Paste a .env file to find invalid keys, duplicates, empty values and quoting mistakes, compare it with .env.example to spot missing variables, and generate a safe example file. Runs entirely in your browser — nothing is uploaded.

Runs in your browser
🔒 Runs locally. Your .env is parsed in this browser tab and never sent anywhere. Values are masked in the report.
    LineKeyValueNotes
    .env.example (values removed)

    Your data never leaves your computer. All processing happens 100% locally in your browser.

    How to use the .env File Validator

    1. Paste your .env into the left box. Optionally paste .env.example (or a list of required keys) on the right.
    2. Read the issue list: errors break parsing, warnings are likely mistakes or risky values.
    3. Check the table for every variable — values are masked so you can share a screenshot safely.
    4. Download the generated .env.example and commit it instead of your real .env.

    .env syntax in a nutshell

    LineResult
    PORT=3000Simple value
    APP_NAME="My App"Quotes needed for spaces
    GREETING='Hello $USER'Single quotes: no variable expansion (dotenv-expand, Docker Compose)
    KEY="line1\nline2"Double quotes: \n becomes a line break
    export TOKEN=abcexport prefix is allowed and ignored by dotenv
    # commentComment; after a value only when preceded by a space and the value is unquoted

    Common mistakes this validator catches

    • Duplicate keys — most loaders keep the first or the last value silently, so changes seem to have no effect.
    • Spaces around = or in unquoted values — KEY = value breaks in shells and Docker.
    • Unclosed quotes that swallow the following lines.
    • Invalid names — keys should be letters, digits and underscores and not start with a digit.
    • Secrets such as AWS keys, Stripe live keys, GitHub tokens or private keys — fine in a local .env, but never commit them.

    Keep .env out of Git

    Add .env to your .gitignore and commit a .env.example with the keys only. In CI, store values as secrets — see the GitHub Actions Workflow Generator. Front-end frameworks expose variables with prefixes like VITE_, NEXT_PUBLIC_ or PUBLIC_ to the browser — never put secrets in those.

    Tools that pair well with the .env File Validator

    • package.json Generator — Fill in a form and get a valid package.json — npm name validation, script presets for Vite, Next.js, Node and TypeScript libraries, exports, engines, license and repository — with warnings for common mistakes.
    • Unicode Character Inspector — Paste anything to see what it’s really made of: each character’s name, code point, UTF-8 bytes and HTML code.
    • Diff Checker — Paste an original and a changed version to see added, removed and modified lines side by side — with the exact words that changed highlighted inside each line.
    • Git Command Generator — Pick a task like “undo the last commit but keep my changes” or “rename a branch on GitHub”, fill in your branch names and get the exact Git commands — each line explained, risky steps flagged.

    Frequently asked questions

    Is it safe to paste my .env here?
    The validator runs only in your browser; nothing is uploaded or stored. Values are masked in the report. Still, avoid pasting production secrets into any website if your policy forbids it — use the example file instead.
    Do I need quotes in a .env file?
    Only when the value contains spaces, #, quotes or line breaks, or starts with a special character. Double quotes allow escapes like \n; single quotes keep the value literally.
    What is .env.example for?
    It documents which variables the project needs, without real values. Commit it so new teammates and CI know what to configure; keep the real .env out of Git.
    Why does my variable stay undefined?
    Typical causes: a typo or different case in the key, a duplicate later in the file, spaces around =, an unclosed quote above it, or the file isn’t loaded (wrong folder or missing dotenv config). Front-end bundlers also require prefixes like VITE_ or NEXT_PUBLIC_.

    Related tools