Multiple Provider Support
Works with age, AWS KMS/SM, Azure, GCP, 1Password, Bitwarden, HashiCorp Vault, and more.
Manage secrets with encryption or cloud providers - or both!
# Initialize fnox in your project
fnox init
# Set a secret (stores it encrypted in fnox.toml)
fnox set DATABASE_URL "postgresql://localhost/mydb"
# Get a secret
fnox get DATABASE_URL
# Run commands with secrets loaded as env vars
fnox exec -- npm start
# Enable shell integration (auto-load secrets on cd)
eval "$(fnox activate bash)" # or zsh, fishfnox uses a simple TOML config file (fnox.toml) that you check into git. Secrets are either:
You configure providers (encryption methods or cloud services), then assign each secret to a provider. fnox handles the rest.
# fnox.toml
[providers]
age = { type = "age", recipients = ["age1ql3z7hjy54pw3hyww5ayyfg7zqgvc7w3j2elw8zmrj2kg5sfn9aqmcac8p"] }
[secrets]
DATABASE_URL = { provider = "age", value = "YWdlLWVuY3J5cHRpb24uLi4=" } # ← encrypted ciphertext, safe to commit
API_KEY = { default = "dev-key-12345" } # ← plain default value for local dev