keys.cm is a repository that stores encrypted blobs of environment variables.
You can store variable sets for your software in the repository, and fetch-decrypt-load them at runtime. This prevents your sensitive environment variables like API access keys from ever having to sit in plain text files on your systems and developer machines.
It's convenient and helpful to developers, and it adds a level of security without getting in the way.
Just prefix any shell command with keys, pick an environment to load, and you're off!
Install the package with npm. This will provide a new command in your shell called keys. Then run it to perform a quick setup.
Just prefix any command you want to run with keys. Environment variables will be downloaded, decrypted, and your command will be executed, now having access to them.
# Manage and load your runtime environments
user@darkstar:~ $ keys ./anything.sh -a 1 -b 2
keys 2.5.0 (latest)
[...Authentication via userpass/2FA/tokens/keychain...]
Load #: 1
Executing ./anything.sh -a 1 -b 2 # now has AWS_SECRET_ACCESS_KEY (and other vars) loaded
Specifies the environment to load, skipping the prompt which asks for it.
Enable verbose mode, printing debugging messages about what is going on.
By default, keys will append environment variables to your current shell environment before running your command. This flag will run your command with only the variables from the selected environment.
Pipe lines of variables key=value into stdin to import variables to an environment specified by -e. This will overwrite the environment.
Specifies that the KEYS_TOKEN variable in the local environment should be read for an access token for a specific environment. This will bypass normal username/password authentication.
Reset credentials and settings from ~/.keys/settings.json
Libaries for pulling accessing environments from your repository are coming soon for various languages.
See the API Reference documentation.
Frequently Asked Questions
Ask some questions frequently enough, and we'll add them here.
Some technical details about browser requests may be sent to backend services to assist with debugging and software improvement.
We do not share information for marketing purposes.
We do not have access to the variables in your environments.