Turn on logs, tune concurrency and timeouts, and control terminal color with environment variables.
When a run misbehaves, these environment variables expose what wxctl is doing and let you tune how it talks to each service. See Commands for the full command surface and Pipeline for what each stage does.
By default wxctl prints a high-level rendering of each pipeline stage. For detailed operator logs, set RUST_LOG.
Variable
Effect
RUST_LOG
Enables the operator log layer using the standard tracing filter syntax (e.g. info, debug, wxctl=trace). Unset means no operator logs — only the normal CLI output.
WXCTL_LOG_PATH
When set, operator logs are written as JSON to this file (the file is truncated on each run, unless WXCTL_LOG_APPEND is set). When unset, logs go as compact text to stderr.
WXCTL_LOG_APPEND
When set to 1 or true, WXCTL_LOG_PATHappends instead of truncating — so a multi-command lifecycle (plan → apply → test → destroy) streams into a single JSON-lines file.
RUST_LOG=debug wxctl apply -f config.yaml # verbose logs to stderrRUST_LOG=wxctl=trace WXCTL_LOG_PATH=run.json wxctl apply -f config.yaml # JSON logs to run.jsonRUST_LOG=wxctl=info WXCTL_LOG_PATH=run.json WXCTL_LOG_APPEND=1 wxctl apply -f config.yaml # append across runs
WXCTL_LOG_PATH only takes effect when RUST_LOG is also set — RUST_LOG is what turns the operator log layer on. The JSON file is overwritten on every run unless you set WXCTL_LOG_APPEND=1 to append, so copy it elsewhere if you need to keep it.
wxctl runs independent operations in parallel. Tune the limits when you hit rate limits, slow services, or long-running operations.
Variable
Default
Meaning
WXCTL_CONCURRENCY_GLOBAL
50
Maximum operations in flight at once (minimum 1).
WXCTL_CONCURRENCY_TIMEOUT
900
Per-operation timeout in seconds. One operation may include retries, polling loops, and several HTTP calls.
WXCTL_REQUEST_TIMEOUT
30
Per individual HTTP request timeout in seconds.
WXCTL_CONCURRENCY_GLOBAL=10 wxctl apply -f config.yaml # gentler on a rate-limited serviceWXCTL_CONCURRENCY_TIMEOUT=1800 wxctl apply -f config.yaml # allow slow operations up to 30 minutes
Lower the global limit if a service returns 429 Too Many Requests. Raise the operation timeout for slow provisioning steps that exceed 15 minutes — but raising it will not help a request that is failing for another reason.
Color is on by default when output is a terminal. Override it with environment variables:
Variable
Values
Effect
NO_COLOR
any value
Disables color entirely (the NO_COLOR standard). Takes precedence over everything below.
WXCTL_COLOR
never
Disables color.
WXCTL_COLOR
always / dark
Forces colored output (dark theme).
WXCTL_COLOR
light
Forces colored output (light theme).
WXCTL_COLOR
auto
Auto-detects (the default when neither variable is set).
NO_COLOR=1 wxctl plan -f config.yaml # plain output, no ANSI codesWXCTL_COLOR=light wxctl plan -f config.yaml # force the light theme
When neither variable is set, wxctl auto-detects: it goes plain when output is piped or redirected (not a TTY), and otherwise follows your terminal’s light/dark appearance, defaulting to dark.