wxctl exposes. Each block is the live --help output for this build.
The everyday workflow runs them in order: init → validate → plan → apply → test → destroy.
Global flags
| Flag | Description |
|---|---|
-p, --profile <NAME> | Configuration profile name (default default). |
--profile-path <PATH> | Path to a custom profile configuration file. |
--full-trace | Capture full-fidelity run records (also via WXCTL_FULL_TRACE=1). |
-f, --filename is repeatable on the file-taking commands.
wxctl init
Set up a profile with service URLs and auth settings
Usage: wxctl init [OPTIONS]
Options:
-f, --filename <FILE>
Config file(s) to scan for required services. If omitted, scaffolds all services
-p, --profile <NAME>
Configuration profile name [default: default]
--edit
Open $VISUAL/$EDITOR on the scaffold, then run the profile's live validation checks
--profile-path <PATH>
Path to a custom profile configuration file
--force
Overwrite the target profile with a fresh scaffold (other profiles and preferences are preserved)
--full-trace
Capture full-fidelity run records: redacted bodies for all exchanges, debug/trace internals, hook payload diffs, and `src` on every event. Also settable via `WXCTL_FULL_TRACE=1`
--no-update-check
Skip the background update check for this run. Also settable via `WXCTL_NO_UPDATE_CHECK=1` or `DO_NOT_TRACK=1`
--progress <MODE>
Progress rendering for apply/destroy/plan/test: auto (animate on a TTY, stream plain otherwise), tty (force the live region), plain (stream append-only lines, keeps scrollback usable), none (suppress progress). The panel draws to stderr; stdout stays clean for `--output json`. Also settable via `WXCTL_PROGRESS`
Possible values:
- auto: Animate a live region when stderr is a TTY; stream plain lines otherwise (also plain under `CI` or `TERM=dumb`). Default
- tty: Force the animated live region even under `CI` / `TERM=dumb` (still needs a color-capable stderr; `NO_COLOR` / `WXCTL_COLOR=never` disable it)
- plain: Stream plain append-only lines: no in-place repaint, so terminal scrollback stays usable during the run
- none: Suppress the progress panel entirely; only errors and the final result (via `main`) reach the terminal
-h, --help
Print help (see a summary with '-h')
Examples:
wxctl init Scaffold profiles.yaml for all services
wxctl init -f config.yaml Scaffold only the services used by config
wxctl init -p prod --force Re-scaffold the 'prod' profile in place
wxctl init --edit Scaffold, open $EDITOR, then validate
Next: fill in credentials, then run `wxctl profile validate`.
Docs: https://github.com/randyphoa/wxctl
wxctl validate
Validate configuration files against schemas
Usage: wxctl validate [OPTIONS] --filename <FILE>
Options:
-f, --filename <FILE>
Config file(s), directory, or '-' for stdin. Can be specified multiple times
-p, --profile <NAME>
Configuration profile name [default: default]
--fix-prompt [<ORIGINAL_PROMPT>]
On validation failure, output an LLM fix prompt instead of the normal summary. Optionally pass the path to the original generation prompt to produce a Guardrails-style retry prompt (original prompt + failed output + errors)
--profile-path <PATH>
Path to a custom profile configuration file
--full-trace
Capture full-fidelity run records: redacted bodies for all exchanges, debug/trace internals, hook payload diffs, and `src` on every event. Also settable via `WXCTL_FULL_TRACE=1`
--output <OUTPUT>
Output format for structured output
[possible values: json]
--no-update-check
Skip the background update check for this run. Also settable via `WXCTL_NO_UPDATE_CHECK=1` or `DO_NOT_TRACK=1`
--skip-post-validate
Skip post-validation checks (e.g. source_path existence) for pre-scaffold validation
--deployment <DEPLOYMENT>
Deployment flavor for bridge advisories (saas|software). Omit for the conservative default (only bridges active on every deployment)
[possible values: saas, software]
--progress <MODE>
Progress rendering for apply/destroy/plan/test: auto (animate on a TTY, stream plain otherwise), tty (force the live region), plain (stream append-only lines, keeps scrollback usable), none (suppress progress). The panel draws to stderr; stdout stays clean for `--output json`. Also settable via `WXCTL_PROGRESS`
Possible values:
- auto: Animate a live region when stderr is a TTY; stream plain lines otherwise (also plain under `CI` or `TERM=dumb`). Default
- tty: Force the animated live region even under `CI` / `TERM=dumb` (still needs a color-capable stderr; `NO_COLOR` / `WXCTL_COLOR=never` disable it)
- plain: Stream plain append-only lines: no in-place repaint, so terminal scrollback stays usable during the run
- none: Suppress the progress panel entirely; only errors and the final result (via `main`) reach the terminal
-h, --help
Print help (see a summary with '-h')
Examples:
wxctl validate -f config.yaml Check configuration is valid
wxctl validate -f config.yaml --fix-prompt Output LLM fix prompt for errors
wxctl validate -f config.yaml --fix-prompt prompt.md Include original prompt for retry
wxctl validate -f config.yaml --output json Output structured JSON errors
wxctl plan
Preview changes without applying them
Usage: wxctl plan [OPTIONS] --filename <FILE>
Options:
-f, --filename <FILE>
Config file(s), directory, or '-' for stdin. Can be specified multiple times
-p, --profile <NAME>
Configuration profile name [default: default]
--output <OUTPUT>
Output format for structured output
[possible values: json]
--profile-path <PATH>
Path to a custom profile configuration file
--full-trace
Capture full-fidelity run records: redacted bodies for all exchanges, debug/trace internals, hook payload diffs, and `src` on every event. Also settable via `WXCTL_FULL_TRACE=1`
--no-update-check
Skip the background update check for this run. Also settable via `WXCTL_NO_UPDATE_CHECK=1` or `DO_NOT_TRACK=1`
--progress <MODE>
Progress rendering for apply/destroy/plan/test: auto (animate on a TTY, stream plain otherwise), tty (force the live region), plain (stream append-only lines, keeps scrollback usable), none (suppress progress). The panel draws to stderr; stdout stays clean for `--output json`. Also settable via `WXCTL_PROGRESS`
Possible values:
- auto: Animate a live region when stderr is a TTY; stream plain lines otherwise (also plain under `CI` or `TERM=dumb`). Default
- tty: Force the animated live region even under `CI` / `TERM=dumb` (still needs a color-capable stderr; `NO_COLOR` / `WXCTL_COLOR=never` disable it)
- plain: Stream plain append-only lines: no in-place repaint, so terminal scrollback stays usable during the run
- none: Suppress the progress panel entirely; only errors and the final result (via `main`) reach the terminal
-h, --help
Print help (see a summary with '-h')
wxctl apply
Apply configuration and provision resources
Usage: wxctl apply [OPTIONS] --filename <FILE>
Options:
-f, --filename <FILE>
Config file(s), directory, or '-' for stdin. Can be specified multiple times
-p, --profile <NAME>
Configuration profile name [default: default]
--output <OUTPUT>
Output format for structured output
[possible values: json]
--profile-path <PATH>
Path to a custom profile configuration file
--full-trace
Capture full-fidelity run records: redacted bodies for all exchanges, debug/trace internals, hook payload diffs, and `src` on every event. Also settable via `WXCTL_FULL_TRACE=1`
--no-update-check
Skip the background update check for this run. Also settable via `WXCTL_NO_UPDATE_CHECK=1` or `DO_NOT_TRACK=1`
--progress <MODE>
Progress rendering for apply/destroy/plan/test: auto (animate on a TTY, stream plain otherwise), tty (force the live region), plain (stream append-only lines, keeps scrollback usable), none (suppress progress). The panel draws to stderr; stdout stays clean for `--output json`. Also settable via `WXCTL_PROGRESS`
Possible values:
- auto: Animate a live region when stderr is a TTY; stream plain lines otherwise (also plain under `CI` or `TERM=dumb`). Default
- tty: Force the animated live region even under `CI` / `TERM=dumb` (still needs a color-capable stderr; `NO_COLOR` / `WXCTL_COLOR=never` disable it)
- plain: Stream plain append-only lines: no in-place repaint, so terminal scrollback stays usable during the run
- none: Suppress the progress panel entirely; only errors and the final result (via `main`) reach the terminal
-h, --help
Print help (see a summary with '-h')
Examples:
wxctl apply -f config.yaml Provision resources
wxctl apply -f agents.yaml -f tools.yaml Merge multiple files
wxctl apply -f ./configs/ All YAML in a directory
cat config.yaml | wxctl apply -f - Read from stdin
wxctl test
Run tests against deployed resources
Usage: wxctl test [OPTIONS] --filename <FILE>
Options:
-f, --filename <FILE>
Config file(s), directory, or '-' for stdin. Can be specified multiple times
-p, --profile <NAME>
Configuration profile name [default: default]
--output <OUTPUT>
Output format for structured output
[possible values: json]
--profile-path <PATH>
Path to a custom profile configuration file
--full-trace
Capture full-fidelity run records: redacted bodies for all exchanges, debug/trace internals, hook payload diffs, and `src` on every event. Also settable via `WXCTL_FULL_TRACE=1`
--no-update-check
Skip the background update check for this run. Also settable via `WXCTL_NO_UPDATE_CHECK=1` or `DO_NOT_TRACK=1`
--progress <MODE>
Progress rendering for apply/destroy/plan/test: auto (animate on a TTY, stream plain otherwise), tty (force the live region), plain (stream append-only lines, keeps scrollback usable), none (suppress progress). The panel draws to stderr; stdout stays clean for `--output json`. Also settable via `WXCTL_PROGRESS`
Possible values:
- auto: Animate a live region when stderr is a TTY; stream plain lines otherwise (also plain under `CI` or `TERM=dumb`). Default
- tty: Force the animated live region even under `CI` / `TERM=dumb` (still needs a color-capable stderr; `NO_COLOR` / `WXCTL_COLOR=never` disable it)
- plain: Stream plain append-only lines: no in-place repaint, so terminal scrollback stays usable during the run
- none: Suppress the progress panel entirely; only errors and the final result (via `main`) reach the terminal
-h, --help
Print help (see a summary with '-h')
wxctl destroy
Destroy all resources defined in configuration
Usage: wxctl destroy [OPTIONS] --filename <FILE>
Options:
-f, --filename <FILE>
Config file(s), directory, or '-' for stdin. Can be specified multiple times
-p, --profile <NAME>
Configuration profile name [default: default]
--output <OUTPUT>
Output format for structured output
[possible values: json]
--profile-path <PATH>
Path to a custom profile configuration file
--full-trace
Capture full-fidelity run records: redacted bodies for all exchanges, debug/trace internals, hook payload diffs, and `src` on every event. Also settable via `WXCTL_FULL_TRACE=1`
--no-update-check
Skip the background update check for this run. Also settable via `WXCTL_NO_UPDATE_CHECK=1` or `DO_NOT_TRACK=1`
--progress <MODE>
Progress rendering for apply/destroy/plan/test: auto (animate on a TTY, stream plain otherwise), tty (force the live region), plain (stream append-only lines, keeps scrollback usable), none (suppress progress). The panel draws to stderr; stdout stays clean for `--output json`. Also settable via `WXCTL_PROGRESS`
Possible values:
- auto: Animate a live region when stderr is a TTY; stream plain lines otherwise (also plain under `CI` or `TERM=dumb`). Default
- tty: Force the animated live region even under `CI` / `TERM=dumb` (still needs a color-capable stderr; `NO_COLOR` / `WXCTL_COLOR=never` disable it)
- plain: Stream plain append-only lines: no in-place repaint, so terminal scrollback stays usable during the run
- none: Suppress the progress panel entirely; only errors and the final result (via `main`) reach the terminal
-h, --help
Print help (see a summary with '-h')
wxctl resources
List the resource kinds wxctl supports
Usage: wxctl resources [OPTIONS]
Options:
-p, --profile <NAME>
Configuration profile name [default: default]
--service <NAME>
Show only kinds belonging to this service (e.g. watsonx_data)
--deployment <DEPLOYMENT>
Show only kinds available on this deployment
[possible values: saas, software]
--profile-path <PATH>
Path to a custom profile configuration file
--full-trace
Capture full-fidelity run records: redacted bodies for all exchanges, debug/trace internals, hook payload diffs, and `src` on every event. Also settable via `WXCTL_FULL_TRACE=1`
-o, --output <OUTPUT>
Output format
Possible values:
- table: The grouped panel catalog with full descriptions
- json
- yaml
- markdown
[default: table]
--no-update-check
Skip the background update check for this run. Also settable via `WXCTL_NO_UPDATE_CHECK=1` or `DO_NOT_TRACK=1`
--progress <MODE>
Progress rendering for apply/destroy/plan/test: auto (animate on a TTY, stream plain otherwise), tty (force the live region), plain (stream append-only lines, keeps scrollback usable), none (suppress progress). The panel draws to stderr; stdout stays clean for `--output json`. Also settable via `WXCTL_PROGRESS`
Possible values:
- auto: Animate a live region when stderr is a TTY; stream plain lines otherwise (also plain under `CI` or `TERM=dumb`). Default
- tty: Force the animated live region even under `CI` / `TERM=dumb` (still needs a color-capable stderr; `NO_COLOR` / `WXCTL_COLOR=never` disable it)
- plain: Stream plain append-only lines: no in-place repaint, so terminal scrollback stays usable during the run
- none: Suppress the progress panel entirely; only errors and the final result (via `main`) reach the terminal
-h, --help
Print help (see a summary with '-h')
Examples:
wxctl resources List all supported kinds
wxctl resources --service watsonx_data Filter to one service
wxctl resources --deployment software Kinds available on Software
wxctl resources -o json Machine-readable output
wxctl resources -o markdown Markdown table (coverage docs)
wxctl explain
Show one resource kind's fields, dependencies, and endpoints
Usage: wxctl explain [OPTIONS] [KIND]
Arguments:
[KIND]
Resource kind to describe (e.g. presto_engine, tool, agent). Omit to show the config model and the full kind list
Options:
-o, --output <OUTPUT>
Output format
Possible values:
- table: The grouped panel catalog with full descriptions
- json
- yaml
- markdown
[default: table]
-p, --profile <NAME>
Configuration profile name [default: default]
--profile-path <PATH>
Path to a custom profile configuration file
--full-trace
Capture full-fidelity run records: redacted bodies for all exchanges, debug/trace internals, hook payload diffs, and `src` on every event. Also settable via `WXCTL_FULL_TRACE=1`
--no-update-check
Skip the background update check for this run. Also settable via `WXCTL_NO_UPDATE_CHECK=1` or `DO_NOT_TRACK=1`
--progress <MODE>
Progress rendering for apply/destroy/plan/test: auto (animate on a TTY, stream plain otherwise), tty (force the live region), plain (stream append-only lines, keeps scrollback usable), none (suppress progress). The panel draws to stderr; stdout stays clean for `--output json`. Also settable via `WXCTL_PROGRESS`
Possible values:
- auto: Animate a live region when stderr is a TTY; stream plain lines otherwise (also plain under `CI` or `TERM=dumb`). Default
- tty: Force the animated live region even under `CI` / `TERM=dumb` (still needs a color-capable stderr; `NO_COLOR` / `WXCTL_COLOR=never` disable it)
- plain: Stream plain append-only lines: no in-place repaint, so terminal scrollback stays usable during the run
- none: Suppress the progress panel entirely; only errors and the final result (via `main`) reach the terminal
-h, --help
Print help (see a summary with '-h')
Examples:
wxctl explain The config model + all resource kinds
wxctl explain presto_engine Fields + dependencies for a kind
wxctl explain presto_engine -o json Full descriptor as JSON
wxctl explain tool -o yaml Full descriptor as YAML
Exit codes
wxctl returns a predictable exit code so scripts and agents can gate on it.
| Code | Meaning |
|---|---|
0 | Success. plan returns 0 for any valid plan, including one with pending changes. |
1 | Error: a validation failure, a failed apply/destroy/test, or a discovery error. In --output json mode the JSON document is still written to stdout first. |
2 | Usage error: an unknown flag, a missing required argument, or an invalid --output value. |
101 | Internal error (panic). Re-run with --full-trace and inspect the run record. |
130 | Interrupted (SIGINT / Ctrl-C). apply and destroy catch the first Ctrl-C, cancel gracefully, and exit 1 instead. |
Other commands
wxctl also ships hidden subcommands used internally by LLM-driven configuration pipelines. They are not part of the supported user-facing surface and are omitted here.
