nix repl

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

# Name

`nix repl` - start an interactive environment for evaluating Nix expressions

# Synopsis

`nix repl` [option...] files...

# Examples

- Display all special commands within the REPL:

      # nix repl
      nix-repl> :?

- Evaluate some simple Nix expressions:

      # nix repl

      nix-repl> 1 + 2
      3

      nix-repl> map (x: x * 2) [1 2 3]
      [ 2 4 6 ]

- Interact with Nixpkgs in the REPL:

      # nix repl '<nixpkgs>'

      Loading '<nixpkgs>'...
      Added 12428 variables.

      nix-repl> emacs.name
      "emacs-27.1"

      nix-repl> emacs.drvPath
      "/nix/store/lp0sjrhgg03y2n0l10n70rg0k7hhyz0l-emacs-27.1.drv"

      nix-repl> drv = runCommand "hello" { buildInputs = [ hello ]; } "hello; hello > $out"

      nix-repl> :b drv
      this derivation produced the following outputs:
        out -> /nix/store/0njwbgwmkwls0w5dv9mpc1pq5fj39q0l-hello

      nix-repl> builtins.readFile drv
      "Hello, world!\n"

      nix-repl> :log drv
      Hello, world!

# Description

This command provides an interactive environment for evaluating Nix expressions. (REPL stands for 'read–eval–print loop'.)

On startup, it loads the Nix expressions named files and adds them into the lexical scope. You can load addition files using the `:l <filename>` command, or reload all files using `:r`.

# 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.