Skip to content

Commit 2a2ab44

Browse files
authored
Merge branch 'main' into issue_242
2 parents ebd6de4 + a9ce43e commit 2a2ab44

30 files changed

+927
-149
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,3 +164,6 @@ cython_debug/
164164

165165
# VS Code
166166
.vscode/
167+
168+
# logs
169+
lightning_logs/

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,4 @@ serve-docs:
66
.PHONY: deploy-docs
77
deploy-docs:
88
uv run --group docs mkdocs build
9-
uv run --group docs modal deploy .github/deploy_docs.py
9+
uv run --group docs modal deploy .github/deploy_docs.py

README.md

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@
66
<em>The GenAI Forecasting Agent · LLMs × Time Series Foundation Models</em>
77
</div>
88
<div align="center">
9-
<a href="https://github.com/AzulGarza/TimeCopilot/actions/workflows/ci.yaml"><img src="https://github.com/AzulGarza/TimeCopilot/actions/workflows/ci.yaml/badge.svg?branch=main" alt="CI"></a>
9+
<a href="https://github.com/TimeCopilot/timecopilot/actions/workflows/ci.yaml"><img src="https://github.com/TimeCopilot/timecopilot/actions/workflows/ci.yaml/badge.svg?branch=main" alt="CI"></a>
1010
<a href="https://pypi.python.org/pypi/timecopilot"><img src="https://img.shields.io/pypi/v/timecopilot.svg" alt="PyPI"></a>
11-
<a href="https://github.com/AzulGarza/timecopilot"><img src="https://img.shields.io/pypi/pyversions/timecopilot.svg" alt="versions"></a>
12-
<a href="https://github.com/AzulGarza/timecopilot/blob/main/LICENSE"><img src="https://img.shields.io/github/license/azulgarza/timecopilot.svg" alt="license"></a>
11+
<a href="https://github.com/TimeCopilot/timecopilot"><img src="https://img.shields.io/pypi/pyversions/timecopilot.svg" alt="versions"></a>
12+
<a href="https://github.com/TimeCopilot/timecopilot/blob/main/LICENSE"><img src="https://img.shields.io/github/license/TimeCopilot/timecopilot.svg" alt="license"></a>
1313
<a href="https://discord.gg/7GEdHR6Pfg"><img src="https://img.shields.io/discord/1387291858513821776?label=discord" alt="Join Discord" /></a>
1414
</div>
1515

