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)
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 for the resolution order. | none |
DIFYCTL_HTTP_RETRY | Retry attempts for idempotent requests on transient failures (0 disables retries). --http-retry 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.
Only the variables above change difyctl’s behavior. The others reported by the env list command are recognized but currently have no effect.
See What’s Set
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. |
Examples
Check which variables are set in the current shell:
Get the same inventory as JSON:
Output
Unset variables show <unset>, and sensitive variables never print their value (only <set> or <unset>). With DIFY_LIMIT=50 exported:
--json prints a JSON array, one entry per variable, masked the same way:
Exit Codes
See Output Formats and Exit Codes for the full scheme.