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.

Logging

By default wxctl prints a high-level rendering of each pipeline stage. For detailed operator logs, set RUST_LOG.
VariableEffect
RUST_LOGEnables 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_PATHWhen 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_APPENDWhen set to 1 or true, WXCTL_LOG_PATH appends instead of truncating — so a multi-command lifecycle (planapplytestdestroy) streams into a single JSON-lines file.
RUST_LOG=debug wxctl apply -f config.yaml                    # verbose logs to stderr
RUST_LOG=wxctl=trace WXCTL_LOG_PATH=run.json wxctl apply -f config.yaml   # JSON logs to run.json
RUST_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.

Concurrency and timeouts

wxctl runs independent operations in parallel. Tune the limits when you hit rate limits, slow services, or long-running operations.
VariableDefaultMeaning
WXCTL_CONCURRENCY_GLOBAL50Maximum operations in flight at once (minimum 1).
WXCTL_CONCURRENCY_TIMEOUT900Per-operation timeout in seconds. One operation may include retries, polling loops, and several HTTP calls.
WXCTL_REQUEST_TIMEOUT30Per individual HTTP request timeout in seconds.
WXCTL_CONCURRENCY_GLOBAL=10 wxctl apply -f config.yaml    # gentler on a rate-limited service
WXCTL_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.

Terminal color

Color is on by default when output is a terminal. Override it with environment variables:
VariableValuesEffect
NO_COLORany valueDisables color entirely (the NO_COLOR standard). Takes precedence over everything below.
WXCTL_COLORneverDisables color.
WXCTL_COLORalways / darkForces colored output (dark theme).
WXCTL_COLORlightForces colored output (light theme).
WXCTL_COLORautoAuto-detects (the default when neither variable is set).
NO_COLOR=1 wxctl plan -f config.yaml          # plain output, no ANSI codes
WXCTL_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.

Next steps

Worked example

A tool + agent + test walkthrough you can run end to end.

Commands

Every command, its flags, and examples.