haseebmirza/laravel-env-diff

Show missing, extra, and empty .env keys compared to .env.example

Maintainers

Package info

github.com/haseebmirza/laravel-env-diff

pkg:composer/haseebmirza/laravel-env-diff

Transparency log

Statistics

Installs: 0

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.0.0 2026-08-06 12:53 UTC

This package is auto-updated.

Last update: 2026-08-06 13:02:55 UTC


README

Latest Version on Packagist Total Downloads License

Stop guessing which env vars you're missing after git pull.

A zero-config Artisan command that compares your .env file against .env.example and instantly tells you what's missing, what's extra, and what's empty. One command. No setup. Works with Laravel 10, 11, 12, and 13.

php artisan env:diff
 WARN  2 missing keys (in .env.example but not in .env)

 +--------------+
 | Key          |
 +--------------+
 | REDIS_HOST   |
 | MAIL_FROM    |
 +--------------+

 INFO  1 extra key (in .env but not in .env.example)

 +--------------+
 | Key          |
 +--------------+
 | DEBUGBAR_ON  |
 +--------------+

 WARN  1 empty key (defined but no value)

 +--------------+
 | Key          |
 +--------------+
 | APP_KEY      |
 +--------------+

Why?

Every Laravel developer has been here:

  • You pull the latest changes
  • The app crashes with a cryptic error
  • 20 minutes later you realize someone added STRIPE_SECRET to .env.example and you never copied it over

This package catches that in 2 seconds.

It's the git diff for your environment file — simple, fast, and something every Laravel project should have.

Installation

composer require haseebmirza/laravel-env-diff --dev

That's it. The service provider is auto-discovered. No config files to publish, no migrations, no setup.

Usage

php artisan env:diff

What it detects

Check Description
Missing keys Keys in .env.example that are not in your .env — the ones that break your app
Extra keys Keys in .env that aren't in .env.example — might be stale or project-specific
Empty keys Keys that exist but have no value — easy to miss during setup

Custom file paths

Compare any two env files:

php artisan env:diff --example=.env.production --env=.env.staging

CI / CD Integration

The command returns exit code 1 when missing keys are detected, so you can use it as a CI gate:

GitHub Actions:

- name: Check env vars
  run: php artisan env:diff

GitLab CI:

check-env:
  script:
    - php artisan env:diff

Never deploy with missing environment variables again.

Requirements

  • PHP 8.1+
  • Laravel 10, 11, 12, or 13

Testing

composer test

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

The MIT License (MIT). Please see License File for more information.

Keywords: laravel env diff, laravel environment variables, dotenv compare, env.example sync, missing env keys, laravel artisan command, environment configuration, laravel devtools, env file checker, laravel env validator, dotenv diff, laravel env sync, env audit, environment file compare