Quick start
This is the fast path for someone who already knows what they want. New to the concepts? Take the guided tutorial instead — it teaches the why at each step.
The one-command path
Section titled “The one-command path”nwp-compose new --template bahamas-mpas-rap -o my_run.yamlnwp-compose run my_run.yamlnwp-compose run chains validate → generate → cylc install → cylc play, stops at the first
failure with a message that names the step, and prints the concrete Cylc workflow id it started
(for example my_run/run1) so you never have to guess it. Add --dry-run to stop after generate
and see exactly what it would run, or --dummy to exercise the graph without real binaries.
The explicit path (what run does for you)
Section titled “The explicit path (what run does for you)”If you prefer to drive each step yourself — or you want to understand what run wraps:
-
Scaffold a starter from the template gallery:
Terminal window nwp-compose new --template bahamas-mpas-rap -o my_run.yaml -
Validate the schema, the component graph, and the physics (CFL, decomposition):
Terminal window nwp-compose validate my_run.yaml # add --cylc to also run `cylc validate`A physically unsafe configuration (e.g. a CFL-violating time step) is blocked, not merely warned — see the warning catalog.
-
Generate the runnable bundle into
./out/:Terminal window nwp-compose generate my_run.yaml -o ./out/This writes
flow.cylc,manifest.json, the component task scripts, the runtime lib, and the rendered namelists. Use--dry-runto printflow.cylcto stdout and write nothing — the trust loop for the schema. -
Install with Cylc. This is the step that assigns the workflow id:
Terminal window cylc install ./out/# INSTALLED my_run/run1 from ./out ← "my_run/run1" is your <workflow_id> -
Play it:
Terminal window cylc play my_run/run1# exercise the graph without real binaries:cylc play --mode=dummy --main-loop dummy_bridge my_run/run1
See what changed, safely upgrade
Section titled “See what changed, safely upgrade”nwp-compose diff baseline.yaml tweaked.yaml # diff at the rendered flow.cylc levelnwp-compose migrate my_run.yaml # dry-run upgrade; --write to apply with a .bak- Tutorial: your first forecast — the guided version.
- The last mile: run & doctor — the full reference for these two commands.
- Interactive namelist configuration — tune parameters with units and validation, or bring your own namelist.