dotenv · sort · align · live

Format and sort .env files

Parses KEY=VALUE pairs, optionally sorts and uppercases the keys, and aligns the = sign. Comments are preserved. Runs locally.

Dotenv Formatter
Input
81 B
5 lines
Output
109 B
5 lines
Status
ready
live
Ratio
1.35×
out/in
input · .env
output · formatted .env
# comment
api_key      = 'sk-...'
DATABASE_URL = postgres://localhost
DEBUG        = true
PORT         = 3000
Quick Start

How to format a .env file

Each KEY=VALUE pair is parsed, optionally sorted, and aligned. `export` prefixes are stripped; trailing comments stay attached.

  1. 01

    Paste your .env

    Quoted values, export prefixes, and trailing #-comments are all handled.

    Parsing runs through Prettier’s standalone bundle (or the language-specific equivalent) loaded lazily — no parser ships until the tool is opened.

    dotenvPrettierASTstandalonelazy
    input · sourceraw · AST
    API_KEY=...
    loaded · parsedAST · ready
  2. 02

    Toggle sort / upper

    Sort keys alphabetically and optionally uppercase every key name.

    Indent width, tab style, and print-width re-format through a memoised pass — switching 2 → 4 spaces never re-parses, only re-prints.

    optionsindentprint-widthmemoisedlive
    opts · optionssort/upper · live
    sort=on
    options applied · livelive
  3. 03

    Watch keys align

    The = sign is padded to a column that fits the longest key.

    The formatter is deterministic and idempotent: running it twice produces byte-identical output, which keeps diffs and git noise to a minimum.

    liveidempotentdeterministicdiff-cleanstable
    out · formattedaligned · ready
    API_KEY = ...
    formatted · liveidempotent
  4. 04

    Copy or download

    Drop the result back into your repo's .env or copy to clipboard.

    Download writes a Blob with the language-appropriate extension; copy uses navigator.clipboard.writeText so the output preserves all whitespace exactly.

    exportclipboardbloblanguage MIMEclient-side
    ok · copiedready · done
    ✓ Copied
    shipped · ready to shipsuccess
Pro tips

Formatting tips that keep diffs sane

Pick one config and pin it

Inconsistent formatting causes diff churn. Commit .prettierrc / .editorconfig and enforce in CI.

Format on save

Editor integration is faster feedback than a pre-commit hook. Use both for belt-and-braces.

Idempotency matters

Running the formatter twice should produce identical output. Test this on a representative file.

Match the language community

Default to community conventions: 2 spaces for JS/CSS, 4 for Python, tabs for Go. Fights over indent are a productivity tax.

Print-width drives wrapping

80, 100, and 120 are the common targets. Wider lines parse fast but review slower side-by-side.

Don’t mix formatters and linters

Prettier handles whitespace; ESLint handles correctness. Disable overlapping rules to avoid fight-club configs.

Use Cases

When to format .env

Onboarding docs, audit, secret rotation.

Onboarding docs

Generate a clean .env.example sorted by key. Idempotent: running the formatter twice produces byte-identical output, which is the foundation of a clean CI gate. Pair with a pre-commit hook so PRs arrive already formatted, focusing review on logic.

idempotent

Audit pass

Spot duplicates and inconsistencies by aligning keys. Pairs with EditorConfig + .prettierrc for end-to-end consistency. Whitespace-only changes vanish so reviewers see real diffs, and git blame stays honest about who wrote what.

CI-ready

Secret rotation

Sort keys before diffing a rotated set against the old. Output respects your indent width, tab style, and print-width — settings carry over for repeat runs. Switching 2-space to 4-space costs nothing in CPU but standardises an entire codebase.

diff-clean

Repo cleanup

Normalise an inherited .env into team style. Format-on-save is the fastest feedback loop; CI is the safety net. Together they make inconsistent indentation a thing of the past and free up review cycles for genuine concerns.

PR-friendly

Quick triage

Read a chaotic .env at a glance after alignment. Whitespace-only changes don't trigger downstream content-hash invalidations, so CDN cache keys and CI cache layers stay warm. Real changes get all the rebuild budget.

review-ready

12-factor app

Keep your env files predictable across environments. Pairs with linters (ESLint, Stylelint, pylint) that catch what formatting alone can't — bugs, unused imports, dead code. Each tool stays in its lane, and the codebase stays clean.

12fa
FAQ

Frequently asked questions

No — only the key column is sorted / uppercased and the = sign aligned. Values are preserved verbatim.
Single and double-quoted values are kept exactly as written.
No. Run this locally in your browser; nothing leaves the tab.
Lines that don't match KEY=VALUE are dropped silently — fix and re-paste.
No — the formatter runs locally in your browser tab.
Suggest a tool

Something missing?

Tell us what you need. We ship the top requests every two weeks.

Sent straight to the maintainers · no account needed
47 in queue·8 shipped this month
Request queued. Thanks!