Environment variables
devenv defines and respects the following environment variables:
- devenv variables are defined by devenv. The read-only ones are exported into the developer shell so you can reference them from scripts, tasks, and modules. The configurable ones are read by the CLI to change its behavior. Some may mirror and take precedence over a command-line flag.
- Externally defined variables are standard, third-party variables that devenv respects but does not define.
devenv variables
DEVENV_ROOT
New in version 0.2
Read-only. Points to the root of the project where devenv.nix is located.
DEVENV_DOTFILE
New in version 0.1
Read-only. Points to $DEVENV_ROOT/.devenv.
DEVENV_STATE
New in version 0.1
Read-only. Points to $DEVENV_DOTFILE/state.
DEVENV_RUNTIME
New in version 1.0
Read-only. A short-lived, per-project directory for sockets and other runtime files (e.g. $DEVENV_RUNTIME/postgres), exported into the shell. The path is resolved in this order:
/tmp/devenv-\<hash\>.
$TMPDIR is deliberately not used, because it can differ between invocations that need to find the same process-manager socket. To relocate runtime files while keeping projects and profiles separate, set $XDG_RUNTIME_DIR.
DEVENV_PROFILE
New in version 0.5
Read-only. Points to the Nix store path that has the final profile of packages/scripts provided by devenv. Useful for teaching other programs about /bin, /etc, /var folders. See Package outputs for which outputs of a package are linked into it.
DEVENV_HOME
New in version 2.1.3
devenv’s per-user data directory. Stores GC roots, the trust database, cached keys, and other persistent per-user data. Defaults to ~/.local/share/devenv (respecting $XDG_DATA_HOME). Set it to override where this data is stored.
DEVENV_MAX_JOBS
New in version 1.11
Maximum number of Nix builds to run concurrently. Mirrors the -j / --max-jobs flag. Defaults to 1/4 of available CPU cores (minimum 1).
DEVENV_CORES
New in version 1.11
Number of CPU cores available to each build. Mirrors the -u / --cores flag. Defaults to available cores divided by DEVENV_MAX_JOBS (minimum 1).
DEVENV_SHELL_TYPE
New in version 2.1
Shell to use for interactive sessions: bash, zsh, fish, or nu. Mirrors the --shell flag.
DEVENV_TUI
New in version 2.0
Enable (true) or disable (false) the interactive terminal interface. Mirrors the --tui / --no-tui flags. Enabled by default when the session is interactive.
DEVENV_TRACE_TO
New in version 2.1
Enable tracing to one or more destinations, comma-separated (e.g. pretty:stderr,json:file:/tmp/trace.json). Mirrors the --trace-to flag; run devenv --help for the full syntax.
DEVENV_TRACE_DEFAULT_TO
New in version 2.1
A fallback tracing destination, applied only when no tracing is configured explicitly (neither DEVENV_TRACE_TO nor --trace-to). Uses the same comma-separated [format:]destination syntax as DEVENV_TRACE_TO. Set it to an empty string to suppress an inherited default.
DEVENV_INCLUDE_ENVRC
New in version 2.1.3
Generate an .envrc file when running devenv init. Mirrors devenv init --include-envrc.
DEVENV_NO_AI_AGENT
New in version 2.1
Set to any value to skip AI-agent auto-detection, forcing normal output and the TUI even when running under a detected coding agent.
Externally defined variables
devenv also reads the following externally defined environment variables.
SHELL
Detects your default shell dialect and resolves the shell binary to launch for devenv shell and hooks.
HOME
Locates your shell rc files and serves as the base for the XDG default paths.
XDG_RUNTIME_DIR
Base directory for $DEVENV_RUNTIME. When unset, $DEVENV_RUNTIME falls back to /tmp/devenv-\<hash\>.
XDG_DATA_HOME
Base directory for $DEVENV_HOME (GC roots, trust database, cached keys).
XDG_CONFIG_HOME
Locates shell rc files and the Cachix CLI configuration.
TMPDIR
Base directory for build artifacts. It never affects $DEVENV_RUNTIME, so sandboxed commands with a different $TMPDIR still find the same running processes.
CI
When set, disables the interactive terminal interface by default.
RUST_LOG
Sets the level and filter for devenv’s own diagnostic logging (see also --verbose).
NO_COLOR
Disables colored output. CLICOLOR and CLICOLOR_FORCE are also honored.
TERM
Used to detect terminal color and Unicode capabilities (along with COLORTERM).
HTTP_PROXY
Standard proxy configuration for devenv’s outgoing HTTP requests. HTTPS_PROXY, ALL_PROXY, and NO_PROXY (and their lowercase forms) are honored too.
CACHIX_AUTH_TOKEN
Authentication token for pulling from and pushing to Cachix binary caches.
SECRETSPEC_PROVIDER
Override the provider for the secretspec integration. Mirrored by the --secretspec-provider flag.
Changed in version 2.2.2
devenv exports this variable into the development shell only when a provider override was explicitly configured. Otherwise, commands use the provider routes from secretspec.toml.
SECRETSPEC_PROFILE
Override the profile for the secretspec integration. Mirrored by the --secretspec-profile flag.
Last updated Oct 11, 2026