---
name: "nix3-daemon"
section: "1"
platform: "linux"
package: "nix-bin"
version: "2.26.3+dfsg-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/nix3-daemon"
---

# nix3-daemon(1)

daemon to perform store operations on behalf of non-root clients

**Warning** \
 This program is **experimental** ⟨@docroot@/development/experimental-features.md#xp-feature-nix-command⟩ and its interface is subject to change.

## Name

`nix daemon` - daemon to perform store operations on behalf of non-root clients

## Synopsis

`nix daemon` \[*option*…\]

## Examples

- •

  Run the daemon:

```
# nix daemon
```

- •

  Run the daemon and listen on standard I/O instead of binding to a UNIX socket:

```
# nix daemon --stdio
```

- •

  Run the daemon and force all connections to be trusted:

```
# nix daemon --force-trusted
```

- •

  Run the daemon and force all connections to be untrusted:

```
# nix daemon --force-untrusted
```

- •

  Run the daemon, listen on standard I/O, and force all connections to use Nix’s default trust:

```
# nix daemon --stdio --default-trust
```

## Description

This command runs the Nix daemon, which is a required component in multi-user Nix installations. It runs build tasks and other operations on the Nix store on behalf of non-root users. Usually you don’t run the daemon directly; instead it’s managed by a service management framework such as `systemd` on Linux, or `launchctl` on Darwin.

Note that this daemon does not fork into the background.

## Options

- •

  `--default-trust` ⟨#opt-default-trust⟩

-

  Use Nix’s default trust.

- •

  `--force-trusted` ⟨#opt-force-trusted⟩

-

  Force the daemon to trust connecting clients.

- •

  `--force-untrusted` ⟨#opt-force-untrusted⟩

-

  Force the daemon to not trust connecting clients. The connection will be processed by the receiving daemon before forwarding commands.

- •

  `--process-ops` ⟨#opt-process-ops⟩

-

  Forces the daemon to process received commands itself rather than forwarding the commands straight to the remote store.

```
      This is useful for the `mounted-ssh://` store where some actions need to be performed on the remote end but as connected user, and not as the user of the underlying daemon on the remote end.
```

- •

  `--stdio` ⟨#opt-stdio⟩

-

  Attach to standard I/O, instead of trying to bind to a UNIX socket.

### Logging-related options

- •

  `--debug` ⟨#opt-debug⟩

-

  Set the logging verbosity level to ‘debug’.

- •

  `--log-format` ⟨#opt-log-format⟩ *format*

-

  Set the format of log output; one of `raw`, `internal-json`, `bar` or `bar-with-logs`.

- •

  `--print-build-logs` ⟨#opt-print-build-logs⟩ / `-L`

-

  Print full build logs on standard error.

- •

  `--quiet` ⟨#opt-quiet⟩

-

  Decrease the logging verbosity level.

- •

  `--verbose` ⟨#opt-verbose⟩ / `-v`

-

  Increase the logging verbosity level.

### Miscellaneous global options

- •

  `--help` ⟨#opt-help⟩

-

  Show usage information.

- •

  `--offline` ⟨#opt-offline⟩

-

  Disable substituters and consider all previously downloaded files up-to-date.

- •

  `--option` ⟨#opt-option⟩ *name* *value*

-

  Set the Nix configuration setting *name* to *value* (overriding `nix.conf`).

- •

  `--refresh` ⟨#opt-refresh⟩

-

  Consider all previously downloaded files out-of-date.

- •

  `--version` ⟨#opt-version⟩

-

  Show version information.

  **Note**

  See `man nix.conf` ⟨@docroot@/command-ref/conf-file.md#command-line-flags⟩ for overriding configuration settings with command line flags.
