mise-env-fnox

March 9, 2026 ยท View on GitHub

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.

Installation

Add the plugin to your project's mise.toml:

[plugins]
fnox-env = "https://github.com/jdx/mise-env-fnox"

[env]
_.fnox-env = { tools = true }

Configuration Options

OptionDescriptionDefault
toolsUse mise-managed tools (required if fnox is installed via mise)false
profilefnox profile to usedefault
fnox_binPath to fnox binaryfnox

Examples

[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" }

Environment-Specific Configuration

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 env

How It Works

When mise activates your environment, the fnox plugin:

  1. Searches for fnox.toml in the current directory and parent directories
  2. Resolves secrets using your configured providers
  3. Exports the secrets as environment variables
  4. Watches fnox.toml for changes to invalidate the cache

Caching

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.toml changes
  • Scoped to your shell session for security

To enable caching:

export MISE_ENV_CACHE=1

License

MIT