github jdx/fnox v1.27.1
v1.27.1: dotenv exports and a Windows build fix

latest release: v1.27.0
4 hours ago

A small patch release that makes fnox export actually produce dotenv files, adds a separate shell format for sourceable output, and unbreaks the Windows build introduced by the v1.27.0 daemon.

Fixed

fnox export --format env now emits real dotenv (#554) -- @jdx

The env format was documented as .env/KEY=value but was actually emitting shell export KEY='value' lines, which broke consumers that expect bare assignments. It now produces proper dotenv output:

$ fnox export --format env
NORMAL_SECRET=normal-value
SPECIAL_SECRET="secret$value`tick`"
QUOTED_SECRET="quoted \"value\" with \\ backslash"

Simple values are left unquoted; values containing whitespace or special characters are double-quoted with \n, \r, \t, ", and \ escaped. $ and backticks are deliberately left literal so the file round-trips through dotenv parsers.

fnox import was updated to match: double-quoted .env values now have \n, \t, \", and \\ unescaped on the way in, so an export/import round-trip preserves multi-line and quoted secrets.

Windows builds fixed (#555) -- @jdx

The v1.27.0 daemon imported std::os::fd::AsRawFd and tokio::net::Unix{Listener,Stream} at module scope, which broke cargo check on Windows even though the daemon runtime is Unix-only. Those imports and the connection handler are now gated behind #[cfg(unix)], and a cargo check job on windows-latest was added to CI so this can't regress silently.

Added

fnox export --format shell (#554) -- @jdx

A new shell format emits sourceable POSIX export KEY=value statements with proper shell quoting -- this is the behavior the old env format had, now under its correct name:

fnox export --format shell > secrets.sh
source secrets.sh

Documentation

  • Added Doppler to the cloud secret manager list in the README (#552) -- @bowenc

Breaking Changes

fnox export --format env output changed from export KEY='value' to KEY=value. If you were sourcing that output in a shell, switch to fnox export --format shell to get the old behavior.

New Contributors

Full Changelog: v1.27.0...v1.27.1

💚 Sponsor fnox

fnox is maintained by @jdx under en.dev — a small independent studio building developer tooling like mise, aube, hk, and more. Keeping fnox secure, maintained, and free is funded by sponsors.

If fnox is handling secrets or config for you or your team, please consider sponsoring at en.dev. Sponsorships are what let fnox stay independent and the project keep moving.

Don't miss a new fnox release

NewReleases is sending notifications on new releases.