Skip to content

Provider catalog ​

A provider is where fnox gets a secret's value: ciphertext in fnox.toml, a cloud secret store, a password manager, or a store on your machine. Use this page to pick one, then follow its page for authentication and reference formats.

How providers work ​

You declare a provider instance under [providers.<name>]. The table name is yours to choose; type selects the implementation. Each secret names the instance it reads from:

toml
[providers.op]          # instance name "op"
type = "1password"      # provider type
vault = "Engineering"

[providers.age]
type = "age"
recipients = ["age1..."]

[secrets]
DATABASE_URL = { provider = "op", value = "Database/url" }      # a reference into 1Password
LOCAL_TOKEN = { provider = "age", value = "YWdl..." }           # ciphertext, abbreviated
  • Mix freely. One project can use any number of instances, including several of the same type (for example one per vault or region).
  • Default provider. A secret without provider uses default_provider. When exactly one provider is configured, fnox uses it automatically.
  • What value means depends on the type. Encryption providers store ciphertext; remote and local storage providers store a reference (a name, path or ID) and keep the value in their own store; the plain provider stores the value unencrypted in fnox.toml.
  • Swap per environment. Redefine an instance in a profile to point the same secret names at a different vault or account.

Add an instance with fnox provider add <name> <type> or by editing fnox.toml, then check it with fnox provider test <name>.

Choose by need ​

You want to…Use
Start without any account or serviceage (quick start)
Commit encrypted secrets and share them by keyage, or a cloud KMS (AWS, Azure, GCP) to control decryption with IAM
Require a hardware key to decryptFIDO2, YubiKey, or an age plugin
Read what your team already keeps in a vault1Password, Bitwarden, HashiCorp Vault, or your cloud's secret manager (existing vault guide)
Write secrets to a cloud store with fnox setAWS Secrets Manager, AWS Parameter Store, Azure Key Vault Secrets, Google Cloud Secret Manager
Keep a personal or bootstrap credential locallyOS keychain
Read vault secrets offline or fasterAny provider plus a local sync cache or the daemon
Get short-lived cloud credentialsCredential leases, configured separately from providers
Integrate a system with no built-in providerA Lua plugin

"Writes" in the tables below means fnox set KEY stores the value through the provider. For a read-only provider, fnox set KEY VALUE --provider <name> records VALUE as the reference instead; create the item in the provider's own app or CLI. fnox import currently accepts encryption providers only.

Encryption in config ​

fnox set encrypts the value and stores the ciphertext in fnox.toml. The config and public recipients can be committed; private keys and cloud credentials stay outside the repository.

ProviderConfig typeWrites (fnox set)Requires
ageageYesAn age or SSH identity, or an age plugin, to decrypt
FIDO2fido2YesThe enrolled security key with hmac-secret support
YubiKeyyubikeyYesThe enrolled YubiKey with HMAC-SHA1 challenge-response
AWS KMSaws-kmsYesAWS credentials with encrypt/decrypt access to the key
Azure Key Vault Keysazure-kmsYesAzure credentials with access to the key
Google Cloud KMSgcp-kmsYesGoogle Cloud credentials with access to the key

Cloud and hosted stores ​

fnox.toml holds a reference; the value lives in the service, and the service's access policy decides who can read it.

ProviderConfig typeWrites (fnox set)Requires
AWS Parameter Storeaws-psYesAWS credentials
AWS Secrets Manageraws-smYesAWS credentials
Azure App Configurationazure-acNo (read-only)Azure credentials
Azure Key Vault Secretsazure-smYesAzure credentials
Google Cloud Secret Managergcp-smYesGoogle Cloud credentials
Kubernetes SecretskubernetesNo (read-only)Kubeconfig or in-cluster credentials with get on the Secrets
Bitwarden Secrets Managerbitwarden-smYesbws CLI and a machine-account access token
DopplerdopplerNo (read-only)doppler CLI, logged in or with a service token
FOKSfoksYesfoks CLI with a running agent
HashiCorp VaultvaultYesvault CLI, a server address and a token
Keeper Secrets Managerkeeper-smNo (read-only)A Keeper Secrets Manager client configuration

Password managers and services ​

These read from a vault people already use. All of them are read-only in fnox: create and edit items in the password manager, then reference them.

ProviderConfig typeWrites (fnox set)Requires
1Password1passwordNo (read-only)op CLI, signed in or with a service account token
BitwardenbitwardenNo (read-only)bw CLI and an unlocked session, or rbw
EnpassenpassNo (read-only)The local vault files and the master password
InfisicalinfisicalNo (read-only)infisical CLI and a token or machine identity
PasswordstatepasswordstateNo (read-only)Network access to the server and a list API key
Proton Passproton-passNo (read-only)pass-cli, logged in

Local stores and defaults ​

These use a store on your machine, or no storage beyond fnox.toml itself.

ProviderConfig typeWrites (fnox set)Requires
OS keychainkeychainYesmacOS Keychain, Windows Credential Manager, or Linux Secret Service
KeePasskeepassYesA .kdbx file and its password (and key file, if used)
password-storepassword-storeYespass CLI and a GPG key
gopassgopassYesgopass CLI and an initialized store
Plaintext defaultsplainYes, as plaintext in config; No with fileNothing. Only for values that are not secret

Custom providers ​

ProviderConfig typeWrites (fnox set)Requires
Lua pluginsluaYes if the plugin defines encrypt or put; otherwise NoA plugin file, directory or installed plugin

A Lua plugin can read, store or encrypt values with HTTP, JSON and command helpers, and can be shared as a git repository.

See also ​

MIT LicenseCopyright © 2026jdx.dev