secure-env
An environment variables Manager CLI tool, that encrypts your environment variables. When you need a set of env variables in the current shell call
eval $(secure-env --set <setname>)
to only inject a set of variables
or
eval $(secure-env)
to inject all of them.
The tool then prompts you for your password, with which the env variables have been encrypted, decrypts them into memory and prints export lines for the current shell. The program then closes itself and with it the env secrets in memory. The secrets live in your shell until the shell dies.
Quickstart
Note: Currently Rust (cargo) is needed to install the tool
1. Install the tool
cargo install secure-env
2. Set your environment
Now set your environment variables, that are going to be encrypted into a secure-env.enc file.
# For example a db set and and and app set:
secure-env --setenv db.HOST=localhost db.PORT=5432 app.API_KEY=secret-value
It will then prompt you for a password, that will be used to create an encrypted file with your environment variables in it. Running it again with new values merges them into the existing file.
To discard the existing file and start fresh (e.g. to re-encrypt everything with a new password), pass --force:
secure-env --force --setenv db.HOST=localhost db.PORT=5432
Editing with the interactive UI
To view and edit your variables in an interactive terminal UI, pass --open. You will be asked for your password, after which a simple editor opens showing every set.key = value:
secure-env --open
↑/↓(orj/k) move the selectionaadd a new variable,eedit the selected value,ddelete (with confirm)ssave & quit (re-encrypts the file),qquit without saving
By default the encrypted file is stored at ~/.config/secure-env/secure-env.enc. Use --file <path> to store it somewhere else.
Note: If you lose this password, you are not able to decrypt the set environment variables anymore!