Skip to content

Environment variables ​

fnox reads these variables at startup. A command-line flag beats the matching variable, and most variables beat the corresponding setting in fnox.toml. Provider credentials and lease inputs follow their own rules, documented on each provider and lease page.

Selection and behavior ​

VariableValuesDefaultEffect
FNOX_PROFILEprofile names, comma-separateddefaultActive profiles; later ones override earlier ones. -P overrides it.
FNOX_NO_DEFAULTStrue or 1falseA named profile leaves out top-level [secrets]. Same as --no-defaults.
FNOX_IF_MISSINGerror, warn, ignoreunsetMissing-secret behavior for every secret, overriding the config. --if-missing overrides it.
FNOX_IF_MISSING_DEFAULTerror, warn, ignorewarnMissing-secret behavior for secrets whose config sets none.
FNOX_NON_INTERACTIVEtrue or 1unsetNever prompt or open a browser. Same as --non-interactive.
FNOX_PROMPT_AUTHtrue, 1, yes; anything else is falsetrueOffer to run a provider's auth_command when authentication fails in a terminal. Overrides prompt_auth in the config.
FNOX_EXEC_REDACTtrue, 1, yes, on; anything else is falseunsetRedact secret values from piped fnox exec output. Overrides redact_exec in the config; --redact / --no-redact override it.
FNOX_DAEMONon, true, yes, 1 / off, false, no, 0unsetUse the per-user daemon, or bypass it, regardless of [daemon] enabled. Other values are ignored.
FNOX_AUDITon, true, yes, 1 / off, false, no, 0unsetWrite or skip the audit log, regardless of [audit] enabled. Other values are ignored.
FNOX_AUDIT_PATHabsolute pathunsetAudit log file, overriding [audit] path and the default audit.log in the state directory.
FNOX_HTTP_TIMEOUTduration such as 30s or 2m; 0 for none30sTimeout for HTTP requests fnox makes itself: lease backends, Lua plugins, and Azure App Configuration. An invalid value means 30s.
FNOX_SHELL_OUTPUTnone, normal, debugnormalWhat shell integration prints. off, false, and 0 also mean none; verbose also means debug.

For the full order in which --if-missing, these variables, and the config combine, see if_missing. For the settings that have a flag, see runtime settings.

age keys ​

VariableEffect
FNOX_AGE_KEYage identity contents. Takes precedence over every other identity source, including the provider's identity and key_file.
FNOX_AGE_KEY_FILEPath to an age identity or SSH private key. Used only when FNOX_AGE_KEY is unset and the provider sets neither identity nor key_file.

Without either, fnox reads age.txt in FNOX_CONFIG_DIR. fnox exec removes both variables from the command's environment. See age identity selection.

Directories ​

These variables take an absolute path; fnox ignores relative or empty values. The defaults follow the XDG base directory variables when set.

FNOX_CONFIG_DIR ​

Directory for the global config.toml and the default age.txt identity. Default: $XDG_CONFIG_HOME/fnox, else ~/.config/fnox on Unix and %USERPROFILE%\AppData\Local\fnox on Windows.

FNOX_STATE_DIR ​

Directory for the per-project lease ledgers, under leases/. Default: $XDG_STATE_HOME/fnox, else ~/.local/state/fnox on Unix and %USERPROFILE%\AppData\Local\fnox on Windows.

FNOX_DATA_DIR ​

Data directory. Default: $XDG_DATA_HOME/fnox, else ~/.local/share/fnox on Unix and %USERPROFILE%\AppData\Local\fnox on Windows.

FNOX_PLUGINS_DIR ​

Directory for installed Lua plugins, one subdirectory per plugin. Default: $FNOX_DATA_DIR/plugins.

Editor and logging ​

VariableEffect
EDITOREditor for fnox edit. Default: vi, or notepad on Windows.
VISUALUsed by fnox edit when EDITOR is unset.
RUST_LOGLog filter for stderr, such as fnox=debug. Takes precedence over the default set by --verbose.

Provider and lease credentials ​

Most providers read credentials from the environment, usually under both their own name and a FNOX_-prefixed name. Provider config can override them. Each page gives the precedence.

ProviderVariablesDetails
AWSAWS_PROFILE, AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN, AWS_REGIONAWS credentials
AzureAZURE_CLIENT_ID, AZURE_CLIENT_SECRET, AZURE_TENANT_ID, AZURE_AUTHORITY_HOSTAzure authentication
Google CloudGOOGLE_APPLICATION_CREDENTIALSGoogle Cloud authentication
KubernetesFNOX_K8S_CONTEXT, KUBECONFIGKubernetes
1PasswordFNOX_OP_SERVICE_ACCOUNT_TOKEN, OP_SERVICE_ACCOUNT_TOKEN1Password
BitwardenFNOX_BW_SESSION, BW_SESSIONBitwarden
Bitwarden Secrets ManagerFNOX_BWS_ACCESS_TOKEN, BWS_ACCESS_TOKEN, BWS_PROJECT_IDBitwarden SM
DopplerFNOX_DOPPLER_TOKEN, DOPPLER_TOKENDoppler
EnpassFNOX_ENPASS_PASSWORD, ENPASS_PASSWORDEnpass
FOKSFOKS_BOT_TOKEN, FOKS_HOST, FOKS_HOME, and FNOX_ equivalentsFOKS
InfisicalINFISICAL_TOKEN, INFISICAL_CLIENT_ID, INFISICAL_CLIENT_SECRET, and FNOX_ equivalentsInfisical
KeePassFNOX_KEEPASS_PASSWORD, KEEPASS_PASSWORDKeePass
Keeper Secrets ManagerFNOX_KEEPER_CONFIG, KSM_CONFIG, FNOX_KEEPER_TOKEN, KSM_TOKENKeeper SM
PasswordstateFNOX_PASSWORDSTATE_API_KEY, PASSWORDSTATE_API_KEYPasswordstate
password-storePASSWORD_STORE_DIR, PASSWORD_STORE_GPG_OPTS, and FNOX_ equivalentspassword-store
Proton PassPROTON_PASS_PERSONAL_ACCESS_TOKEN, PROTON_PASS_AGENT_REASON, and FNOX_ equivalentsProton Pass
VaultVAULT_ADDR, VAULT_TOKEN, VAULT_NAMESPACE, and FNOX_ equivalentsVault

Lease backends read the same cloud credentials, plus backend-specific inputs such as FNOX_GITHUB_APP_PRIVATE_KEY for github-app. See credential leases.

Set by fnox ​

fnox sets these variables for other processes. Do not set them yourself.

VariableSet for
FNOX_SHELL, __FNOX_SESSIONThe shell, by fnox activate. They record the active shell and the secrets the hook loaded.
FNOX_LEASE_DURATION, FNOX_LEASE_LABELA command lease's create_command.
FNOX_LEASE_IDA command lease's revoke_command.

See also ​

MIT LicenseCopyright © 2026jdx.dev