devenv-eval(1)
π devenv-eval(1) β the group chat edition π
okay so bestie, this is a page from the General Commands Manual, and it's about devenv-eval. grab a boba, we're getting into it π§β¨
β¨ NAME β¨
devenv-eval β evaluate, like, any attribute in devenv.nix and hand you back JSON. no cap. π
π¦ SYNOPSIS π¦
devenv eval [--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] [ATTRIBUTES]
πΈ DESCRIPTION πΈ
Evaluate any attribute in devenv.nix and return JSON. that's it, that's the whole vibe β you point at a thing, it tells you what that thing is, in JSON. iconic. π
π OPTIONS π
--user-config <USER_CONFIG>β use this user configuration file instead of the XDG default. main character config file energy, fr fr. π«Ά[ATTRIBUTES]β the attribute(s) you wanna evaluate. yes bestie, this one's positional.
π INPUT OVERRIDES π
π --from <FROM>
Source for devenv.nix. it can be either a filesystem path (with the path: prefix, don't forget it!) or a flake input reference. lowkey my fave option ngl.
Examples, keep these exactly:
--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 in devenv.yaml. so clutch when you're pointing at your own fork π
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 read that right, typed. we're being responsible today β¨
OPTION must include a type: <attribute>:<type>. Supported types are: string, int, float, bool, path, pkg, pkgs.
List types (pkgs) append to existing values by default. add a ! suffix to replace instead: pkgs!. the ! is doing so much work and honestly? slay.
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). not me dividing your cores for you π
β -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 a little chaos in, respectfully πͺοΈ
β --no-impure
Force a hermetic environment, overriding config. back in the bubble bestie π«§
β --offline
Disable substituters and consider all previously downloaded files up-to-date. we're staying in tonight π
β --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 sideways you get to go in there π€
π SHELL OPTIONS π
πΈ -c, --clean [<CLEAN>...]
Ignore existing environment variables when entering the shell. pass a list of comma-separated environment variables to let through. fresh start, but like, on your terms β¨
πΈ -P, --profile <PROFILES>
Activate one or more profiles defined in devenv.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). she's always listening π
πΈ --no-reload
Disable auto-reload when config files change. giving "do not disturb" mode π
πΈ --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). we love a shortcut π--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. shh. π€«--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, repeated, stack 'em up π
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.
heads up bestie, these are the env vars:[env: DEVENV_TRACE_TO=](comma-separated) and[env: DEVENV_TRACE_DEFAULT_TO=](comma-separated, used only when no explicit tracing is configured; set to empty string to suppress). the empty-string-suppresses thing is important, don't sleep on it π
π GLOBAL OPTIONS π
-v,--verboseβ enable additional debug logs. she said "tell me everything" π£οΈ-q,--quietβ silence all logs. not a 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).
β οΈ real talk: -h gives you the summary, and full help is the longer version. the page said it, so i'm saying it π
and that's the whole page, bestie! π this one was from the General Commands Manual, the invocation is eval, and it's filed as devenv-eval(1). go evaluate 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