Comparisons to Existing NixOS Tools
nh
nh is a more popular application in this realm, perhaps because it looked
prettier due to the earlier nix-output-monitor and nvd integration, and is
significantly older than nixos-cli.
However, I prefer to keep the focus on NixOS here, while nh tries to be a
unified rebuild + switch manager for multiple OSes. That's the biggest
difference.
nixos-cli also has more features than nh for NixOS-based machines, so that's
a plus.
In the future, I may want to write similar CLIs to nixos-cli as replacements
for the current darwin-rebuild and home-manager scripts, but this is purely
imaginative for the time being. My personal belief is that these are
fundamentally separate projects with vaguely similar, but disparate concerns,
and in my opinion, should be kept that way.
nixos-rebuild-ng + switch-to-configuration-ng
The big differences:
- They mimic the existing
nixos-rebuild.shproject 1:1 when it comes to features - They're two separate projects still written in two separate languages
- They are developed in the
nixpkgstree, so it's harder to track progress
nixos-cli intends to go much further than these. The interface is much more
approachable, and the development is done out-of-tree, which makes it easier to
separate concerns.
Also, the plan in the future is to have a nixos activate command that is a
self-contained drop-in replacement for switch-to-configuration functionality,
rather than being two separate projects. The progress for this is tracked in
this GitHub issue.
Also, the nixos-rebuild-ng project is written in Python, which would require a
Python runtime as a builtin dependency for base NixOS systems with it, while
nixos-cli only requires the Go compiler.