> ## Documentation Index
> Fetch the complete documentation index at: https://dify-6c0370d8-docs-new-agent-experience.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Environment Variables

> Set difyctl defaults for the current shell session with environment variables

Environment variables set defaults for the current shell session: every `difyctl` command you run in it picks them up. A command flag wins, then an environment variable. They're shell-scoped and last only as long as the session.

## Variables difyctl Reads

| Variable             | What it controls                                                                                                                                                                        | Default                                                                                                       |
| :------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------ |
| `DIFY_CONFIG_DIR`    | Where `difyctl` keeps its configuration (`hosts.yml`).                                                                                                                                  | macOS and Linux: `~/.config/difyctl` (Linux honors `XDG_CONFIG_HOME`)<br /><br />Windows: `%APPDATA%\difyctl` |
| `DIFY_LIMIT`         | Default page size, 1 to 200, for list commands (`get app`, `auth devices list`). The `--limit` flag wins, then this variable.                                                           | `20`                                                                                                          |
| `DIFY_WORKSPACE_ID`  | The workspace `difyctl` commands run against. Must be a UUID. See [How difyctl Picks a Workspace](/en/cli/reference/workspaces#how-difyctl-picks-a-workspace) for the resolution order. | none                                                                                                          |
| `DIFYCTL_HTTP_RETRY` | Retry attempts for idempotent requests on transient failures (`0` disables retries). [`--http-retry`](/en/cli/reference/global-flags#http-retries) overrides it.                        | `3`                                                                                                           |

An invalid value fails as a usage error (exit code `2`) rather than being silently ignored, for example a non-UUID `DIFY_WORKSPACE_ID`.

<Info>
  Only the variables above change `difyctl`'s behavior. The others reported by the `env list` command are recognized but currently have no effect.
</Info>

## See What's Set

```text theme={null}
difyctl env list [flags]
```

`env list` shows the current value of each `difyctl` environment variable in your shell. It reads only your local environment and never calls the server, so it works before you sign in.

### Flags

| Flag     | Type    | Default | Description                                             |
| :------- | :------ | :------ | :------------------------------------------------------ |
| `--json` | boolean | `false` | Print the inventory as a JSON array instead of a table. |

<Note>
  `env list` takes `--json`, not the [`-o` global flag](/en/cli/reference/global-flags).
</Note>

### Examples

Check which variables are set in the current shell:

```bash theme={null}
difyctl env list
```

Get the same inventory as JSON:

```bash theme={null}
difyctl env list --json
```

### Output

Unset variables show `<unset>`, and sensitive variables never print their value (only `<set>` or `<unset>`). With `DIFY_LIMIT=50` exported:

```text theme={null}
NAME                VALUE    DESCRIPTION
DIFY_CONFIG_DIR     <unset>  Override the config-dir resolution (precedes XDG_CONFIG_HOME on Linux).
DIFY_FORMAT         <unset>  Default output format for list commands (table | json | yaml | wide | name).
DIFY_HOST           <unset>  Default Dify host (overridden by --host).
DIFY_LIMIT          50       Default page size for list commands (1..200).
DIFY_NO_PROGRESS    <unset>  Suppress progress spinners. Truthy values: 1, true, yes.
DIFY_PLAIN          <unset>  Disable ANSI colors and decorative output. Truthy values: 1, true, yes.
DIFY_TOKEN          <unset>  Bearer token for non-interactive auth.
DIFY_WORKSPACE_ID   <unset>  Workspace ID used for difyctl commands.
DIFYCTL_HTTP_RETRY  <unset>  HTTP retry count for GET/PUT/DELETE. 0 disables. Overrides --http-retry flag.
```

`--json` prints a JSON array, one entry per variable, masked the same way:

```json theme={null}
[
  {
    "name": "DIFY_CONFIG_DIR",
    "description": "Override the config-dir resolution (precedes XDG_CONFIG_HOME on Linux).",
    "sensitive": false,
    "value": "<unset>"
  }
]
```

### Exit Codes

| Code | Meaning |
| :--- | :------ |
| `0`  | Success |

See [Output Formats and Exit Codes](/en/cli/reference/output-formats-and-exit-codes) for the full scheme.
