# What changed in dotenv

> 22 changes in dotenv 17 to 18 from its official release notes, upgrade guides and advisories: 2 breaking, 6 new APIs and options. Each one cited. Sources checked 2026-10-19. HTML: https://unstale.sh/npm/dotenv/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## dotenv 18

### Breaking changes

- Support for .env.vault has been removed. (18.0.0) — [release notes](https://github.com/motdotla/dotenv/blob/7aa712ab2914c0cf128ea8ccdaf5e918a867db59/CHANGELOG.md#1800-2026-09-17)
- Preloading has been removed; use the CLI with dotenv run -- your-command instead. (18.0.0) — [release notes](https://github.com/motdotla/dotenv/blob/7aa712ab2914c0cf128ea8ccdaf5e918a867db59/CHANGELOG.md#1800-2026-09-17)

### New APIs and options

- Pass fast: true to opt in to the approximately 2x faster character-scanner parser. (18.0.0) — [release notes](https://github.com/motdotla/dotenv/blob/7aa712ab2914c0cf128ea8ccdaf5e918a867db59/CHANGELOG.md#1800-2026-09-17)
- Set DOTENV_FAST=true to opt in to the approximately 2x faster character-scanner parser. (18.0.0) — [release notes](https://github.com/motdotla/dotenv/blob/7aa712ab2914c0cf128ea8ccdaf5e918a867db59/CHANGELOG.md#1800-2026-09-17)
- Dotenv now provides a CLI command to run a command with environment variables injected. (18.0.0) — [release notes](https://github.com/motdotla/dotenv/blob/7aa712ab2914c0cf128ea8ccdaf5e918a867db59/CHANGELOG.md#1800-2026-09-17)
- The CLI accepts --fast to opt in to the approximately 2x faster character-scanner parser. (18.0.0) — [release notes](https://github.com/motdotla/dotenv/blob/7aa712ab2914c0cf128ea8ccdaf5e918a867db59/CHANGELOG.md#1800-2026-09-17)

### Performance

- Improves performance when processing large .env files. (18.0.5) — [release notes](https://github.com/motdotla/dotenv/blob/7aa712ab2914c0cf128ea8ccdaf5e918a867db59/CHANGELOG.md#1805-2026-09-30)

### Behavior and default changes

- Undefined settings such as quiet: true are treated as null rather than falsey. (18.0.7) — [release notes](https://github.com/motdotla/dotenv/blob/7aa712ab2914c0cf128ea8ccdaf5e918a867db59/CHANGELOG.md#1807-2026-10-09)
- Importing dotenv/config now defaults quiet to true. (18.0.4) — [release notes](https://github.com/motdotla/dotenv/blob/7aa712ab2914c0cf128ea8ccdaf5e918a867db59/CHANGELOG.md#1804-2026-09-25)
- The injecting message is sent to stderr rather than stdout. (18.0.0) — [release notes](https://github.com/motdotla/dotenv/blob/7aa712ab2914c0cf128ea8ccdaf5e918a867db59/CHANGELOG.md#1800-2026-09-17)

### Tooling

- Type details were improved. (18.0.8) — [release notes](https://github.com/motdotla/dotenv/blob/7aa712ab2914c0cf128ea8ccdaf5e918a867db59/CHANGELOG.md#1808-2026-10-14)

### Fixes and other changes

- The fast parser strips appended extra quotes. (18.0.8) — [release notes](https://github.com/motdotla/dotenv/blob/7aa712ab2914c0cf128ea8ccdaf5e918a867db59/CHANGELOG.md#1808-2026-10-14)
- The CLI honors the DOTENV_QUIET setting in the .env file. (18.0.7) — [release notes](https://github.com/motdotla/dotenv/blob/7aa712ab2914c0cf128ea8ccdaf5e918a867db59/CHANGELOG.md#1807-2026-10-09)
- Uses smarter parseBoolean logic instead of Boolean() to fix override behavior. (18.0.6) — [release notes](https://github.com/motdotla/dotenv/blob/7aa712ab2914c0cf128ea8ccdaf5e918a867db59/CHANGELOG.md#1806-2026-10-06)
- Fixes a missing TypeScript module declaration. (18.0.5) — [release notes](https://github.com/motdotla/dotenv/blob/7aa712ab2914c0cf128ea8ccdaf5e918a867db59/CHANGELOG.md#1805-2026-09-30)
- Patches the DOTENV_QUIET setting when it is inside an .env file. (18.0.3) — [release notes](https://github.com/motdotla/dotenv/blob/7aa712ab2914c0cf128ea8ccdaf5e918a867db59/CHANGELOG.md#1803-2026-09-22)
- Additional edge cases in the fast parser were patched. (18.0.2) — [release notes](https://github.com/motdotla/dotenv/blob/7aa712ab2914c0cf128ea8ccdaf5e918a867db59/CHANGELOG.md#1802-2026-09-21)
- Config logging now handles file URLs. (18.0.1) — [release notes](https://github.com/motdotla/dotenv/blob/7aa712ab2914c0cf128ea8ccdaf5e918a867db59/CHANGELOG.md#1801-2026-09-18)

## dotenv 17

### New APIs and options

- Adds focused dotenv and dotenvx agent skills for discovery via the skills.sh ecosystem. (17.4.0) — [release notes](https://github.com/motdotla/dotenv/blob/7aa712ab2914c0cf128ea8ccdaf5e918a867db59/CHANGELOG.md#1740-2026-04-01)
- DotenvPopulateInput now accepts the NodeJS.ProcessEnv type. (17.2.4) — [release notes](https://github.com/motdotla/dotenv/blob/7aa712ab2914c0cf128ea8ccdaf5e918a867db59/CHANGELOG.md#1724-2026-02-05)

### Behavior and default changes

- Tightens up log output; injection messages now use the format `◇ injecting env (14) from .env`. (17.4.0) — [release notes](https://github.com/motdotla/dotenv/blob/7aa712ab2914c0cf128ea8ccdaf5e918a867db59/CHANGELOG.md#1740-2026-04-01)

### Fixes and other changes

- Changes the text from “injecting” to “injected.” (17.4.1) — [release notes](https://github.com/motdotla/dotenv/blob/7aa712ab2914c0cf128ea8ccdaf5e918a867db59/CHANGELOG.md#1741-2026-04-05)
