What Flox is
Flox is a package and environment manager built on Nix. You declare the tools, variables and services a project needs in one manifest, Flox locks every input to an exact version, and the same environment then runs on a laptop, in CI, in an agent sandbox and in production (https://flox.dev/docs/, https://flox.dev/).
That is the short version. The rest of this page is the longer version you can give in a meeting, using Flox’s own words where possible.
This page is drawn from https://flox.dev/docs/, https://flox.dev/docs/concepts/environments, https://flox.dev/docs/concepts/flox-vs-containers, https://flox.dev/docs/concepts/floxhub, https://flox.dev/docs/concepts/services, https://flox.dev/docs/concepts/builds, https://flox.dev/, https://flox.dev/about/, https://flox.dev/pricing/ and https://github.com/flox/flox (README fetched 2026-11-04 from https://raw.githubusercontent.com/flox/flox/main/README.md), plus the Flox blog posts cited inline.
The 30-second version
The docs open with: “Flox is a next-generation, language-agnostic package and environment manager.” (https://flox.dev/docs/). In practice:
- One manifest. “Define everything your environment needs” (packages, tools, environment variables and services) in one manifest, and keep it in version control (https://flox.dev/docs/).
- Not a container. Flox “achieves isolation through pre-configured sub-shells, not containers”, so it works with your existing shells and dotfiles (https://flox.dev/docs/).
- Nix underneath. “Under the hood, Flox uses Nix to ensure reproducibility” without requiring you to learn Nix (https://flox.dev/docs/).
- Same everywhere. The docs say the same environment works across macOS and Linux, on x86 and Arm, and from local work through CI to production (https://flox.dev/docs/).
- A platform, not just a CLI. The README calls Flox “a software environment platform for engineering teams” (https://raw.githubusercontent.com/flox/flox/main/README.md).
The home page headline is “One environment. Every developer. Every agent.” (https://flox.dev/).
The two-minute version
The problem: drift
The home page shows the same setup note resolving to different versions on a laptop, in CI and on an agent, and sums it up as “Nothing matches.” (https://flox.dev/). The company’s own origin story is about the cost of this. In a 2024 post, Flox’s Graham Hudgins describes a team that sometimes had to “nuke it from orbit”, meaning delete a project and clone it again, and says most engineers underestimate the time lost until you ask how the last new hire was onboarded (https://flox.dev/blog/why-we-built-flox/).
Say: “Drift is the same instructions producing different software on different machines. Flox makes the machine stop mattering.”
The fix: one manifest, one lock
Every environment lives in a .flox directory made by flox init. It holds a manifest.toml (the declarative spec) and a manifest.lock, which the docs call “a snapshot of the specific package versions and their dependencies that were built and activated at a particular point in time” (https://flox.dev/docs/concepts/environments). The lock lists exact /nix/store paths per package and system (https://flox.dev/docs/concepts/environments). On the home page: “One manifest resolves to one lock, and every target below runs that exact software.” (https://flox.dev/).
flowchart LR M[manifest.toml<br/>what you want] -->|resolve| L[manifest.lock<br/>exact versions] L --> A[Laptop] L --> C[CI] L --> G[Agent sandbox] L --> P[Production] H[FloxHub<br/>share and version] -.-> M
The lifecycle
The home page walks one environment through the whole software lifecycle (https://flox.dev/):
| Stage | Command | What it does | Source |
|---|---|---|---|
| Declare and activate | flox activate | Enters the environment; tools appear when you activate and “disappear when you leave” | https://raw.githubusercontent.com/flox/flox/main/README.md |
| Start services | flox services start | Runs databases, queues and background processes as part of the environment | https://raw.githubusercontent.com/flox/flox/main/README.md |
| Build | flox build | Builds your own software inside the environment | https://flox.dev/docs/concepts/builds |
| Publish | flox publish | Uploads a built package to your private catalog | https://flox.dev/docs/concepts/publishing |
| Ship | flox containerize | Exports the environment as an OCI image, no Dockerfile required | https://raw.githubusercontent.com/flox/flox/main/README.md |
| Ship, imageless | Imageless Kubernetes | A pod references the environment directly instead of an image | https://flox.dev/, https://flox.dev/docs/imageless-kubernetes/intro |
Services are defined in the manifest: the docs call long-running programs such as a database or a dev server “services” (https://flox.dev/docs/concepts/services).
Sharing: FloxHub
“FloxHub is a cloud service that enables you to share your Flox environments.” (https://flox.dev/docs/concepts/floxhub). flox push sends an environment to FloxHub, creating generation 1, and flox pull connects a project to it (https://flox.dev/docs/concepts/environments, https://flox.dev/docs/concepts/generations). Later changes make new generations automatically (https://flox.dev/docs/concepts/generations). Say: “It works like git for environments.”
Composition
Environments can be reused as building blocks: “with Flox you can create developer environments from reusable building blocks” (https://flox.dev/docs/concepts/composition). An included environment’s manifest is merged into the composing one, and the merged result is locked (https://flox.dev/docs/concepts/composition).
Who it is for
The README lists four audiences (https://raw.githubusercontent.com/flox/flox/main/README.md):
| Audience | Pitch in Flox’s words | Source |
|---|---|---|
| Platform and DevX teams | Standardize toolchains across the org without “forcing everyone to learn Nix” | README |
| Security and AppSec teams | SBOMs, fast CVE remediation, dependency provenance, reproducible builds | README |
| Developers | One reproducible, per-project environment for any stack; “More like a virtual environment than a container or VM” | README |
| AI coding agents | A deterministic, reproducible environment to build and run generated code | README |
The home page says it is “Trusted by Fortune 20 firms, Tier 1 banks, and leading AI companies” (https://flox.dev/). Named customer stories are on The company and the Nix world.
Key facts
| Fact | Value | Source |
|---|---|---|
| Latest CLI release seen | v1.19.3, published 2026-10-28 | https://api.github.com/repos/flox/flox/releases/latest |
| CLI licence | GPL-2.0 | https://api.github.com/repos/flox/flox |
| Catalog size claimed | “215k+ prebuilt packages in the catalog” on the home page; “120,000+ packages” in the README | https://flox.dev/, https://raw.githubusercontent.com/flox/flox/main/README.md |
| Plans | Personal free; Team $20/seat/month; Enterprise custom pricing | https://flox.dev/pricing/ |
| Install | curl -fsSL https://get.flox.dev | sh, or apt, yum, brew, standalone installers | https://flox.dev/docs/ |
| Login rule | From 2026-10-20, installing, upgrading or resolving packages from the Catalog needs a free FloxHub account; activating an environment with a valid lockfile does not | https://flox.dev/blog/flox-catalog-login-requirement-what-you-need-to-know/ |
The two catalog counts differ, and the sources do not say why (they may count differently) [verify]. Quote the number with its source rather than picking one.
Vocabulary you need
- Environment. “a shell that provides a collection of environment variables, software packages, and activation scripts that are run when entering the shell” (https://flox.dev/docs/concepts/environments).
- manifest.toml / manifest.lock. The declarative spec and its lock (https://flox.dev/docs/concepts/environments).
- pkg-path. The unique location of a package in the Flox Catalog (https://flox.dev/docs/concepts/packages-and-catalog).
- Flox Catalog. The Base Catalog, which uses nixpkgs as an input, plus custom catalogs that users and organizations publish to (https://flox.dev/docs/concepts/packages-and-catalog).
- Package group. Packages in one group resolve against the same nixpkgs commit (https://flox.dev/docs/concepts/package-groups).
- Generation. A version number of an environment on FloxHub (https://flox.dev/docs/concepts/generations).
- Path environment vs centrally managed environment. One stored in a local directory, one stored on FloxHub (https://flox.dev/docs/concepts/environments).
- Organization. A shared FloxHub workspace with a private catalog and scoped access control, a Flox for Teams feature (https://flox.dev/docs/concepts/organizations).
What Flox is not
- Not a container technology. The README says “Flox is not a container technology, and it is not a Docker replacement.” (https://raw.githubusercontent.com/flox/flox/main/README.md). The docs frame it as separating packaging from isolation: “Flox believes that software packaging should be distinct from the chosen type of isolation.” (https://flox.dev/docs/concepts/flox-vs-containers). It also exports containers, so the two combine.
- Not a replacement for Nix. The README says Flox “is additive to Nix, not a replacement” (https://raw.githubusercontent.com/flox/flox/main/README.md). See Nix 101 for Flox people.
- Not only a package manager. The README: “Flox does manage packages, so in part yes, but it’s more than a package manager.” (https://raw.githubusercontent.com/flox/flox/main/README.md).
- Not clearly Windows-native. The README lists Windows “via WSL2” (https://raw.githubusercontent.com/flox/flox/main/README.md), while the install docs say “Support for WSL 2 is experimental.” (https://flox.dev/docs/install-flox/install). Treat Windows claims with care [verify].
When to be careful
Advice, with the facts underneath:
- Do not promise “zero Nix”. Nix expression builds and flake installs are for people willing to write Nix (https://flox.dev/docs/concepts/builds, https://flox.dev/blog/extending-flox-with-nix-flakes/).
- Do not promise offline installs. After 2026-10-20 resolving packages needs a FloxHub login, and an offline sandbox still needs the packages available locally (https://flox.dev/blog/flox-catalog-login-requirement-what-you-need-to-know/).
- Commit the lockfile. CI can activate without credentials only when
manifest.lockis committed and valid (https://flox.dev/blog/flox-catalog-login-requirement-what-you-need-to-know/).
Where to go next
- How Nix fits underneath: Nix 101 for Flox people
- The company and community: The company and the Nix world