This walkthrough assumes you have built wxctl and configured a profile — see Installation.

Declare resources

Resources are declared in YAML. Each has a kind and a ref_name. Multiple resources go in one file separated by ---.
kind: tool
ref_name: calculator
name: calculator
display_name: Calculator
description: A calculator tool
source_path: ./calculator
binding:
  python:
    function: calculator:main
---
kind: agent
ref_name: math_agent
name: math_agent
display_name: Math Agent
description: An agent that does math
llm: virtual-model/openai/bob-premium
style: default
tools:
  - ${tool.calculator}

Reference resources across services

Resources reference each other with ${kind.ref_name}. wxctl builds a DAG from these references, creates resources in dependency order, and resolves each reference into whatever format the target API expects — UUID, GUID, href, or nested object.
SyntaxResolves to
${kind.ref_name}The resource ID after creation
${kind.ref_name.field}A specific field from the created resource

Run

wxctl plan -f config.yaml      # dry-run — show what would change
wxctl apply -f config.yaml     # validate, plan, and execute
-f accepts files, directories, or - for stdin, and is repeatable:
wxctl apply -f base.yaml -f overrides/        # file + directory
cat extras.yaml | wxctl apply -f base.yaml -f -   # mixed with stdin

Core commands

CommandDescription
wxctl init [-f <file>] [--template]Configure service URLs, auth, and credentials
wxctl validate -f <file>Check configs against schemas
wxctl plan -f <file>Dry-run — show what would change
wxctl apply -f <file>Validate, plan, and execute
wxctl test -f <file>Run tests against deployed resources
wxctl destroy -f <file>Tear down the resources in a config
wxctl resourcesList the resource kinds wxctl supports
wxctl explain <kind>Show a kind’s fields, dependencies, and endpoints
Global flags: -p, --profile <name> selects a profile; --profile-path <path> uses a custom config file. -f, --filename is repeatable.

Supported resources

The goal is to manage the full IBM product portfolio declaratively. The kinds below are what’s supported today — coverage is expanding across IBM’s catalog.
Product / serviceResource kinds
watsonx Orchestrateagent, tool, toolkit, knowledge_base, model, orchestrate_connection
watsonx.aiai_service, wml_deployment, wml_function, wml_script
watsonx.data — enginespresto_engine, prestissimo_engine, db2_engine, spark_engine, milvus_service, other_engine
watsonx.data — datastorage_registration, database_registration, database_connection, schema, ingestion_job
watsonx.data — governance & SALcategory, business_term, business_terms, rule, rules, integration, sal_integration, sal_global_settings, sal_enrichment_settings, sal_enrichment_job, sal_glossary
watsonx.governance — OpenScaledata_mart, data_set, service_provider, subscription, monitor_definition, monitor_instance, integrated_system, guardrails_policy
watsonx.governance — AI Factsheetsmodel_entry, inventory
IBM Cloud Object Storages3_bucket, s3_object, adls_container, gcs_bucket, storage_connection
Cloud Pak for Data — Data & AI common corespace, project, catalog, common_core_connection, software_specification, package_extension
Localpython_script
Run wxctl resources for the full, current list, or wxctl explain <kind> to see one kind’s fields.