These are the commands wxctl exposes. Each block is the live --help output for this build. The everyday workflow runs them in order: initvalidateplanapplytestdestroy.

Global flags

FlagDescription
-p, --profile <NAME>Configuration profile name (default default).
--profile-path <PATH>Path to a custom profile configuration file.
--full-traceCapture full-fidelity run records (also via WXCTL_FULL_TRACE=1).
All three are global and accepted on every command. -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.
CodeMeaning
0Success. plan returns 0 for any valid plan, including one with pending changes.
1Error: 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.
2Usage error: an unknown flag, a missing required argument, or an invalid --output value.
101Internal error (panic). Re-run with --full-trace and inspect the run record.
130Interrupted (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.