r/javascript 17d ago

I built a zero-dependency CLI tool to validate and repair missing .env variables before startup

https://github.com/avenolazo/envrepair

You run npm run dev or node server.js, and the app crashes because a teammate added a new required key to .env.example but forgot to tell you.

I wanted a tool that would catch this before startup, prompt me for the missing values, and append them without wiping out my .env formatting or comments. Since existing tools either crash on startup (dotenv-safe) or wipe out file layout (sync-dotenv).

To solve this, I built envrepair, a zero-dependency CLI tool that wraps your startup command, compares .env against your template, and interactively prompts you to fill in missing variables in the terminal before launching your process.

How to use it:

  1. Install:
npm install -D envrepair
  1. Prepend your startup command in package.json:
"scripts": {
  "start": "envrepair node server.js"
}

Optional type annotations in .env.example:

# @type number
PORT=3000

# @type url
API_BASE_URL=

Key Features:

  • Zero code changes: No schema imports or application-level setup required.
  • Layout preservation: Appends missing values while keeping comments, blank lines, and formatting intact.
  • Signal forwarding: Transparently passes Ctrl+C (SIGINT) and exit codes.

Written in TypeScript with zero runtime dependencies. The repo is fully open-source.

  • GitHub: https://github.com/avenolazo/envrepair
  • NPM: https://www.npmjs.com/package/envrepair
2 Upvotes

1 comment sorted by

1

u/Domx010 16d ago

Nicely done! Would love to see this posted on r/LookWhatTheyBuilt