devenv-shell(1)
π NAME π
okay so bestie, welcome to devenv-shell(1) β straight out of the General Commands Manual, no cap. This is the page that tells you how to activate the developer environment, and the whole vibe is documented over at https://devenv.sh/basics/ β¨
π¦ SYNOPSIS π¦
devenv shell [--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] [CMD] [ARGS]
like, that's the whole menu, and every single one of those flags is described below, so don't panic π«Ά
πΈ DESCRIPTION πΈ
Activate the developer environment. That's the whole thing. The docs live at https://devenv.sh/basics/ and they're iconic, go read them π
β¨ OPTIONS β¨
--user-config <USER_CONFIG>β use this user configuration file instead of the XDG default. you're the main character now, you pick the config π[CMD]β the command to run inside the environment. omit it and you get an interactive shell instead π[ARGS]β extra arguments, passed literally. no vibes-based reinterpretation, they go through exactly as written π
π§ INPUT OVERRIDES π§
--from <FROM>β wheredevenv.nixcomes from.
it can be either a filesystem path (with the path: prefix) or a flake input reference. both are valid, both slay.
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, like <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! β that bang is doing SO much work fr.
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 at the same time. defaults to1/4of available CPU cores (minimum1) πββοΈ-u,--cores <CORES>β how many CPU cores each build gets. defaults to available cores divided bymax-jobs(minimum1).-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. chaotic good.--no-impureβ force a hermetic environment, overriding config. structured good.--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 go 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 π, at least you get a debugger.
π 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. very "different outfits, same girl" energy.
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>β which 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
π 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 the format is omitted it defaults to json. tracing is disabled by default π
[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)
π GLOBAL OPTIONS π
-v,--verboseβ enable additional debug logs. lore drops unlocked π-q,--quietβ silence all logs. peace and quiet, we love to see it π€--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) π«Ά
okay that's literally the whole page, you ate that π
β¨ this little beauty comes to you from the shell source in the devenv-shell(1) manual, and that's the tea β 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