devenv-machines(1)
β¨ devenv-machines β the group chat for your machines π
okay so real quick, bestie: this is devenv-machines(1), from the General Commands Manual section. It's the page about building and deploying NixOS, nix-darwin, and home-manager machines β and the whole vibe lives at https://devenv.sh/machines/ π¦
πΈ NAME πΈ
devenv-machines β Build and deploy NixOS, nix-darwin, and home-manager machines. https://devenv.sh/machines/ π
β¨ SYNOPSIS β¨
devenv machines [--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] <subcommands>
π DESCRIPTION π
Build and deploy NixOS, nix-darwin, and home-manager machines. Literally all of them. Together. Iconic behaviour fr fr π«Ά
The docs live at https://devenv.sh/machines/ β go read them, they ate.
π OPTIONS π
--user-config <USER_CONFIG>β use this user configuration file instead of the XDG default. not the default one, this one. ty π
π§ INPUT OVERRIDES π§
--from <FROM>β the source fordevenv.nix.
Can be either a filesystem path (with a path: prefix) or a flake input reference.
Examples, baby:
--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, in the form <attribute>:<type>. Supported types are: string, int, float, bool, path, pkg, pkgs. Lowkey crucial, don't forget the type or it's giving error energy π
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>β maximum number of Nix builds to run concurrently.
Defaults to 1/4 of available CPU cores (minimum 1). so like, a quarter of your cores, but never zero bestie.
-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. letting the outside world in, gently π¦--no-impureβ force a hermetic environment, overriding config. no vibes from outside, periodt.--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. when things go π, you get to go in and look around.
π SHELL OPTIONS π
-c,--clean [<CLEAN>...]β ignore existing environment variables when entering the shell. Pass a list of comma-separated environment variables to let through. like a VIP list for your env vars ποΈ-P,--profile <PROFILES>β activate one or more profiles defined indevenv.nix.
Profiles allow you to 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). it just knows β¨--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. shhh π€«--secretspec-profile <SECRETSPEC_PROFILE>β override the secretspec profile.
π¦ TRACING OPTIONS π¦
--trace-to <TRACE_TO>β enable tracing and set output destination(s). Can be repeated for multiple outputs. (yes, repeat it, collect them all π )
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). π«Ά
π GLOBAL OPTIONS π
-v,--verboseβ enable additional debug logs. the girlies love lore.-q,--quietβ silence all logs. mute, but make it peaceful π--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).
β SUBCOMMANDS β
devenv-machines-check(1)β check declared NixOS access changes without building or deploying. all the gossip, none of the commitment.devenv-machines-apply(1)β apply every pinned role in a reviewed fleet deployment plan.devenv-machines-plan(1)β build and save a fleet deployment plan for review. receipts first πdevenv-machines-status(1)β read target-side NixOS deployment state as JSON without building or activating.devenv-machines-rollback(1)β roll back a transactional NixOS deployment to its recorded previous system. we love a rewind button πdevenv-machines-info(1)β list every machine declared indevenv.nixand the metadata devenv uses to build, deploy, and install them.devenv-machines-install(1)β install NixOS on a fresh target: kexec into the installer, partition via disko, copy the closure, install the bootloader, reboot. https://devenv.sh/machines/#installing-on-a-fresh-hostdevenv-machines-deploy(1)β build, review, and deploy NixOS, nix-darwin, and home-manager together. https://devenv.sh/machines/#updating-an-existing-host β the main character of this whole page, ngl π
okay that's the whole thing bestie. this page ships as part of machines, and it's filed under devenv-machines(1) β so if you ever forget where you found it, that's the name to search. go build something iconic β¨ππ¦
π¦ 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