Provided by: nix-bin_2.8.0-1_amd64 bug

Name

       nix run - run a Nix application

Synopsis

       nix run [option…] installable args

Examples

       • Run the default app from the blender-bin flake:

       # nix run blender-bin

       • Run a non-default app from the blender-bin flake:

       # nix run blender-bin#blender_2_83

              Tip:  you  can  find apps provided by this flake by running nix flake show blender-
              bin.

       • Run vim from the nixpkgs flake:

       # nix run nixpkgs#vim

              Note that vim (as of the time of writing of this page) is not an app but a package.
              Thus, Nix runs the eponymous file from the vim package.

       • Run vim with arguments:

       # nix run nixpkgs#vim -- --help

Description

       nix  run  builds  and  runs  installable,  which  must evaluate to an app or a regular Nix
       derivation.

       If installable evaluates to an app (see below), it executes the program specified  by  the
       app definition.

       If   installable   evaluates  to  a  derivation,  it  will  try  to  execute  the  program
       <out>/bin/<name>, where out is the primary output store path of the derivation,  and  name
       is the first of the following that exists:

       • The meta.mainProgram attribute of the derivation.
       • The pname attribute of the derivation.
       • The name part of the value of the name attribute of the derivation.

       For instance, if name is set to hello-1.10, nix run will run $out/bin/hello.

Flake output attributes

       If  no  flake  output  attribute  is  given,  nix  run  tries  the  following flake output
       attributes:

       • apps.<system>.default

       • packages.<system>.default

       If an attribute name is given, nix run tries the following flake output attributes:

       • apps.<system>.<name>

       • packages.<system>.<name>

       • legacyPackages.<system>.<name>

Apps

       An app is specified by a flake output attribute named apps.<system>.<name>. It looks  like
       this:

       apps.x86_64-linux.blender_2_79 = {
         type = "app";
         program = "${self.packages.x86_64-linux.blender_2_79}/bin/blender";
       };

       The only supported attributes are:

       • type (required): Must be set to app.

       • program  (required):  The  full path of the executable to run. It must reside in the Nix
         store.

Options

       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.

       Common flake-related options:

       • --commit-lock-file
         Commit changes to the flake’s lock file.

       • --inputs-from flake-url
         Use the inputs of the specified flake as registry entries.

       • --no-registries
         Don’t allow lookups in the flake registries. This option is  deprecated;  use  --no-use-
         registries.

       • --no-update-lock-file
         Do not allow any updates to the flake’s lock file.

       • --no-write-lock-file
         Do not write the flake’s newly generated lock file.

       • --override-input input-path flake-url
         Override  a  specific  flake input (e.g. dwarffs/nixpkgs). This implies --no-write-lock-
         file.

       • --recreate-lock-file
         Recreate the flake’s lock file from scratch.

       • --update-input input-path
         Update a specific flake input (ignoring its previous entry in the lock file).

       Options that change the interpretation of installables:

       • --derivation
         Operate on the store derivation rather than its outputs.

       • --expr expr
         Interpret installables as attribute paths relative to the Nix expression expr.

       • --file / -f file
         Interpret installables as attribute paths relative to the Nix expression stored in file.
         If file is the character -, then a Nix expression will be read from standard input.

                                                                                      nix3-run(1)