A mise env plugin that loads secrets from fnox into your development environment.
Caution
I am not sure this plugin is a good idea. fnox was built as a separate CLI for a reason. I would probably advise avoiding this.
Add the plugin to your project's mise.toml:
[plugins]
fnox-env = "https://github.com/jdx/mise-env-fnox"
[env]
_.fnox-env = { tools = true }| Option | Description | Default |
|---|---|---|
tools |
Use mise-managed tools (required if fnox is installed via mise) | false |
profile |
fnox profile to use | default |
fnox_bin |
Path to fnox binary | fnox |
[plugins]
fnox-env = "https://github.com/jdx/mise-env-fnox"
[env]
# Use default profile
_.fnox-env = { tools = true }[plugins]
fnox-env = "https://github.com/jdx/mise-env-fnox"
[env]
# Use production profile
_.fnox-env = { tools = true, profile = "production" }Combine with mise's environment system for different profiles per environment:
[plugins]
fnox-env = "https://github.com/jdx/mise-env-fnox"
[env]
_.fnox-env = { tools = true, profile = "dev" }
[env.production]
_.fnox-env = { tools = true, profile = "production" }
[env.staging]
_.fnox-env = { tools = true, profile = "staging" }Then activate different environments:
# Development (default)
mise env
# Production
MISE_ENV=production mise env
# Staging
MISE_ENV=staging mise envWhen mise activates your environment, the fnox plugin:
- Searches for
fnox.tomlin the current directory and parent directories - Resolves secrets using your configured providers
- Exports the secrets as environment variables
- Watches
fnox.tomlfor changes to invalidate the cache
This plugin supports mise's environment caching (when MISE_ENV_CACHE=1). Secrets are:
- Cached encrypted on disk for fast subsequent loads
- Automatically refreshed when
fnox.tomlchanges - Scoped to your shell session for security
To enable caching:
export MISE_ENV_CACHE=1MIT