npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

envpatch

v0.1.3

Published

CLI tool to validate, diff, and sync .env files against .env.example

Downloads

53

Readme

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.