devenv.yaml
backend
Section titled “backend”Select the Nix backend used to evaluate devenv.nix.
Type: nix · Default: nix
clean.enabled
Section titled “clean.enabled”Added in 1.0
Clean the environment when entering the shell.
Type: boolean · Default: false
clean.keep
Section titled “clean.keep”Added in 1.0
A list of environment variables to keep when cleaning the environment.
Type: list of string · Default: []
imports
Section titled “imports”A list of relative paths, absolute paths, or references to inputs to import devenv.nix and devenv.yaml files.
See Composing using imports.
Type: list of string · Default: []
impure
Section titled “impure”Added in 1.0
Relax the hermeticity of the environment.
Type: boolean · Default: false
inputs
Section titled “inputs”Map of Nix inputs. See Inputs.
Type: attribute set of input · Default: inputs.nixpkgs.url: github:cachix/devenv-nixpkgs/rolling
inputs.<name>.flake
Section titled “inputs.<name>.flake”Does the input contain flake.nix or devenv.nix.
Type: boolean · Default: true
inputs.<name>.follows
Section titled “inputs.<name>.follows”Another input to “inherit” from by name. See Following inputs.
Type: string
inputs.<name>.inputs
Section titled “inputs.<name>.inputs”Override nested inputs by name. See Following inputs.
Type: attribute set of input
inputs.<name>.overlays
Section titled “inputs.<name>.overlays”A list of overlays to include from the input. See Overlays.
Type: list of string · Default: []
inputs.<name>.url
Section titled “inputs.<name>.url”URI specification of the input. See Supported URI formats.
Type: string
nixpkgs.allow_broken
Section titled “nixpkgs.allow_broken”Added in 1.7
Allow packages marked as broken.
Type: boolean · Default: false
nixpkgs.allow_non_source
Section titled “nixpkgs.allow_non_source”Allow packages not built from source.
Type: boolean · Default: true (nixpkgs default)
nixpkgs.allow_unfree
Section titled “nixpkgs.allow_unfree”Added in 1.7
Allow unfree packages.
Type: boolean · Default: false
nixpkgs.allow_unsupported_system
Section titled “nixpkgs.allow_unsupported_system”Added in 2.0.5
Allow packages that are not supported on the current system.
Type: boolean · Default: false
nixpkgs.allowlisted_licenses
Section titled “nixpkgs.allowlisted_licenses”A list of license names to allow.
Uses nixpkgs license attribute names (e.g. gpl3Only, mit, asl20).
See nixpkgs license list.
Type: list of string · Default: []
nixpkgs.android_sdk.accept_license
Section titled “nixpkgs.android_sdk.accept_license”Accept the Android SDK license.
Can also be set via the NIXPKGS_ACCEPT_ANDROID_SDK_LICENSE=1 environment variable.
Type: boolean · Default: false
nixpkgs.blocklisted_licenses
Section titled “nixpkgs.blocklisted_licenses”A list of license names to block.
Uses nixpkgs license attribute names (e.g. unfree, bsl11).
See nixpkgs license list.
Type: list of string · Default: []
nixpkgs.cuda_capabilities
Section titled “nixpkgs.cuda_capabilities”Added in 1.7
Select CUDA capabilities for nixpkgs.
Type: list of string · Default: []
nixpkgs.cuda_support
Section titled “nixpkgs.cuda_support”Added in 1.7
Enable CUDA support for nixpkgs.
Type: boolean · Default: false
nixpkgs.per_platform
Section titled “nixpkgs.per_platform”Added in 1.7
Per-platform nixpkgs configuration.
Accepts the same options as nixpkgs.
Type: attribute set of nixpkgs config
nixpkgs.permitted_insecure_packages
Section titled “nixpkgs.permitted_insecure_packages”Added in 1.7
A list of insecure permitted packages.
Type: list of string · Default: []
nixpkgs.permitted_unfree_packages
Section titled “nixpkgs.permitted_unfree_packages”Added in 1.9
A list of unfree packages to allow by name.
Type: list of string · Default: []
nixpkgs.rocm_support
Section titled “nixpkgs.rocm_support”Added in 2.0.7
Enable ROCm support for nixpkgs.
Type: boolean · Default: false
profile
Section titled “profile”Added in 1.11
Default profile to activate.
Can be overridden by --profile CLI flag.
See Profiles.
Type: string
prompt_prefix
Section titled “prompt_prefix”Show the (devenv) prefix in the interactive shell prompt.
Set to false when using a custom prompt such as Starship.
Overrides the global user configuration.
Type: boolean · Default: true
reload
Section titled “reload”Added in 2.0
Enable auto-reload of the shell when files change.
Can be overridden by --reload or --no-reload CLI flags.
Type: boolean · Default: true
require_version
Section titled “require_version”Added in 2.1
Version requirement for the devenv CLI.
Set to true to enforce that the CLI version matches the modules version
(from the devenv input), or use a constraint string with operators
(>=, <=, >, <, =, or a bare version for an exact match).
Type: boolean | string
secretspec.cachix_auth_token
Section titled “secretspec.cachix_auth_token”Added in 2.2
Require the Cachix auth token through SecretSpec when
CACHIX_AUTH_TOKEN is not set in the environment.
Set to true to use the built-in CACHIX_AUTH_TOKEN secret name,
false to disable SecretSpec lookup, or a string to use a custom
secret name. No declaration in secretspec.toml is required.
Type: boolean | string · Default: unset
secretspec.enable
Section titled “secretspec.enable”Added in 1.8
Enable secretspec integration.
Type: boolean · Default: false
secretspec.profile
Section titled “secretspec.profile”Added in 1.8
Secretspec profile name to use.
Type: string
secretspec.provider
Section titled “secretspec.provider”Added in 1.8
Secretspec provider to use.
Type: string
Added in 2.1
Default interactive shell to use when entering the devenv environment.
Can be overridden by the --shell CLI flag.
Falls back to the $SHELL environment variable, then bash.
Supported values: bash, zsh, fish, nu. Any other value falls back to bash.
Type: string · Default: $SHELL or bash
strict_ports
Section titled “strict_ports”Error if a port is already in use instead of auto-allocating the next available port.
Can be overridden by --strict-ports or --no-strict-ports CLI flags.
Type: boolean · Default: false

