Skip to content

long260398/envpatch

Repository files navigation

envpatch

Never deploy with a broken .env again — validate, diff, and sync environment files in one command.

CI npm version License: MIT Node.js

Demo

Demo

$ envpatch check

✗ Missing keys (2):
  - DATABASE_URL
  - REDIS_URL

⚠ Empty values (1):
  ~ APP_KEY

3 issues found

$ envpatch sync

Added 2 keys to .env:
  + DATABASE_URL=
  + REDIS_URL=

$ envpatch check

✓ .env is valid

Features

  • Catch broken deploys early — spot missing keys before they cause production errors
  • Visual diff — see exactly what's different between .env and .env.example at a glance
  • One-command sync — copy missing keys from .env.example to .env automatically
  • Safe by default--dry-run previews all changes before writing anything
  • Custom paths — works with any naming convention (--env, --example flags)
  • Zero config — drop it into any project, no setup required

Getting Started

Prerequisites

  • Node.js 18+

Install globally

npm install -g envpatch

Or run without installing

npx envpatch check

Usage

# Create .env from .env.example (replaces: cp .env.example .env)
envpatch init

# Create with a custom output name
envpatch init --out .env.staging

# Check for missing or empty keys
envpatch check

# Show a visual diff
envpatch diff

# Add missing keys from .env.example to .env
envpatch sync

# Preview sync without writing
envpatch sync --dry-run

# Use custom file paths
envpatch check --env .env.staging --example .env.example
envpatch diff  --env .env.staging --example .env.staging.example

In CI pipelines

# GitHub Actions — fail the build if .env is out of sync
- run: npx envpatch check

In package.json scripts

{
  "scripts": {
    "env:check": "envpatch check",
    "env:sync": "envpatch sync --dry-run",
    "predev": "envpatch check"
  }
}

Stack

Language TypeScript 5
Runtime Node.js 18+
CLI framework Commander
Output Chalk

Contributing

Pull requests are welcome. For major changes, open an issue first to discuss what you'd like to change.

License

MIT

Support

If envpatch saves you from a broken deploy, consider sponsoring on GitHub.

About

Validate, diff, and sync .env files against .env.example

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors