> For the complete documentation index, see [llms.txt](https://docs.devolutions.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.devolutions.net/cli/reference/environment-variables.md).

# Environment variables

Environment variables that change how Devolutions CLI selects a workspace, stores its configuration, prompts, signs in, and runs its background process.

Set these variables to change the behavior of Devolutions CLI without adding options to every command, for example on a build agent. An option on the command line always takes priority over the matching variable. All the variables work on Windows, macOS, and Linux.

Where a variable is described as "turned on", any value turns it on except an empty value, `0`, `false`, or `no` (not case-sensitive), unless stated otherwise.

{% hint style="info" %}
Options such as `--password-env`, `--value-env`, or `--api-key-env` take the **name** of an environment variable that you choose, never its value. Those variables aren't listed here.
{% endhint %}

## Workspace selection

<table><thead><tr><th width="270">VARIABLE</th><th>WHAT IT DOES</th><th width="200">VALUES</th></tr></thead><tbody><tr><td><code>DEVO_CONTEXT</code></td><td>Context to use, like <code>--context</code>. The <code>--context</code> option takes priority.</td><td>A context name.</td></tr><tr><td><code>DEVO_RDM_SOURCE</code></td><td>Workspace type to use, like <code>--source</code>. The <code>--source</code> and <code>--context</code> options take priority.</td><td><code>sqlite</code>, <code>cloud</code>, <code>cloud:&#x3C;context></code>, <code>server</code>, <code>server:&#x3C;context></code>.</td></tr></tbody></table>

## Configuration location

<table><thead><tr><th width="270">VARIABLE</th><th>WHAT IT DOES</th><th width="200">VALUES</th></tr></thead><tbody><tr><td><code>DEVO_CLI_CONFIG_HOME</code></td><td>Folder where Devolutions CLI keeps its configuration, such as your contexts. By default, it's a <code>Devolutions/CLI</code> folder in your user's local application data folder. Set it to give a build agent or a test its own isolated configuration.</td><td>A folder path. Environment variables in it are expanded.</td></tr><tr><td><code>RDM_CONFIG_PATH</code></td><td>Folder of the local Devolutions Remote Desktop Manager profile to use. By default, it's the <code>rdm</code> folder inside the Devolutions CLI configuration folder. When it's set, a current local context is ignored; a current Devolutions Cloud or Devolutions Server context still applies. <code>devo config path</code> shows the folder in use.</td><td>A folder path.</td></tr></tbody></table>

`devo secretspec register` always lets SecretSpec pass `RDM_CONFIG_PATH` and `DEVO_CLI_CONFIG_HOME` to Devolutions CLI. See [Use Devolutions CLI with SecretSpec](/cli/guides/secrets/secretspec.md).

## Prompts and sign-in

<table><thead><tr><th width="270">VARIABLE</th><th>WHAT IT DOES</th><th width="200">VALUES</th></tr></thead><tbody><tr><td><code>DEVO_NON_INTERACTIVE</code></td><td>When turned on, commands fail instead of asking for missing input, like <code>--non-interactive</code>.</td><td>For example <code>1</code> or <code>true</code>.</td></tr><tr><td><code>DEVO_PROMPT_ANSWERS</code></td><td>Answers to prompts, used in order after the <code>--answer</code> options.</td><td>Answers separated by <code>;</code> or line breaks.</td></tr><tr><td><code>DEVO_CLI_USE_DEVICE_CODE</code></td><td>When turned on, <code>devo login --oauth</code> signs in with a device code instead of the local browser redirect, like <code>--use-device-code</code>. Here only an empty value, <code>0</code>, or <code>false</code> leave it off.</td><td>For example <code>1</code> or <code>true</code>.</td></tr></tbody></table>

See [Run without prompts](/cli/for-devops-and-administrators/automate/non-interactive.md) and [Sign in from a CI pipeline](/cli/for-devops-and-administrators/automate/ci-sign-in.md).

## Background process

<table><thead><tr><th width="270">VARIABLE</th><th>WHAT IT DOES</th><th width="200">VALUES</th></tr></thead><tbody><tr><td><code>DEVO_DAEMON_MODE</code></td><td>Background process policy, like <code>--daemon</code>. The <code>--daemon</code> option takes priority. Any other value stops every command with the error code <code>invalidParameterValue</code> and exit code <code>2</code>.</td><td><code>auto</code> (default), <code>require</code>, <code>never</code>.</td></tr><tr><td><code>DEVO_DAEMON_AUTOSTART</code></td><td>Set to <code>0</code>, <code>false</code>, or <code>no</code> to stop <code>devo</code> from starting the background process on its own, like <code>--no-daemon-autostart</code>.</td><td>Default: on.</td></tr><tr><td><code>DEVO_DAEMON_IDLE_TIMEOUT</code></td><td>How long the background process waits without a request before it stops. The <code>--idle-timeout</code> option of <code>devo daemon start</code> and <code>devo daemon restart</code> takes priority. A zero duration, written <code>0s</code> or <code>00:00:00</code>, means it never stops on its own; <code>0</code> alone is rejected.</td><td>A duration such as <code>30s</code>, <code>15m</code>, <code>1h</code>, <code>1d</code>, or <code>00:30:00</code>. Default: 60 minutes.</td></tr></tbody></table>

See [The background process won't start](/cli/help/troubleshooting/daemon-wont-start.md).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.devolutions.net/cli/reference/environment-variables.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
