a secure dotenv–from the creator of `dotenv`
Last release 16 days ago
10 Aug 2026
Ships on a steady schedule
a new release about every 8 days
Nearly every release is documented
notes for 328 of 338 stable releases
Nothing withdrawn
no release was ever pulled
3 years old
338 releases · first in 2023
Release timeline
338 releases since 2023202420252026
Releases
- 0.43.020 May 2024
Release notes2 sources agree
Open source →Added
- Support
require('@dotenvx/dotenvx').config()forDOTENV_PRIVATE_KEYdecryption (#225)
- Support
- 0.42.020 May 2024
Release notes2 sources agree
Open source →Added
- Added
.env.vault deprecatedwarning when usingDOTENV_KEY. Provide instructions to convert to encrypted.envfiles. (#224)
- Added
- 0.41.020 May 2024
Release notes2 sources agree
Open source →Added
- Added
vault convertcommand to list convert instructions for converting.env.vaultto encrypted .env files (#222)
To convert your .env.vault file to encrypted .env file(s): 1. Run [dotenvx vault decrypt] 2. Run [ls -a .env*] Lastly, convert each .env(.environment) file: 3. Run [dotenvx convert -f .env.production] For example: $ dotenvx convert -f .env $ dotenvx convert -f .env.ci $ dotenvx convert -f .env.production Afterward: Update production with your new DOTENV_PRIVATE_KEY_PRODUCTION located in .env.keys Learn more at [https://dotenvx.com/docs/quickstart#add-encryption]Changed
- Rename
encryptmetoconvert(#222)
- Added
- 0.40.018 May 2024
Release notes2 sources agree
Open source →Added
- Added
dotenvx encryptmecommand to convert an entire.envfile to an encrypted.envfile. (#213)
Changed
- Made
precommitsmart enough to check if a.env*file is encrypted or not. If fully encrypted, then allowprecommitcheck to pass (#211)
Removed
- Do not warn of missing files for conventions (too noisy) (#216)
- Added
- 0.39.014 May 2024
Release notes2 sources agree
Open source →Added
- Add
--conventionflag toget
Removed
- Removed help messages like 'in production' and 'in ci'. Too specific and could lead to confusion.
- Add
- 0.38.09 May 2024
Release notes2 sources agree
Open source →Changed
- ⚠️ DEPRECATION NOTICE: the following commands are being moved. Please, update any code and muscle memory you have related to these:
dotenvx encrypt=>dotenvx vault encryptdotenvx decrypt=>dotenvx vault decryptdotenvx status=>dotenvx vault status
- ⚠️ DEPRECATION NOTICE: the beta
hubcommands are being completely deprecated (they will be fully removed in upcoming 1.0.0 release). We will provide .env.keys tooling at a later time (replacing hub) but in the context of the new--encryptflag functionality below
Added
- Add encryption to your
.envfiles with a single command. Pass the--encryptflag. 🎉
$ dotenvx set HELLO World --encrypt set HELLO with encryption (.env)A
DOTENV_PUBLIC_KEY(encryption key) and aDOTENV_PRIVATE_KEY(decryption key) is generated using the same public-key cryptography as Bitcoin.Further notes:
DOTENV_PUBLIC_KEYlives in the.envfile. You can safely share this with whomever you wish.DOTENV_PRIVATE_KEYlives in your.env.keysfile. Share this only with those you trust to decrypt your secrets.- If using encrypted
.envfiles like this it is safe to commit them to source code. This makes reviewing PRs that contain secrets much easier. - Tell your contributors to contribute a secret using the command
dotenvx set HELLO world --encrypt. - Set your
DOTENV_PRIVATE_KEYon your server to decrypt these values usingdotenvx run -- yourcommand - You can repeat all this per environment by modifying your set command to
dotenvx set HELLO production -f .env.production --encrypt(for example) - In time we will add better tooling for sharing the private keys living in
.env.keys, but until then safely share with team members you trust. - This mechanism should be particularly useful for open source projects that want to permit secrets contributions without handing out the decryption keys. Now anyone can contribute a secret and only you can decrypt it to see what was changed.
- This solution is brand new, but I intend it to be the future for
.envfiles. It has many benefits over.env.vaultfiles. We will be sunsetting the.env.vaultmechanism but its tooling will stay around indotenvxfor at least 1 year to come - underdotenvx vaultparent command. - Be patient as we update our documentation to prioritize this improved encryption format for
.envfiles.
- ⚠️ DEPRECATION NOTICE: the following commands are being moved. Please, update any code and muscle memory you have related to these:
- 0.37.130 Apr 2024
Release notes2 sources agree
Open source →- warn when running
dotenvx statusagainst any untracked (not in .env.vault) files (#196)
- warn when running
- 0.37.028 Apr 2024
- 0.36.127 Apr 2024
- 0.36.027 Apr 2024
- 0.35.119 Apr 2024
- 0.35.019 Apr 2024
Release notes2 sources agree
Open source →Added
- added
setcommand, and optionally pass--env-fileflag(s) tosetusage:dotenvx set HELLO World(#182)
- added
- 0.34.017 Apr 2024
- 0.33.115 Apr 2024
- 0.33.015 Apr 2024
Release notes2 sources agree
Open source →Added
- add .env.vault support for
.env.something.something(useful for Next.js pattern of .env.development.local) (#174)
- add .env.vault support for
- 0.32.09 Apr 2024
- 0.31.18 Apr 2024
- 0.31.08 Apr 2024
- 0.30.28 Apr 2024
Release notes2 sources agree
Open source →Changed
- small fixes for windows users related to
hub openandhub push(#169)
- small fixes for windows users related to
- 0.30.18 Apr 2024
Release notes2 sources agree
Open source → - 0.30.06 Apr 2024
Release notes2 sources agree
Open source →Added
dotenvx get --quietwill display the value no matter what (adds ablank0logger level) (#161)
Changed
- refactor
dotenvx getto userununder the hood
- 0.29.25 Apr 2024
- 0.29.15 Apr 2024
Release notes2 sources agree
Open source →Changed
- patch situation where
DOTENV_KEYis present and--env-fileflag is set. assume to still look for.env.vaultfile as first in line (#157)
- patch situation where
- 0.29.04 Apr 2024
Release notes2 sources agree
Open source →Changed
- respect order for
--env-vault-file,--env-fileand--envflags (for example:dotenvx run --env "HELLO=one" --env-file=.envwill prioritize--envflag. Add--overloadhere to prioritize--env-fileor reverse the order.). you can now mix and match multiple flags in any complex order you wish and dotenvx will respect it. (#155)
- respect order for
- 0.28.03 Apr 2024
Release notes2 sources agree
Open source →Added
- add
dotenvx settingscommand to list your current settings. in the future we'll provide ways to modify these settings as dotenvx's functionality grows (#153)
- add
- 0.27.22 Apr 2024
Release notes2 sources agree
Open source →Added
- add windows postrelease step to check that
dotenvx.exeis functional immediately after release (#141)
Changed
- add windows postrelease step to check that
- 0.27.126 Mar 2024
Release notes2 sources agree
Open source →Added
- provide
.zipdownload option for windows executable (#140)
Removed
- remove
gotfrom top level deps (#139)
- provide
- 0.27.025 Mar 2024
- 0.26.018 Mar 2024
Release notes2 sources agree
Open source →Added
- add
hub pullcommand to pull a repo's.env.keysdown. (#129)
- add
- 0.25.114 Mar 2024
Release notes2 sources agree
Open source →Changed
- 🐞 patch bug with evaluate commands. do not attempt to evaluate risky preset envs in
process.env. evaluate only what's set in a.env*file (#125)
- 🐞 patch bug with evaluate commands. do not attempt to evaluate risky preset envs in
- 0.25.012 Mar 2024
Release notes2 sources agree
Open source →Added
- expand
hub pushwith[directory]option. use for monorepos. for example:dotenvx hub push apps/backend(#121)
- expand
- 0.24.029 Feb 2024
Release notes2 sources agree
Open source →Added
- add command substitution. for example
DATABASE_URL="postgres://$(whoami)@localhost/my_database"(#113)
- add command substitution. for example
- 0.23.028 Feb 2024
Release notes2 sources agree
Open source →Added
- support personal environment variables. anything after the comment
# personal.dotenvx.comwill be considered personal and will not be encrypted to .env.vault (#110)
- support personal environment variables. anything after the comment
- 0.22.028 Feb 2024
Release notes2 sources agree
Open source →Added
require('@dotenvx/dotenvx').config()expands/interpolates variables. this matches the behavior ofrun. (note that this behavior differs from the originalrequire('dotenv').config()(#107)
- 0.21.027 Feb 2024
Release notes2 sources agree
Open source →Added
- expose
genexamplefunction onlib/main.jsfor export convenience (#102)
Changed
- rely on
whichnpm module to find system command path for user inputted command(s) (#105)
Removed
- remove
main.injectfunction (#102)
- expose
- 0.20.225 Feb 2024
Release notes2 sources agree
Open source →Added
- added support for
--envflag on the.env.vaultdecryption portion ofrun(#101)
- added support for
- 0.20.124 Feb 2024
- 0.20.023 Feb 2024
Release notes2 sources agree
Open source →Changed
- added
--envflag. for example,dotenvx --env="HELLO=World" -- yourcommand(#94)
- added
- 0.19.122 Feb 2024
- 0.19.022 Feb 2024
Release notes2 sources agree
Open source →Added
- added
scancommand to scan for possible leaked secrets in your code (#90)
- added
- 0.18.021 Feb 2024
Release notes2 sources agree
Open source →Added
- added
getcommand, optionally pass--env-fileflag(s) toget, optionally pass--overload, and optionally pass--pretty-print. usage:dotenvx get HELLO=>World(#89)
- added
- 0.17.121 Feb 2024
- 0.17.020 Feb 2024
Release notes2 sources agree
Open source →Added
- added
[directory]argument toencrypt. for example, in your nx repo from rootdotenvx encrypt apps/backendwill encrypt .env* files in that directory and manage the.env.keysand.env.vaultin that directory as well (#82)
- added
- 0.16.120 Feb 2024
- 0.16.018 Feb 2024
- 0.15.412 Feb 2024
- 0.15.311 Feb 2024
- 0.15.211 Feb 2024
Release notes2 sources agree
Open source → - 0.15.110 Feb 2024
- 0.15.06 Feb 2024
- 0.14.127 Jan 2024
- 0.14.027 Jan 2024
- 0.13.027 Jan 2024
Release notes2 sources agree
Open source →Added
- Added
decryptcommand. Decrypt.env.vaultto prospective.env*files..env.keysmust be present. (#48)
- Added
- 0.12.027 Jan 2024
Release notes2 sources agree
Open source →Added
- Append to
.gitignorewithgitignorecommand (also.dockerignore,.npmignore, and.vercelignoreif existing) (#47)
- Append to
- 0.11.025 Jan 2024
Release notes2 sources agree
Open source →Removed
- no longer append to
*ignorefiles automatically. too invasive. will provide as separate cli command (#45)
- no longer append to
- 0.10.624 Jan 2024
- 0.10.518 Jan 2024
- 0.10.418 Jan 2024
Release notes2 sources agree
Open source →Added
- Add
predockerbuildcommand to prevent including.envfile in your docker builds (#35)
- Add
- 0.10.317 Jan 2024
- 0.10.215 Jan 2024
Release notes2 sources agree
Open source →Changed
- Improve error message when custom
--env-filepassed (#32)
- Improve error message when custom