Quiz and flashcards
53 questions. Answer out loud first, then reveal. Every answer links to the Flox page it comes from.
Quiz
Reveal answer
A path environment lives in a local .flox directory and is created with flox init. A centrally managed environment lives on FloxHub and is created by running flox push on a path environment.
Reveal answer
Its metadata, the declarative manifest (manifest.toml) and the manifest lock file (manifest.lock). For path environments all of them can go in version control.
Reveal answer
It is a "snapshot of the specific package versions and their dependencies" built and activated at a point in time. Flox manages it for you.
Reveal answer
install, pkg-groups, vars, hook, profile, services, include, build, options, plugins (experimental) and containerize, plus top-level schema-version, minimum-cli-version and description.
Source: flox.dev/docs/man/manifest.toml
Reveal answer
Run flox pull --copy instead of flox pull. That disconnects the environment from FloxHub.
Reveal answer
A version number of an environment on FloxHub. The first generation is created by flox push, and commands that modify the environment, such as flox install or flox edit, create new ones automatically.
Reveal answer
Run flox generations rollback to undo the last change, or flox generations list and then flox generations switch with a generation number to revert further. Rolling back adds a history entry rather than creating a new generation.
Reveal answer
A cloud service for sharing Flox environments, reached at hub.flox.dev. Your GitHub username is used automatically as your FloxHub account name.
Source: flox.dev/docs/concepts/floxhub
Reveal answer
Create an Organization and push environments there instead of to a personal account. Organization roles are Owner, Writer and Reader.
Reveal answer
The Base Catalog is populated by Flox from nixpkgs. Custom Catalogs belong to users and organizations and are filled with flox publish; they can be public or private.
Reveal answer
Flox ingests the equivalent of the nixos-unstable branch daily, so a package that lands on nixos-unstable should appear in the Base Catalog within a day.
Reveal answer
Every package in a pkg-group resolves against the same nixpkgs Git commit (a catalog revision), while different groups may resolve against different commits. This guards against ABI incompatibilities and version conflicts.
Reveal answer
The resolver cannot find one coherent set of versions. Adjust version constraints with flox edit, or isolate a package in a new group with pkg-group = "newgroup" on that package.
Reveal answer
In the [services] section of the manifest. Each service needs a command and may set its own vars, and services use the packages from [install]. Starting them with flox activate is done with --start-services.
Source: flox.dev/docs/concepts/services
Reveal answer
Set is-daemon = true and provide a shutdown.command, since the default shutdown sends SIGTERM to the spawned process. The docs show pg_ctl start and pg_ctl stop as the pattern.
Source: flox.dev/docs/concepts/services
Reveal answer
Yes. The Flox and systemd tutorial is about running Flox environment services as persistent systemd units.
Reveal answer
Manifest builds use the build commands you already know with a reasonable amount of reproducibility. Nix expression builds are for truly reproducible builds and need some Nix language.
Source: flox.dev/docs/concepts/builds
Reveal answer
A symlink named result-<name> for each build, pointing at a read-only location holding the package contents.
Source: flox.dev/docs/concepts/builds
Reveal answer
On Linux, sandboxed (sandbox = "pure") builds are restricted from the network. On macOS the sandboxing is more limited, so pure builds there still have network access.
Reveal answer
No. A package is built on your host and only for its system (aarch64-darwin, x86_64-linux and so on), so multi-platform packages need builds on multiple platforms, for example in CI.
Source: flox.dev/docs/concepts/builds
Reveal answer
The environment must be tracked in a git repository with clean tracked files, the repository must have a remote with the current revision pushed, and at least one package must be installed in the environment.
Reveal answer
It writes a container image of the environment (default file {name}-container.tar). Running it behaves like flox activate: interactive runs give a shell, non-interactive runs execute a command like flox activate --.
Reveal answer
With containers, packaging and isolation are mixed together. With Flox, packaging is distinct from isolation, and environments work the same on bare metal, in VMs, in containers and in agent sandboxes.
Reveal answer
The annotation flox.dev/environment naming a FloxHub environment, runtimeClassName: flox, and a tiny placeholder image (flox/empty:1.0.0 in the example) plus the command to run.
Reveal answer
Run flox install -r and flox push -r on the FloxHub environment, then redeploy the pod. It pulls the latest generation, with "No need to rebuild an image."
Reveal answer
It wraps containerd-shim-runc-v2 with containerd-shim-flox-v2, which intercepts the container configuration and prepares the filesystem, including pulling the Flox environment to the node.
Reveal answer
Three skills: flox, floxify and flox-debug. In Claude Code run claude plugin marketplace add flox/flox-skills, then claude plugin install flox@flox-skills.
Reveal answer
It onboards an existing repo: it detects runtimes, services and build tools and writes .flox/env/manifest.toml so that flox activate is the only setup command a new developer needs.
Reveal answer
Flox commands that install, upgrade or resolve packages from the Flox Catalog now require a free FloxHub account. Flox 1.19.3 shipped that day.
Reveal answer
flox activate with a current lockfile, flox search, flox show, flox pull of a public environment, and flox build when the lockfile is current.
Reveal answer
No. Flox says "this is not a paywall": the free tier keeps the same capabilities and you need a free account, not a paid subscription.
Reveal answer
It does not prompt. It fails with an error telling you to run flox auth login, after which you run the command again.
Reveal answer
No. The catalog enforces it for every version. Versions before 1.3.5 never send the login to the catalog, so they cannot resolve packages even when logged in and must be upgraded.
Reveal answer
It is free: the CLI, access to the Flox Catalog, unlimited public FloxHub envs, 3 private FloxHub envs, 5 private packages and community support via Slack or Discourse.
Source: flox.dev/pricing/
Reveal answer
It lists $20/seat/month and adds a team catalog, unlimited publishing of packages, unlimited team FloxHub envs, platform support and paid consulting with Flox packaging experts.
Source: flox.dev/pricing/
Reveal answer
Custom deployment options, a custom base catalog, a software policy engine and comprehensive packaging support, at custom pricing.
Source: flox.dev/pricing/
Reveal answer
SOC 2 Type II and ISO/IEC 27001:2022, both stated on its Security & Compliance page.
Source: flox.dev/compliance/
Reveal answer
Run curl -fsSL https://get.flox.dev | sh. The script supports macOS, Debian and Red Hat-based Linux distributions on x86_64 and aarch64.
Reveal answer
With a service account token in the FLOX_FLOXHUB_TOKEN environment variable, kept as a CI secret. A pipeline that only activates a committed environment needs no credentials.
Source: flox.dev/docs/tutorials/ci-cd
Reveal answer
It has one of two organization-wide access levels, read-only or read and write, never owner. Only owners create service accounts, tokens begin with flox_sat_, and the CLI must be 1.14.0 or newer.
Reveal answer
They begin with flox_pat_, are generated in FloxHub on your profile page, last 30 days by default (or 90 days, 1 year, no expiration) and are shown once. Use flox auth login --token-file to sign in.
Reveal answer
The CLI records an event for each command, tied to a random device ID. FLOX_DISABLE_METRICS=true turns off telemetry and error reports, though search and install still send the requests they need.
Reveal answer
A just-in-time pattern: retrieve secrets from a secret store during flox activate with a secrets plugin or on-activate hook, so they exist only while the environment is active.
Reveal answer
Through the include.environments array in the manifest. Later descriptors take higher priority than earlier ones, and the composing manifest wins. flox list --config shows the merged manifest.
Source: flox.dev/docs/man/manifest.toml
Reveal answer
Docker Compose is "a tool for defining and running multi-container applications." A Flox environment instead defines packages, variables, hooks and services activated on a host.
Source: docs.docker.com/compose/
Reveal answer
It lets you use a container as a full-featured development environment, and a devcontainer.json file in your project tells VS Code how to do that.
Reveal answer
An open specification for enriching containers with development specific content and settings.
Source: containers.dev/
Reveal answer
Nix builds packages in isolation from each other, which it says keeps them reproducible and free of undeclared dependencies.
Source: nixos.org/
Reveal answer
Devbox builds an isolated dev environment, and its page states that no Docker or virtual machines are required.
Source: www.jetify.com/devbox
Reveal answer
Devbox creates an isolated development environment based on your devbox.json.
Source: www.jetify.com/devbox
Reveal answer
Its page says to define packages, languages, services, tasks, secrets and tooling once, so every developer and CI gets the same reproducible environment.
Source: devenv.sh/
Reveal answer
It installs the tools a project needs, sets its environment variables and runs its tasks from one mise.toml that works in your shell, editor and CI.
Source: mise.jdx.dev/
Reveal answer
Yes. Auto-activation is on by default and only requires the Flox prompt hook installed in your shell, which any in-place activation installs.
Flashcards
12 cards. Click or tap a card to flip it.