ai-models runs pretrained weather models, and ECMWF has archived it
Run AI-based weather forecasting models with ECMWF data
At a glance
- What is it?
- ai-models is a command line tool that runs pretrained AI weather forecasting models against ECMWF data, with plugins for PanguWeather, FourCastNet, FourCastNet v2 and GraphCast. The documentation marks it as archived and not for operational use, which is the first fact to weigh before installing it.
- Who is it for?
- ai-models suits a researcher who wants to reproduce an AI weather forecast from published model checkpoints against ECMWF initial conditions, and who is comfortable with a package the maintainers have declared archived. It is the wrong choice for any operational forecasting, since the documentation states the project is no longer actively maintained or developed and should not be used for active operational purposes.
- Can I use it commercially?
- Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 78 days ago.
- What is it written in?
- Mainly Python, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.
Editorial analysis
The archived banner comes before the feature list
The first substantive thing in the documentation is a disclaimer, and it is not a soft one. The project states that the software is Archived and subject to ECMWF's guidelines on Software Maturity, that it is no longer actively maintained or developed, that it will remain available for reference or historical purposes, and that it should NOT be used for any active operational purposes.
The repository carries an archived badge in its header, and the last push was on 2026-08-06 alongside release 0.7.5. The prior releases, 0.7.4 and 0.7.3, are dated 2024-12-09 and 2024-10-17, so there was a long gap that ended with one release in August 2026.
That combination, an archived status and a final release, is not the same as a project that stopped being useful. It means the code works and will keep working as it was, but nothing will be patched, no new model will be plugged in, and no upstream change in the ECMWF data services will be accommodated. Use it to reproduce a forecast or to study how these models are packaged. Do not build a service on it.
What follows in this article describes what the tool does, because understanding the packaging is useful even for a historical or research purpose.
A command and a set of plugins, one per model
The architecture is deliberately thin. ai-models is a command line tool, and the models themselves are installed independently as separate plugin packages. The command name is ai-models, and it runs one model per invocation with a model name argument.
Four models are currently available as installable plugins:
pip install ai-models-panguweather
pip install ai-models-fourcastnet
pip install ai-models-graphcast # Install details at https://github.com/ecmwf-lab/ai-models-graphcast
pip install ai-models-fourcastnetv2Each plugin is its own repository with its own details, and the tool links out to them. The base package is installed separately:
pip install ai-modelsThat split is the key design decision. The base package handles input data retrieval, asset management and output formatting, and it knows nothing about the architecture of any particular network. A plugin knows the checkpoint format, the required input fields and the inference wrapper for one model. Adding a fifth model means writing a plugin, not modifying the core.
The dependency list explains where the heavy lifting happens. earthkit-data and earthkit-meteo and earthkit-regrid handle data access, regridding and meteo processing, eccodes handles GRIB decoding, ecmwf-api-client and cdsapi cover the two online data services, and gputil is there to inspect the local GPU. numpy is pinned below 2, and the classifiers mark the project as Development Status :: 4 - Beta with Python 3.9 through 3.11 declared.
The default run is a 10-day forecast from yesterday's 12Z analysis
Running a model is one command with a model name:
ai-models <model-name>The defaults matter more than usual here. By default the model runs for a 10-day lead time, which the documentation puts at 240 hours, using yesterday's 12Z analysis from ECMWF's MARS archive. The 12Z analysis is the midday UTC analysis cycle, the closest thing weather centres have to the current best estimate of the atmospheric state, and it is the standard starting point for a forecast.
To extend the horizon you pass the lead time in hours:
ai-models --lead-time 360 <model-name>which gives a 15-day forecast. Other defaults are adjustable through the command line options described in the documentation.
Output goes to GRIB by default, in a file named after the model, so a run of the fourcastnet model produces fourcastnet.grib. The model code is ONNX based, and the tool runs the inference through the ONNX runtime, which is why the CUDA configuration matters so much to performance.
Input data from MARS, the CDS, or a GRIB file you already have
Initial conditions can come from three places, and the choice is a command line flag.
The default is MARS, yesterday's 12Z analysis fetched from the Centre's MARS archive using the ECMWF WebAPI, which requires an ECMWF account. You can move the cycle with the date and time options:
ai-models --date YYYYMMDD --time HHMM <model-name>The second source is the Copernicus Climate Data Store and ERA5 reanalysis. You add --input cds, and because ERA5 is added to the CDS with a delay you also have to supply an explicit date:
ai-models --input cds --date 20230110 --time 0000 <model-name>The third source is a file you already have. If your input data is in GRIB format you point at it with --file, and the documentation makes a helpful point: the file can contain more fields than the model requires, because the tool selects the necessary fields automatically.
That last capability matters for anyone working with their own data rather than official analyses. The same command lists which fields a specific model needs:
ai-models --fields <model-name>The three-source design is the practical difference between a research tool and a demo. Official analyses give you a consistent starting point, ERA5 lets you run historical cases, and the GRIB path lets you feed in perturbed or synthetic initial states, which is how you would do an ensemble or a stability study.
Assets are downloaded on first run and cached where you point
The models rely on weights and other assets created during training, and the first time you run a model those have to be downloaded.
There is an explicit command for that:
ai-models --download-assets <model-name>Assets are stored in the current directory by default, and you can choose somewhere else:
ai-models --download-assets --assets <some-directory> <model-name>Afterwards the same directory is reused on later runs:
ai-models --assets <some-directory> <model-name>or you can export an environment variable, which is the option to prefer in a script or a batch system:
export AI_MODELS_ASSETS=<some-directory>
ai-models <model-name>For tidier layouts there is an --assets-sub-directory option that stores each model's assets in its own subdirectory inside the assets directory. That matters more than it sounds: if you switch between models on the same machine and they share one flat directory, the file names can collide.
The asset step is also where the licensing question surfaces in practice. Some model weights are published under CC-BY-NC-SA 4.0, which the documentation notes does not allow commercial use, and the tool links out to each model's home page so you can check the licence that applies to the specific weights you are downloading.
A GPU turns a multi-hour run into a one-minute run
The performance guidance is blunt. The models can run on a CPU, but they perform significantly better on a GPU, and a 10-day forecast can take several hours on a CPU against around one minute on a modern GPU. The documentation strongly recommends running on a machine equipped with a GPU.
The failure mode when that is not the case is a specific ONNX runtime warning saying the CUDA execution provider could not be created, pointing at the ONNX runtime requirements page for the CUDA execution provider. The suggested fix is to install the package into a conda environment and install the CUDA libraries there:
conda create -n ai-models python=3.10
conda activate ai-models
conda install cudatoolkit
pip install ai-modelsThe stated prerequisites are Python 3.10, noting it may work with other versions but has been tested with 3.10 on Linux and MacOS, an ECMWF and/or CDS account for input data, and a computer with a GPU for optimal performance, which is strongly recommended.
The requirement list mixes a version, an account and a piece of hardware, and all three are genuinely needed. A CPU run is possible but slow enough that it changes how you use the tool, and the data accounts are not optional because both MARS and the CDS sit behind logins.
Apache 2.0 for the code, variable terms for the weights
The licence of the code itself is clear. The pyproject.toml header states that the software is licensed under the terms of the Apache Licence Version 2.0, and adds a note specific to ECMWF's status as an intergovernmental organisation: in applying that licence, ECMWF does not waive the privileges and immunities granted to it by virtue of that status nor submit to any jurisdiction. The package metadata declares the licence from the LICENSE file, and the classifiers list the Apache Software License.
The weights are a different matter, and the documentation is explicit that although the ai-models source code and its plugins are available under open source licences, some model weights may be available under a different licence, with CC-BY-NC-SA 4.0 named as an example because it does not allow commercial use. The instruction is to check the licence associated with each model on its main home page, which is linked from each plugin.
Practically, that means the licensing question does not resolve once. It resolves per model, and a non-commercial licence on the weights propagates into whatever you do with the forecast output if that output counts as a derived work in your usage. If you are evaluating this for anything commercial, read the weight licence for the specific checkpoint before you download it.
The repository also carries CITATION.cff for citation metadata, a pre-commit configuration, and the usual ECMWF publishing layout with src, tests and a pyproject.toml built on setuptools and setuptools-scm.
Editorial conclusion
ai-models suits a researcher who wants to reproduce an AI weather forecast from published model checkpoints against ECMWF initial conditions, and who is comfortable with a package the maintainers have declared archived. It is the wrong choice for any operational forecasting, since the documentation states the project is no longer actively maintained or developed and should not be used for active operational purposes. Before installing anything, check the licence of the specific model weights you intend to use, because the plugins are open source while some weights are published under CC-BY-NC-SA 4.0, which forbids commercial use.
Frequently asked questions
Is the ECMWF ai-models package still maintained?
No. The documentation states that the software is Archived, that the project is no longer actively maintained or developed, and that it should NOT be used for any active operational purposes. It remains available for reference or historical purposes, and the last push was on 2026-08-06 with release 0.7.5.
Which AI weather models can I run with the ai-models command?
Four models are available as separate plugin packages: ai-models-panguweather, ai-models-fourcastnet, ai-models-graphcast and ai-models-fourcastnetv2. The base package is installed with pip install ai-models and the models are installed independently.
Can I run ai-models without a GPU or without ECMWF data access?
The models can run on a CPU, but a 10-day forecast can take several hours on a CPU against around one minute on a modern GPU, and a GPU is strongly recommended. For data, you need an ECMWF account for MARS or a CDS account for ERA5, or you can supply your own GRIB file with the --file option.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/ecmwf-lab-ai-models)Was this useful?