Flox is a software environment platform built on Nix that gives you one manifest per project and reproduces it everywhere: a developer’s laptop, CI, and production. It wraps Nix’s package set in a declarative command-line workflow, so a team gets cryptographically pinned, reproducible toolchains without learning the Nix language first.
Each project gets a .flox/ directory holding a manifest that names the packages, environment variables and services it needs. Anyone who enters that environment gets the same versions, whatever their machine or distro already has installed. Environments layer, so a project can build on a shared team baseline and override only where it differs, and they can be pushed to FloxHub to be pulled elsewhere or built into a container image.
flox deactivate to leave.The problem it targets is environment drift: the toolchain that worked on one laptop, the CI runner and the production box is three slightly different sets of packages. Because the manifest pins inputs by hash, the same definition resolves to the same store paths, which also gives a supply chain story – you can see exactly which Nix store paths and licences an environment contains. Nix knowledge is optional: the CLI speaks in packages and environments, and the manifest is TOML rather than a Nix expression.
Flox ships as a CLI for Linux (x86_64 and aarch64) and macOS (Apple silicon and Intel), installed from its own apt, rpm or Homebrew repository; an official flox/flox container image is published for CI. Installing the binary is open, but search and install resolve packages through FloxHub, so a FloxHub account and flox auth login are required before the first package can be added.