@@ -26,6 +26,20 @@ Developed with 💙 at [timecopilot.dev](https://timecopilot.dev/).
2626

2727
---
2828

29+
## 🚀 Key Capabilities
30+
31+
- **Unified Forecasting Layer**. Combines 30+ time-series foundation models (Chronos, Moirai, TimesFM, TimeGPT…) with LLM reasoning for automated model selection and explanation.
32+
33+
- **Natural-Language Forecasting**. Ask questions in plain English and get forecasts, analysis, validation, and model comparisons. No scripts, pipelines, or dashboards needed.
34+
35+
- **One-Line Forecasting**. Run end-to-end forecasts on any dataset in seconds with a single command (`uvx timecopilot forecast <url>`).
36+
37+
## 📰 News
38+
39+
- **#1 on the GIFT-Eval benchmark**. TimeCopilot reached the [top position](https://timecopilot.dev/experiments/gift-eval/) on the global GIFT-Eval benchmark above AWS, Salesforce, Google, IBM, and top universities.
40+
- **Accepted at NeurIPS (BERTs Workshop)**. Our [work on agentic forecasting](https://arxiv.org/pdf/2509.00616) was [accepted](https://berts-workshop.github.io/accepted-papers/) at NeurIPS 2025.
41+
- **New Manifesto: “Forecasting, the Agentic Way”.** Our [founding essay](https://timecopilot.dev/blog/forecasting-the-agentic-way/) on agentic forecasting, TSFMs, and the future of time series.
42+
2943
## How It Works
3044

3145
TimeCopilot is a generative agent that applies a systematic forecasting approach using large language models (LLMs) to:

docs/blog/.authors.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
authors:
2+
azulgarza:
3+
name: Azul Garza
4+
description: Co-Creator
5+
avatar: https://avatars.githubusercontent.com/u/10517170
6+
url: https://github.com/AzulGarza
7+
reneerosillo:
8+
name: Renee Rosillo
9+
description: Co-Creator
10+
avatar: https://media.licdn.com/dms/image/v2/D4E03AQGN9Z-UddZReg/profile-displayphoto-shrink_800_800/profile-displayphoto-shrink_800_800/0/1727908622546?e=1766016000&v=beta&t=zDLuE5S7jSlE_xDfQwPSTJnZjIi-BL_fzO44f8VnMkg
11+
url: https://www.linkedin.com/in/reneerosillo/

docs/blog/.meta.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
hide:
2+
- feedback

docs/blog/index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# Blog
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
---
2+
date: 2025-12-01
3+
authors:
4+
- azulgarza
5+
- reneerosillo
6+
categories:
7+
- General
8+
description: >
9+
We are thrilled to announce TimeCopilot
10+
title: Forecasting, the Agentic Way
11+
slug: forecasting-the-agentic-way
12+
---
13+
14+
15+
# Forecasting, the Agentic Way
16+
17+
TimeCopilot is open-source agentic forecasting with LLMs and the strongest time series models. We started TimeCopilot with a clear goal. We want to democratize time series forecasting and make it accessible not only to humans but to the next wave of automated agentic systems. Accurate, automated, and easy forecasts.
18+
19+
## We are all grounded by temporal data
20+
21+
In 2005, Steve Jobs [told the Stanford graduating class](https://www.youtube.com/watch?v=UF8uR6Z6KLc) that we can only connect the dots looking backwards. At a fundamental level, he named one of the forces that shapes how we live. He explained how we move through the world without knowing what our actions will create, and why trusting those actions matters when the outcome is uncertain. For professionals who work with forecasts every day, this is not an abstract idea. Our work supports planning, risk, demand, supply, energy, finance, operations, and more. And as Steve said, the success of our work depends on how well we use past outcomes in the form of time series data to see what the future might look like through the lens of our own context.
22+
23+
Daily forecasting work is not glamorous. It is the nitty-gritty of managing pipelines, models, baselines, assumptions, overrides, and schedules. It means moving between scripts, dashboards, notebooks, and model families. Many forecasters know that explaining a forecast often takes more time than producing one.
24+
25+
Why go to so much trouble to understand the future? As a field we know that [small shifts in starting conditions can create very different outcomes](https://en.wikipedia.org/wiki/Lorenz_system). And we know that uncertainty has structure. When we understand that structure, we make better decisions. There is satisfaction in taking something complex and turning it into a pattern we can recognize. In simple terms, we do it because we enjoy predicting the future. TimeCopilot is our rendition to the field. It reflects both technical progress and an ideal. We want to use all the technology we have to make better predictions.
26+
27+
## We believe the future opens up with LLMs
28+
29+
Forecasting has moved through several eras. Classical statistics. Probabilistic approaches. Deep learning. And now time series foundation models trained on large and diverse datasets. Each method brings value, but none solves the full problem. Different inputs and assumptions need different tools. Every forecaster knows: [no single model, no matter how powerful, can solve every problem](https://en.wikipedia.org/wiki/No_free_lunch_theorem). Forecasting fuel needs for a high tide water platform is not the same as forecasting train schedules for a small province in Germany. Our work as forecasters has always relied on understanding context and resetting the constraints that make specific pipelines work for specific use cases. But what if we had an automated helper that understood our particular needs? With the rise of agentic systems, we finally have an extra set of hands to take on the repetitive work we have to deal with every day.
30+
31+
As we see it, there’s a need to build a layer above all the foundation models and the systems that came before. A layer that knows when to use each method, how to combine them, and how to explain the reasoning behind a forecast.
32+
33+
TimeCopilot is that layer. It uses a wide set of time series foundation models and classical models and libraries. It applies LLMs to add context, constraints, and reasoning. It explains its assumptions in natural language. It updates forecasts as new information arrives. It lets people work through text while keeping the granularity that teams need of hand-tuning pipelines: a coordinated reasoning layer that uses many tools and adapts as context shifts.
34+
35+
With the dawn of large language models, it became evident that written word matters, and plain English may be the most natural interface for reasoning. Andrej Karpathy often notes that [language is becoming the new interface for software](https://x.com/karpathy/status/1617979122625712128?lang=en). Forecasting fits that idea. The work is built on uncertainty, intent, and assumptions. Text gives us a simple way to express that. Text translates our needs and helps us define the guardrails for our context. TimeCopilot is the agent for forecasting in the same way [Clay](https://www.clay.com/) helps marketing teams move faster and [Cursor](https://cursor.com/) helps engineering teams ship code with less friction.
36+
37+
## And so we asked ourselves a simple question: can we use agents for time series forecasting?
38+
39+
TimeCopilot began as a first principles question about forecasting and context. Early prototypes led to a research effort. Our early project attracted collaborators, engineers, and contributors who cared about the same ideas. In a short time, it has become a meaningful open source time series project. We have assembled [the largest unified collection](https://timecopilot.dev/model-hub/) of time series foundation models with more than 30 models across more than 7 families. We have shown practical examples of [agentic forecasting](https://timecopilot.dev/examples/llm-providers/). We reached the top position on the [GIFT Eval benchmark](https://timecopilot.dev/experiments/gift-eval/) above AWS, Salesforce, IBM, and top universities. We [published at NeurIPS](https://berts-workshop.github.io/accepted-papers/). We passed 12k downloads, 280 GitHub stars, and continue to grow a community around this work. Everything is open source and built with a scientific mindset.
40+
41+
We now have early support that helps us move quickly and work with organizations exploring where agentic forecasting can be useful.
42+
43+
We believe the next generation of forecasting will be grounded in data, expressed through text, orchestrated across many models, clear about uncertainty, and built in the open.
44+
45+
TimeCopilot is our next step towards that.
46+
47+
More soon.
48+
49+
Azul & Renée
50+

docs/changelogs/v0.0.10.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11

22
### Features
3-
* **TimeCopilotForecaster Class**: Introduced the `TimeCopilotForecaster` class to enhance forecasting capabilities. See [#48](https://github.com/AzulGarza/timecopilot/pull/48). Example:
3+
* **TimeCopilotForecaster Class**: Introduced the `TimeCopilotForecaster` class to enhance forecasting capabilities. See [#48](https://github.com/TimeCopilot/timecopilot/pull/48). Example:
44

55
```python
66
import pandas as pd
@@ -17,7 +17,7 @@ forecaster = TimeCopilotForecaster(models=[TimesFM(), SeasonalNaive()])
1717
fcsts_df = forecaster.forecast(df=df, h=12, freq="MS")
1818
```
1919

20-
* **Probabilistic Forecasts**: Added support for probabilistic forecasts in the forecaster class. See [#50](https://github.com/AzulGarza/timecopilot/pull/50). Example:
20+
* **Probabilistic Forecasts**: Added support for probabilistic forecasts in the forecaster class. See [#50](https://github.com/TimeCopilot/timecopilot/pull/50). Example:
2121

2222
```python
2323
import pandas as pd
@@ -46,12 +46,12 @@ fcsts_df_quantiles = forecaster.forecast(
4646
```
4747

4848
* **Integration with External Libraries**:
49-
- **timesfm**: Added Google's foundation model [TimesFM](https://github.com/google-research/timesfm). See [#55](https://github.com/AzulGarza/timecopilot/pull/55).
50-
- **chronos**: Added AWS AI Labs's foundation model [Chronos](https://arxiv.org/abs/2403.07815). See [#59](https://github.com/AzulGarza/timecopilot/pull/59).
51-
- **Prophet**: Added Facebook's [Prophet](https://facebook.github.io/prophet/) to available models. See [#61](https://github.com/AzulGarza/timecopilot/pull/61).
49+
- **timesfm**: Added Google's foundation model [TimesFM](https://github.com/google-research/timesfm). See [#55](https://github.com/TimeCopilot/timecopilot/pull/55).
50+
- **chronos**: Added AWS AI Labs's foundation model [Chronos](https://arxiv.org/abs/2403.07815). See [#59](https://github.com/TimeCopilot/timecopilot/pull/59).
51+
- **Prophet**: Added Facebook's [Prophet](https://facebook.github.io/prophet/) to available models. See [#61](https://github.com/TimeCopilot/timecopilot/pull/61).
5252

5353

54-
* **Multi-series Support**: Enhanced the agent to handle multiple time series. See [#64](https://github.com/AzulGarza/timecopilot/pull/64).
54+
* **Multi-series Support**: Enhanced the agent to handle multiple time series. See [#64](https://github.com/TimeCopilot/timecopilot/pull/64).
5555
- **Example**:
5656
```python
5757
from timecopilot import TimeCopilot
@@ -61,10 +61,10 @@ fcsts_df_quantiles = forecaster.forecast(
6161
tc.forecast(...)
6262
```
6363

64-
* **Agent Integration**: Utilized the TimeCopilotForecaster class within the agent. See [#65](https://github.com/AzulGarza/timecopilot/pull/65).
64+
* **Agent Integration**: Utilized the TimeCopilotForecaster class within the agent. See [#65](https://github.com/TimeCopilot/timecopilot/pull/65).
6565

6666
### Tests
67-
* **Basic Functionality Tests**: Added tests for basic functionality to ensure reliability. See [#43](https://github.com/AzulGarza/timecopilot/pull/43).
67+
* **Basic Functionality Tests**: Added tests for basic functionality to ensure reliability. See [#43](https://github.com/TimeCopilot/timecopilot/pull/43).
6868

6969
### Fixes
70-
* **CI Improvements**: Implemented a fix to cancel concurrent CI runs, optimizing the CI process. See [#63](https://github.com/AzulGarza/timecopilot/pull/63).
70+
* **CI Improvements**: Implemented a fix to cancel concurrent CI runs, optimizing the CI process. See [#63](https://github.com/TimeCopilot/timecopilot/pull/63).

docs/changelogs/v0.0.11.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
### Features
22

3-
* **TiRex Foundation Model**: Added the [TiRex](https://github.com/NX-AI/tirex) time series foundation model. See [#77](https://github.com/AzulGarza/timecopilot/pull/77). Example:
3+
* **TiRex Foundation Model**: Added the [TiRex](https://github.com/NX-AI/tirex) time series foundation model. See [#77](https://github.com/TimeCopilot/timecopilot/pull/77). Example:
44

55
```python
66
import pandas as pd
@@ -14,7 +14,7 @@ model = TiRex()
1414
fcst = model.forecast(df, h=12)
1515
```
1616

17-
* **Toto Model**: Added the [Toto](https://github.com/DataDog/toto) time series model. See [#78](https://github.com/AzulGarza/timecopilot/pull/78). Example:
17+
* **Toto Model**: Added the [Toto](https://github.com/DataDog/toto) time series model. See [#78](https://github.com/TimeCopilot/timecopilot/pull/78). Example:
1818

1919
```python
2020
import pandas as pd
@@ -28,7 +28,7 @@ model = Toto()
2828
fcst = model.forecast(df, h=12)
2929
```
3030

31-
* **Optional `freq` Parameter**: The `freq` parameter is now optional in all forecast and cross-validation methods. If not provided, frequency is inferred automatically from the data. See [#96](https://github.com/AzulGarza/timecopilot/pull/96). Example:
31+
* **Optional `freq` Parameter**: The `freq` parameter is now optional in all forecast and cross-validation methods. If not provided, frequency is inferred automatically from the data. See [#96](https://github.com/TimeCopilot/timecopilot/pull/96). Example:
3232

3333
```python
3434
import pandas as pd
@@ -43,11 +43,11 @@ model = SeasonalNaive()
4343
fcst = model.forecast(df, h=12)
4444
```
4545

46-
* **Improved Model Docstrings**: All foundational and statistical model constructors are now fully documented, with clear parameter explanations and references to official sources. See [#93](https://github.com/AzulGarza/timecopilot/pull/93) and [#94](https://github.com/AzulGarza/timecopilot/pull/94).
46+
* **Improved Model Docstrings**: All foundational and statistical model constructors are now fully documented, with clear parameter explanations and references to official sources. See [#93](https://github.com/TimeCopilot/timecopilot/pull/93) and [#94](https://github.com/TimeCopilot/timecopilot/pull/94).
4747

48-
* **Comprehensive Module Docstrings**: Added module-level docstrings to improve API documentation and usability. See [#82](https://github.com/AzulGarza/timecopilot/pull/82).
48+
* **Comprehensive Module Docstrings**: Added module-level docstrings to improve API documentation and usability. See [#82](https://github.com/TimeCopilot/timecopilot/pull/82).
4949

50-
* **TimeCopilotForecaster Documentation**: Documented the `TimeCopilotForecaster` class, including its constructor and methods, to clarify its unified, multi-model forecasting and cross-validation interface. See [#97](https://github.com/AzulGarza/timecopilot/pull/97). Example:
50+
* **TimeCopilotForecaster Documentation**: Documented the `TimeCopilotForecaster` class, including its constructor and methods, to clarify its unified, multi-model forecasting and cross-validation interface. See [#97](https://github.com/TimeCopilot/timecopilot/pull/97). Example:
5151

5252

5353
```python
@@ -75,15 +75,15 @@ cv_df = tcf.cross_validation(df=df, h=12)
7575
```
7676

7777
### Tests
78-
* **Parallel Test Execution**: Added `pytest-xdist` to enable running tests in parallel, speeding up CI and local test runs. See [#75](https://github.com/AzulGarza/timecopilot/pull/75).
78+
* **Parallel Test Execution**: Added `pytest-xdist` to enable running tests in parallel, speeding up CI and local test runs. See [#75](https://github.com/TimeCopilot/timecopilot/pull/75).
7979

8080
### Fixes
8181

82-
* **Documentation Improvements**: Enhanced documentation for all models and constructors, ensuring clarity and consistency across the codebase. See [#93](https://github.com/AzulGarza/timecopilot/pull/93), [#94](https://github.com/AzulGarza/timecopilot/pull/94), and [#82](https://github.com/AzulGarza/timecopilot/pull/82).
82+
* **Documentation Improvements**: Enhanced documentation for all models and constructors, ensuring clarity and consistency across the codebase. See [#93](https://github.com/TimeCopilot/timecopilot/pull/93), [#94](https://github.com/TimeCopilot/timecopilot/pull/94), and [#82](https://github.com/TimeCopilot/timecopilot/pull/82).
8383

84-
* **S3 Data Source**: All example and test data now use S3 URLs for consistency and reproducibility. See [#73](https://github.com/AzulGarza/timecopilot/pull/73).
84+
* **S3 Data Source**: All example and test data now use S3 URLs for consistency and reproducibility. See [#73](https://github.com/TimeCopilot/timecopilot/pull/73).
8585

8686

8787

8888

89-
**Full Changelog**: https://github.com/AzulGarza/timecopilot/compare/v0.0.10...v0.0.11
89+
**Full Changelog**: https://github.com/TimeCopilot/timecopilot/compare/v0.0.10...v0.0.11

0 commit comments

Comments
 (0)