TiRex-2: A Zero-Shot Timeseries Forecasting Model
See the code[!NOTE] 🎉 News (Sep 2026): TiRex-2 has been accepted as an Oral presentation (0.36%) at NeurIPS 2026!
This repository provides the pre-trained multivariate forecasting model TiRex-2 introduced in the paper TiRex-2: Generalizing TiRex to Multivariate Data and Streaming.
TiRex-2 PRO: This repository is our open-source release. TiRex-2 PRO extends it with dedicated support, streaming, hardware-optimized inference (edge, embedded, and industrial PCs, among others), fine-tuning, and classification & regression support — see TiRex-2 PRO below or contact us at contact@nx-ai.com.
TiRex-2 is a pretrained time series foundation model that forecasts one or many target variates directly from their history, optionally conditioned on past and future-known covariates. A single checkpoint serves both univariate and multivariate forecasting, built on a recurrent architecture designed for efficient streaming settings — all zero-shot, with no task-specific training or fine-tuning.
TiRex-2 generalizes our original univariate model, TiRex, to multivariate forecasting with past and future covariates.
Zero-shot multivariate forecasting: TiRex-2 forecasts multiple target variates out of the box, without training or fine-tuning on your data.
Past and future-known covariates: TiRex-2 natively conditions on past covariates and future-known covariates, such as calendar features, holidays, promotions, or scheduled interventions.
Small active footprint: TiRex-2 activates 38.4M parameters in univariate mode and an additional 44.1M parameters for multivariate forecasting.
pip install tirex-2
Install with additional dependencies:
pip install "tirex-2[examples,fev,gluonts]"
The Python package installation is currently only tested on Linux and macOS. Docker usage is documented separately and includes Linux, macOS, and Windows Docker Desktop instructions.
We use Pixi for our development and benchmarking environment to ensure that it is set up correctly. Run the following command to install it on your machine (Linux/macOS):
# install Pixi
curl -fsSL https://pixi.sh/install.sh | sh
# install dependencies for TiRex-2
pixi install
Pixi selects a compatible platform automatically (PyTorch w/ CUDA 13.0 for Linux/Windows, PyTorch w/ default for macOS), or you can choose one explicitly, for example -p linux-64-cuda-126. Both environments and platforms are defined in
pyproject.toml.
With device="cuda", TiRex-2 builds its fused sLSTM kernel (FlashRNN) with nvcc on the first forecast. In order to run TiRex-2 on CUDA you need:
nvcc must be on PATH or reachable via CUDA_HOME.cu12x torch wheel, any 13.x toolkit for a cu13x one. Check with python -c "import torch; print(torch.version.cuda)".device="cuda"; use device="cpu" instead.where cl on Windows?PyTorch may compile model components at runtime, so the Python process needs access to the MSVC C++ compiler, even when using device="cpu".
Install Visual Studio Build Tools with Desktop development with C++, then run TiRex-2 from an x64 Native Tools Command Prompt for Visual Studio. Confirm the compiler is available before starting your script:
where cl
python your_script.py
Launch VS Code or Jupyter from the same prompt so it inherits the compiler environment. See #15 and #17 for related reports.
The most easy way for you to get started is by checking out our "Getting Started" notebook. Moreover, you can jump straight into testing out TiRex using Google Colab. If you have cloned this repository, you can also easily start the notebook via Pixi by running:
pixi run notebook
import torch
from tirex2 import TimeseriesType, load_model
from tirex2.plotting import plot_multivariate # requires matplotlib to be installed
# load model
model = load_model("NX-AI/TiRex-2", device="cpu") # use `device="cuda"` if cuda is available
# generate data - target expects time series of shape (n_targets, context_length)
context = torch.sin(torch.arange(128).float() / 8)
ts = TimeseriesType(target=context.unsqueeze(0), past_covariates=None, future_covariates=None)
# perform forecast - each forecast is of shape (n_targets, 9 quantiles, prediction_length)
forecast = model.forecast([ts], prediction_length=32, output_type="numpy")[0]
# visualize result
fig = plot_multivariate(ts, forecast, engine="matplotlib")
fig.show()

