devenv-machines-install(1)
π devenv-machines-install β the glow-up guide
okay so real talk, bestie: this is the devenv-machines-install(1) page from the General Commands Manual, and it's literally the "install NixOS on a brand new box" command. no cap.
β¨ NAME β¨
devenv-machines-install β Install NixOS on a fresh target: kexec into the installer, partition via disko, copy the closure, install the bootloader, reboot.
the official docs vibe lives here: https://devenv.sh/machines/#installing-on-a-fresh-host
π SYNOPSIS π
devenv machines install [--max-concurrent] [--use-machines-as-builders]
[--phases] [--stop-after-disko] [--no-reboot] [--disko-mode]
[--user-config] [--from] [-o|--override-input] [-O|--option]
[-j|--max-jobs] [-u|--cores] [-s|--system] [-i|--impure] [--no-impure]
[--offline] [--nix-option] [--nix-debugger] [-c|--clean] [-P|--profile]
[--reload] [--no-reload] [--shell] [--eval-cache] [--no-eval-cache]
[--refresh-eval-cache] [--refresh-task-cache] [--secretspec-provider]
[--secretspec-profile] [--trace-to] [-v|--verbose] [-q|--quiet] [--tui]
[--no-tui] [-h|--help] <NAMES>
π¦ DESCRIPTION π¦
so the whole serve, okay? this command installs NixOS on a fresh target machine and it does the entire main-character arc for you:
kexecinto the installer- partition via disko
- copy the closure
- install the bootloader
- reboot
and yes, there's a whole webpage about it: https://devenv.sh/machines/#installing-on-a-fresh-host
π OPTIONS π
--max-concurrent <N>β how many machines you're installing at the same time. defaults to unbounded (yes, chaos is the default π). pass1if you want them sequential and chill.--use-machines-as-buildersβ treat every machine that has a reachabletarget.hostas a candidate Nix remote builder, for those cross-architecture builds. very giving "share the aux" energy.--phases <PHASES>β comma-separated list of install phases to actually run:kexec,facter,disko,install,reboot. default is all phases. β οΈ conflicts with--stop-after-diskoand--no-reboot.
possible values:
kexecfacterdiskoinstallreboot
--stop-after-diskoβ stops right after the disko phase (equivalent to--phases kexec,facter,disko). leaving early, respectfully.--no-rebootβ runs all phases except reboot (equivalent to--phases kexec,facter,disko,install). the machine stays up, you stay up.--disko-mode <DISKO_MODE>[default:disko] β the disko partitioning mode:disko(default, destroy/create/mount),format(create the missing storage structures without the destroy phase),mount(mount existing filesystems).
possible values:
disko: Destroy existing partitions, create new layout, mount (default)format: Create partitions without destroying existing onesmount: Mount existing partitions without touching the layout
--user-config <USER_CONFIG>β use this user configuration file instead of the XDG default.<NAMES>β the machine names to install. at least one name is required β unlikedeploy,installnever runs bare because it wipes disks π fr fr do not skip this.
π₯ INPUT OVERRIDES π₯
--from <FROM>β source fordevenv.nix.
can be either a filesystem path (with a path: prefix) or a flake input reference.
examples:
--from github:cachix/devenv
--from github:cachix/devenv?dir=examples/simple
--from path:/absolute/path/to/project
--from path:./relative/path
-o,--override-input <NAME> <URI>β override inputs indevenv.yaml.
examples:
--override-input nixpkgs github:NixOS/nixpkgs/nixos-unstable
--override-input nixpkgs path:/path/to/local/nixpkgs
-O,--option <OPTION:TYPE> <VALUE>β override configuration options with typed values.
OPTION must include a type: <attribute>:<type>. supported types: string, int, float, bool, path, pkg, pkgs.
list types (pkgs) append to existing values by default. add a ! suffix to replace instead: pkgs!
examples:
--option languages.rust.channel:string beta
--option services.postgres.enable:bool true
--option languages.python.version:string 3.10
--option packages:pkgs "ncdu git" (appends to packages)
--option packages:pkgs! "ncdu git" (replaces all packages)
π NIX OPTIONS π
-j,--max-jobs <MAX_JOBS>β max number of Nix builds running concurrently.
defaults to 1/4 of available CPU cores (minimum 1).
-u,--cores <CORES>β number of CPU cores available to each build.
defaults to available cores divided by max-jobs (minimum 1).
-s,--system <SYSTEM>β override the target system.
defaults to the host system (e.g. aarch64-darwin, x86_64-linux).
-i,--impureβ relax the hermeticity of the environment.--no-impureβ force a hermetic environment, overriding config.--offlineβ disable substituters and consider all previously downloaded files up-to-date.--nix-option <NAME> <VALUE>β pass additional options to nix commands.
these options are passed directly to Nix using the --option flag. see man nix.conf for the full list of available options.
examples:
--nix-option sandbox false
--nix-option keep-outputs true
--nix-option system x86_64-darwin
--nix-debuggerβ enter the Nix debugger on failure. (character development arc, but for flakes π«Ά)
π SHELL OPTIONS π
-c,--clean [<CLEAN>...]β ignore existing environment variables when entering the shell. pass a list of comma-separated environment variables to let through.-P,--profile <PROFILES>β activate one or more profiles defined indevenv.nix.
profiles let you define different configurations that can be merged with your base configuration.
see https://devenv.sh/profiles for more information.
examples:
--profile python-3.14
--profile backend --profile fast-startup
--reloadβ enable auto-reload when config files change (default).--no-reloadβ disable auto-reload when config files change.--shell <SHELL_TYPE>β shell to use for interactive sessions (bash,zsh,fish,nu).
possible values:
bashzshfishnu
β CACHE OPTIONS β
--eval-cacheβ enable caching of Nix evaluation results (default).--no-eval-cacheβ disable caching of Nix evaluation results.--refresh-eval-cacheβ force a refresh of the Nix evaluation cache.--refresh-task-cacheβ force a refresh of the task cache.
π SECRETSPEC OPTIONS π
--secretspec-provider <SECRETSPEC_PROVIDER>β override the secretspec provider.--secretspec-profile <SECRETSPEC_PROFILE>β override the secretspec profile.
hush hush π€«
π§ TRACING OPTIONS π§
--trace-to <TRACE_TO>β enable tracing and set output destination(s). can be repeated for multiple outputs.
syntax: [format:]destination
examples:
--trace-to stderr # json to stderr
--trace-to pretty:stderr # pretty format to stderr
--trace-to json:file:/tmp/trace.json # JSON to file
--trace-to otlp-grpc # OTLP gRPC to default endpoint
--trace-to otlp-grpc:http://collector:4317 # OTLP gRPC to custom endpoint
multiple outputs:
--trace-to pretty:stderr --trace-to json:file:/tmp/t.json
destinations: stdout, stderr, file:<path>, http(s)://<host>:<port>. formats: json (default), pretty, full, otlp-grpc, otlp-http-protobuf, otlp-http-json.
when format is omitted, defaults to json. tracing is disabled by default.
[env: DEVENV_TRACE_TO=] (comma-separated) [env: DEVENV_TRACE_DEFAULT_TO=] (comma-separated, used only when no explicit tracing is configured; set to empty string to suppress)
ok important: the env var one is only consulted when nothing explicit is configured β and an empty string is how you suppress it entirely. iykyk π
π GLOBAL OPTIONS π
-v,--verboseβ enable additional debug logs.-q,--quietβ silence all logs. (not a single peep π)--tui <TUI>β enable the interactive terminal interface (default when interactive).
possible values:
truefalse
--no-tuiβ disable the interactive terminal interface.-h,--helpβ print help (see a summary with-h).
πΈ SEE ALSO πΈ
tbh the page doesn't list a SEE ALSO section, but the description points you at https://devenv.sh/machines/#installing-on-a-fresh-host and the profiles note points at https://devenv.sh/profiles β go read those, they ate π
and that's the whole thing, bestie π«Ά this page was served to you from the General Commands Manual, footer edition: source/version <rainbow>install</rainbow> and its date, matched up right against devenv-machines-install(1) β iconic, no notes, periodt. β¨π
π¦ where this page comes from
- nixpkgs unstable: devenv 2.4.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms