Scroll to navigation

nix3-registry-pin(1) General Commands Manual nix3-registry-pin(1)

Warning: This program is experimental and its interface is subject to change.


nix registry pin - pin a flake to its current version or to the current version of a flake URL


nix registry pin [option…] url locked


Pin nixpkgs to its most recent Git revision:

# nix registry pin nixpkgs
Afterwards the user registry will have an entry like this:

nix registry list | grep '^user '
user   flake:nixpkgs github:NixOS/nixpkgs/925b70cd964ceaedee26fde9b19cc4c4f081196a
and nix flake info will say:

# nix flake info nixpkgs
Resolved URL:  github:NixOS/nixpkgs/925b70cd964ceaedee26fde9b19cc4c4f081196a
Locked URL:    github:NixOS/nixpkgs/925b70cd964ceaedee26fde9b19cc4c4f081196a
Pin nixpkgs in a custom registry to its most recent Git revision:

# nix registry pin --registry ./custom-flake-registry.json nixpkgs


This command adds an entry to the user registry that maps flake reference url to the corresponding locked flake reference, that is, a flake reference that specifies an exact revision or content hash. This ensures that until this registry entry is removed, all uses of url will resolve to exactly the same flake.

Entries can be removed using nix registry remove (./


--registry registry
The registry to operate on.

Common evaluation options:

  • --arg name expr
    Pass the value expr as the argument name to Nix functions.
  • --argstr name string
    Pass the string string as the argument name to Nix functions.
  • --eval-store store-url
    The Nix store to use for evaluations.
  • --impure
    Allow access to mutable paths and repositories.
  • --include / -I path
    Add path to the list of locations used to look up <...> file names.
  • --override-flake original-ref resolved-ref
    Override the flake registries, redirecting original-ref to resolved-ref.