This example originates from the "Getting Started" notebook, showing the value of additional covariates.
from tirex2 import load_model
from tirex2.demo import Demo, plot_demo_forecast
# load model
model = load_model("NX-AI/TiRex-2", device="cpu") # use `device="cuda"` if cuda is available
# load data
demo = Demo.create_nonstationary_demo()
ts_univariate = demo.to_timeseries_type(include_covariates=False)
ts_multivariate = demo.to_timeseries_type(include_covariates=True)
# perform forecast - each forecast is of shape (n_targets, 9 quantiles, prediction_length)
forecasts = model.forecast(
timeseries=[ts_univariate, ts_multivariate],
prediction_length=demo.horizon,
output_type="numpy",
)
# visualize result
fig = plot_demo_forecast(demo, *forecasts, engine="matplotlib")
fig.show()

To reproduce our results for the GIFT-Eval and fev-bench leaderboards, follow the instructions in /examples/gifteval/ and /examples/fevbench/, respectively.
For detailed instructions on building and running TiRex-2 in a Docker container, see the Docker README.
TiRex-2 already provides state-of-the-art performance for zero-shot prediction, so you can use this open-source release without training on your own data.
TiRex-2 PRO extends this open-source release with:
See the full feature comparison in the docs, or contact us at contact@nx-ai.com.
If you use TiRex in your research, please cite our work:
@misc{podest2026tirex2generalizingtirexmultivariate,
title={TiRex-2: Generalizing TiRex to Multivariate Data and Streaming},
author={Patrick Podest and Marco Pichler and Elias Bürger and Levente Zólyomi and Bernhard Voggenberger and Wilhelm Berghammer and Daniel Klotz and Sebastian Böck and Günter Klambauer and Sepp Hochreiter},
year={2026},
eprint={2607.01204},
archivePrefix={arXiv},
primaryClass={cs.LG},
url={https://arxiv.org/abs/2607.01204},
}
TiRex-2 is licensed under the Apache License 2.0.
1,250 followers · starred Jul 2026
84 followers · starred Jul 2026
Python
100.0%
TiRex-2: A Zero-Shot Timeseries Forecasting Model
See the code[!NOTE] 🎉 News (Sep 2026): TiRex-2 has been accepted as an Oral presentation (0.36%) at NeurIPS 2026!
This repository provides the pre-trained multivariate forecasting model TiRex-2 introduced in the paper TiRex-2: Generalizing TiRex to Multivariate Data and Streaming.
TiRex-2 PRO: This repository is our open-source release. TiRex-2 PRO extends it with dedicated support, streaming, hardware-optimized inference (edge, embedded, and industrial PCs, among others), fine-tuning, and classification & regression support — see TiRex-2 PRO below or contact us at contact@nx-ai.com.
TiRex-2 is a pretrained time series foundation model that forecasts one or many target variates directly from their history, optionally conditioned on past and future-known covariates. A single checkpoint serves both univariate and multivariate forecasting, built on a recurrent architecture designed for efficient streaming settings — all zero-shot, with no task-specific training or fine-tuning.
TiRex-2 generalizes our original univariate model, TiRex, to multivariate forecasting with past and future covariates.
Zero-shot multivariate forecasting: TiRex-2 forecasts multiple target variates out of the box, without training or fine-tuning on your data.
Past and future-known covariates: TiRex-2 natively conditions on past covariates and future-known covariates, such as calendar features, holidays, promotions, or scheduled interventions.
Small active footprint: TiRex-2 activates 38.4M parameters in univariate mode and an additional 44.1M parameters for multivariate forecasting.
pip install tirex-2
Install with additional dependencies:
pip install "tirex-2[examples,fev,gluonts]"
The Python package installation is currently only tested on Linux and macOS. Docker usage is documented separately and includes Linux, macOS, and Windows Docker Desktop instructions.
We use Pixi for our development and benchmarking environment to ensure that it is set up correctly. Run the following command to install it on your machine (Linux/macOS):
# install Pixi
curl -fsSL https://pixi.sh/install.sh | sh
# install dependencies for TiRex-2
pixi install
Pixi selects a compatible platform automatically (PyTorch w/ CUDA 13.0 for Linux/Windows, PyTorch w/ default for macOS), or you can choose one explicitly, for example -p linux-64-cuda-126. Both environments and platforms are defined in
pyproject.toml.
With device="cuda", TiRex-2 builds its fused sLSTM kernel (FlashRNN) with nvcc on the first forecast. In order to run TiRex-2 on CUDA you need:
nvcc must be on PATH or reachable via CUDA_HOME.cu12x torch wheel, any 13.x toolkit for a cu13x one. Check with python -c "import torch; print(torch.version.cuda)".device="cuda"; use device="cpu" instead.where cl on Windows?PyTorch may compile model components at runtime, so the Python process needs access to the MSVC C++ compiler, even when using device="cpu".
Install Visual Studio Build Tools with Desktop development with C++, then run TiRex-2 from an x64 Native Tools Command Prompt for Visual Studio. Confirm the compiler is available before starting your script:
where cl
python your_script.py
Launch VS Code or Jupyter from the same prompt so it inherits the compiler environment. See #15 and #17 for related reports.
The most easy way for you to get started is by checking out our "Getting Started" notebook. Moreover, you can jump straight into testing out TiRex using Google Colab. If you have cloned this repository, you can also easily start the notebook via Pixi by running:
pixi run notebook
import torch
from tirex2 import TimeseriesType, load_model
from tirex2.plotting import plot_multivariate # requires matplotlib to be installed
# load model
model = load_model("NX-AI/TiRex-2", device="cpu") # use `device="cuda"` if cuda is available
# generate data - target expects time series of shape (n_targets, context_length)
context = torch.sin(torch.arange(128).float() / 8)
ts = TimeseriesType(target=context.unsqueeze(0), past_covariates=None, future_covariates=None)
# perform forecast - each forecast is of shape (n_targets, 9 quantiles, prediction_length)
forecast = model.forecast([ts], prediction_length=32, output_type="numpy")[0]
# visualize result
fig = plot_multivariate(ts, forecast, engine="matplotlib")
fig.show()

This example originates from the "Getting Started" notebook, showing the value of additional covariates.
from tirex2 import load_model
from tirex2.demo import Demo, plot_demo_forecast
# load model
model = load_model("NX-AI/TiRex-2", device="cpu") # use `device="cuda"` if cuda is available
# load data
demo = Demo.create_nonstationary_demo()
ts_univariate = demo.to_timeseries_type(include_covariates=False)
ts_multivariate = demo.to_timeseries_type(include_covariates=True)
# perform forecast - each forecast is of shape (n_targets, 9 quantiles, prediction_length)
forecasts = model.forecast(
timeseries=[ts_univariate, ts_multivariate],
prediction_length=demo.horizon,
output_type="numpy",
)
# visualize result
fig = plot_demo_forecast(demo, *forecasts, engine="matplotlib")
fig.show()

To reproduce our results for the GIFT-Eval and fev-bench leaderboards, follow the instructions in /examples/gifteval/ and /examples/fevbench/, respectively.
For detailed instructions on building and running TiRex-2 in a Docker container, see the Docker README.
TiRex-2 already provides state-of-the-art performance for zero-shot prediction, so you can use this open-source release without training on your own data.
TiRex-2 PRO extends this open-source release with:
See the full feature comparison in the docs, or contact us at contact@nx-ai.com.
If you use TiRex in your research, please cite our work:
@misc{podest2026tirex2generalizingtirexmultivariate,
title={TiRex-2: Generalizing TiRex to Multivariate Data and Streaming},
author={Patrick Podest and Marco Pichler and Elias Bürger and Levente Zólyomi and Bernhard Voggenberger and Wilhelm Berghammer and Daniel Klotz and Sebastian Böck and Günter Klambauer and Sepp Hochreiter},
year={2026},
eprint={2607.01204},
archivePrefix={arXiv},
primaryClass={cs.LG},
url={https://arxiv.org/abs/2607.01204},
}
TiRex-2 is licensed under the Apache License 2.0.
1,250 followers · starred Jul 2026
84 followers · starred Jul 2026
Python
100.0%