Skip to content

Version 0.1.2 · Updated 2026-11-11

Configuration ​

VariablePurpose
ENVKIT_SERVER, ENVKIT_EMAILDefaults for login
ENVKIT_PASSWORDMaster password, for unlocking without a prompt (CI); never passed to the commands envkit runs
BW_CLIENTID, BW_CLIENTSECRETPersonal API key, for login --apikey and CI
ENVKIT_SESSIONA session key to use instead of the keychain
ENVKIT_SYNC_INTERVAL_MINUTESHow stale the local copy may get before a read syncs (default 5, 0 = always)
ENVKIT_SESSION_IDLE_MINUTESIdle time before the vault locks again (default 60)
ENVKIT_HOMEWhere envkit keeps its state (default: your OS config dir)
ENVKIT_ALLOW_VARIABLESComma-separated variables to pass even though they can make programs run code (see below)
ENVKIT_BACKENDnative (default) or bw
NODE_EXTRA_CA_CERTSCA certificate for a server with a private CA

Variables envkit leaves out ​

envkit run and envkit pull don't pass on variables that make programs load or run code: PATH, NODE_OPTIONS, LD_*, DYLD_*, BASH_ENV, PYTHONPATH, JAVA_TOOL_OPTIONS, GIT_SSH_COMMAND and similar. They print a warning for each one instead. Otherwise anyone who can edit an environment could run code on every machine and CI job that uses it.

If you trust everyone with edit access, allow a variable with --allow NODE_OPTIONS or ENVKIT_ALLOW_VARIABLES=NODE_OPTIONS. This can't be set in .envkit.json, because anyone who can push could change that file. envkit get NODE_OPTIONS still prints the value.

Released under the MIT License.