State of the `nix` program and its subcommands


I’m a bit lost with respect to the “experimental” nix program and its commands.

This wiki page says that the nix command is undocumented and references the nix command wiki page which says this is experimental. This latter page also discusses version 2.4 which is not released yet.

Nevertheless, it seems the nix program and its commands are activated on my system and with install-nix-action. I just don’t understand exactly why.


This may be the blind leading the blind, but AFAIK:

  • bin/nix is installed regardless
  • but its behavior is gated by the experimental-features = nix-command config setting (and matching --experimental-features nix-command flag). You likely have it specified in /etc/nix/nix.conf (or in a .nix file it is generated from).
1 Like

The 2.x CLI API is available anyway as soon as you install nix 2.x, though 2.3 and 2.4 have a fundamentally different interface and behaviour of some commands differ drastically.

2.3 run is more but not fully like 2.4 shell.
2.3 shell is more like 2 4 develop.

2.4 commands require flake like “buildables”, while 2.3 uses the nix path to resolve, etc.

1 Like