dotenv-linter-cli
v1.0.0
Published
Lint .env files for common issues: duplicate keys, empty values, spaces around =, invalid key names, and more
Maintainers
Readme
dotenv-linter-cli
Lint
.envfiles for common mistakes — zero dependencies, pure Node.js.
Install
npm install -g dotenv-linter-cliOr run without installing:
npx dotenv-linter-cliUsage
dotenv-lint [options] [file...]By default lints .env in the current directory.
dotenv-lint # lint .env
dotenv-lint .env.production # lint a specific file
dotenv-lint .env .env.local # lint multiple files
dotenv-lint --fix .env # auto-fix fixable issues
dotenv-lint --strict .env # enforce uppercase keys + quote consistency
dotenv-lint --json .env # JSON output (for CI / tooling)Rules
| Rule | Severity | Description |
|------|----------|-------------|
| DUPLICATE_KEY | ERROR | Same key defined more than once |
| SPACES_AROUND_EQ | ERROR | KEY = value instead of KEY=value |
| MISSING_EQ | ERROR | Line has a key-like word but no = sign |
| EMPTY_VALUE | WARNING | KEY= with nothing after the equals sign |
| INVALID_CASE | WARNING | Key contains lowercase letters |
| MIXED_QUOTES | WARNING | Inconsistent quote style across values (--strict only) |
Example output
Linting: .env (12 lines)
Line 3 ERROR DUPLICATE_KEY KEY "DATABASE_URL" defined twice (first at line 1)
Line 7 WARNING EMPTY_VALUE KEY "SECRET_KEY" has empty value
Line 9 WARNING INVALID_CASE KEY "api_key" should be uppercase: API_KEY
Line 11 ERROR SPACES_AROUND_EQ Use KEY=value, not KEY = value
4 issues (2 errors, 2 warnings)Flags
| Flag | Description |
|------|-------------|
| --fix | Auto-fix: remove spaces around =, deduplicate keys (keeps last definition) |
| --strict | Also enforce UPPERCASE keys and consistent quote style |
| --json | Output a JSON array of { file, line, key, rule, severity, message } |
| --help / -h | Show help |
| --version / -v | Show version |
Exit codes
| Code | Meaning |
|------|---------|
| 0 | No issues |
| 1 | Warnings only |
| 2 | At least one error |
CI integration
# GitHub Actions example
- name: Lint .env files
run: npx dotenv-linter-cli --json .env | tee lint-results.jsonLicense
MIT
