devenv-update(1)
β¨ devenv-update β¨
okay so bestie, welcome to devenv-update(1) from the General Commands Manual β literally the page that tells you how to refresh your devenv.lock and honestly? she ate. π
πΈ NAME πΈ
devenv-update β update devenv.lock from devenv.yaml inputs.
also hi, the docs live at http://devenv.sh/inputs/ π«Ά
π¦ SYNOPSIS π¦
no cap, here's the whole shape of it:
devenv update [--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] [NAME]
π DESCRIPTION π
so basically: this command updates devenv.lock from your devenv.yaml inputs. that's the whole vibe. the site is http://devenv.sh/inputs/ β go look, it's giving documentation excellence β¨
π OPTIONS π
okay the options section is long but stay with me, we're getting through all of them, no skipping, periodt.
--user-config <USER_CONFIG>β use this user configuration file instead of the XDG default. you're the main character, you pick the file π[NAME]β yeah, that's it. no description. she's mysterious. iykyk π
π INPUT OVERRIDES π
this is where you tell devenv "no actually, use this instead" and she's like "ok queen" π
--from <FROM>β the source fordevenv.nix.
it can be either a filesystem path (with a path: prefix) or a flake input reference.
examples, literally copy these:
--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. lowkey the most useful thing here.
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. yes, you gotta give her a type, she's not guessing π§
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)
see the difference between those last two? appends vs replaces. that ! is doing so much work, honestly iconic β
π NIX OPTIONS π
-j,--max-jobs <MAX_JOBS>β the maximum number of Nix builds running at the same time.
defaults to 1/4 of your available CPU cores (minimum 1). so she's polite about your fans π
-u,--cores <CORES>β how many CPU cores each build gets.
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. she's loosening up π¦--no-impureβ force a hermetic environment, overriding config. back in the bubble with you π«§--offlineβ disable substituters and consider all previously downloaded files up-to-date. airplane mode but make it nix βοΈ--nix-option <NAME> <VALUE>β pass additional options to nix commands.
these 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 wrong, go deeper ππ
π SHELL OPTIONS π
--/-c,--clean [<CLEAN>...]β ignore existing environment variables when entering the shell. you can pass a list of comma-separated environment variables to let through, like VIPs at the door ποΈ-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). she's always watching πβ¨--no-reloadβ disable auto-reload when config files change. she's chilling now.--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). speed, slay π¨--no-eval-cacheβ disable caching of Nix evaluation results. slow but honest.--refresh-eval-cacheβ force a refresh of the Nix evaluation cache. out with the old π--refresh-task-cacheβ force a refresh of the task cache. also out with the old π§Ή
π SECRETSPEC OPTIONS π
--secretspec-provider <SECRETSPEC_PROVIDER>β override the secretspec provider. secrets, but make it specified π€«--secretspec-profile <SECRETSPEC_PROFILE>β override the secretspec profile. same energy, different profile π
β TRACING OPTIONS β
--trace-to <TRACE_TO>β enable tracing and set output destination(s). can be repeated for multiple outputs. our multi-tasking queen π
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 bestie this one's got layers β env vars and formats and destinations. read it twice, it's worth it π§ββοΈ
π GLOBAL OPTIONS π
-v,--verboseβ enable additional debug logs. she's telling you everything π¬-q,--quietβ silence all logs. she's saying nothing. mysterious. π€--tui <TUI>β enable the interactive terminal interface (default when interactive).
possible values:
truefalse
--no-tuiβ disable the interactive terminal interface. no pretty boxes for you π-h,--helpβ print help (see a summary with-h). the classic, the icon, the legend π
ngl that's the whole page β every flag, every default, every example, all accounted for. no cap. π
that's a wrap, bestie β¨ this page comes from the source/version update, and it's the devenv-update(1) manual page β go update something and slay π¦π
π¦ 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