ECMWF (``ECMWF``) ================= **Upstream:** **ECMWF open data** (IFS, AIFS deterministic and ensemble) via the `ecmwf-opendata `_ Python client. Coldcast uses the **00 UTC** cycle only after applying delay and reference time (see README / model settings). **Transport:** :func:`coldcast.sources.ecmwf_nwp.download` uses ``ecmwf.opendata.Client`` with threading; not the generic HTTP downloader. **Auth:** Follow ECMWF’s current open-data policy; defaults typically use public endpoints. **CLI:** ``coldcast download ecmwf`` (aliases: ``ecmwf_nwp``, ``ECMWF_NWP``) with ``--model`` selecting the product (e.g. ``IFS_DET``, ``ERA5``, ``ERA5_LAND``). **Settings:** YAML block ``ECMWF`` with ``default_model`` and one nested mapping per product. Open-data forecasts (IFS, AIFS, …) use keys such as ``ecmwf_model``, ``stream``, ensemble options, ``lead_time``, ``delay``, ``parameters``. CDS reanalysis products ``ERA5`` and ``ERA5_LAND`` use the fields documented under :doc:`era5` and :doc:`era5_land`. A legacy top-level key ``ECMWF_NWP`` with the same structure is still accepted. Optional ``clip_to_bbox`` / ``clip_bbox`` on forecast products are **reserved** / documentation-only until integrated with GRIB post-processing—they are **not** passed through to ``ecmwf.opendata`` downloads today. **Shared clip presets:** Bundled YAML uses anchors so multiple models can reuse the same ``clip_bbox`` mapping without repeating it verbatim. **Code:** :mod:`coldcast.sources.ecmwf_nwp`