Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

ai-almanac

Assess AI weather models, blend them, and forecast the weather events people plan around — starting with the onset of the rainy season.

Pick a region, compare how well AI and conventional weather models have predicted monsoon onset there, combine the best of them into a blended forecast, and run that blend live for the current season. A built-in assistant can set up each step for you from a plain-language request.

Try it without installing: ai-almanac.org is the hosted version. Browse example results without an account, or sign in to run your own.

To run it on your own machine, with your own data:

uv tool install ai-almanac   # or `pipx install ai-almanac`
ai-almanac serve             # opens http://localhost:8765 in your browser

What you can do

  • Benchmarks — score one or more models against observations for a region and season. Results are per-grid-point skill maps (false alarm rate, miss rate, and onset error in days), lead-time skill curves, and, for ensemble models, probabilistic scores (Brier, RPS, AUC, reliability). Limit scoring to an area of interest by drawing a box or picking administrative areas.
  • Blends — train a weighted combination of several models on past seasons, check its skill on held-out years, and download the trained weights and scores.
  • Forecasts — run a trained blend's AI models forward from today's GFS or IFS analysis and map the blended probability of onset across the region.
  • Assistant — describe what you want ("which models best predict Kiremt onset in Ethiopia?") and the assistant fills in the benchmark or blend setup, explains results, and digs into failed runs. Nothing is submitted without your approval.
  • Almanac — reference pages on AI weather model families, architectures, and observation datasets, plus a glossary.

Ethiopia (Kiremt) and India (monsoon onset) are built-in regions; you can add your own.


Install

uv tool install ai-almanac   # recommended: an isolated, managed environment
pipx install ai-almanac      # equivalent
pip install ai-almanac       # into the current environment

AI Almanac supports Linux and Apple Silicon macOS, with Python 3.12 or newer. It is in early development, so releases are published as pre-releases (0.1.0a1, …); the commands above install the latest one.

Workload environments

Benchmarks, blends, and forecasts each need a scientific Python stack that is kept apart from the app. Pixi installs and manages them:

curl -fsSL https://pixi.sh/install.sh | bash   # one-time
ai-almanac env prepare                         # a few minutes the first time
Workflow Runs on
Benchmarks Linux or Apple Silicon macOS, CPU only
Blends Linux or Apple Silicon macOS, CPU only
Forecasts Linux with an NVIDIA GPU (CUDA); model weights download on first run

On macOS, env prepare skips the forecast environment. Re-run it after upgrading AI Almanac to pick up new pinned versions.


Getting started

  1. Add data. Open Data and register an observation dataset and one or more model forecast datasets. Each is a pointer to a local directory or a gs:// prefix of NetCDF files. AI Almanac checks the files and variable before saving and never modifies them. A fresh install has no datasets.
  2. Run a benchmark. Open Benchmarks, describe it to the assistant or choose Manual configuration, and submit.
  3. Train a blend from the models you benchmarked, then run a forecast from it.

Runs continue in the background: closing or restarting ai-almanac serve does not stop them, and the app reconnects to them when it starts again. Cancel a run from its results page.

Setting up the assistant

The assistant needs an LLM. Point it at any OpenAI-compatible endpoint with environment variables:

export LLM_BASE_URL=https://api.openai.com/v1
export LLM_MODEL=gpt-5
export LLM_API_KEY=sk-...
ai-almanac serve

Local servers (Ollama, vLLM, LM Studio) work the same way; leave LLM_API_KEY unset if the server doesn't check it. The same keys, lowercased (llm_base_url, …), can live in config.yaml in the data directory instead. Without an LLM, every workflow still works through manual configuration.


Usage

ai-almanac serve                 # 127.0.0.1:8765, opens a browser tab
ai-almanac serve --port 9000     # alternate port
ai-almanac serve --no-open       # don't open a browser tab
ai-almanac env prepare           # install or update workload environments
ai-almanac env info              # show benchmark package versions
ai-almanac db upgrade            # apply database migrations (serve does this too)
ai-almanac reset --confirm       # delete everything in the data directory
ai-almanac version

ai-almanac serve only listens on the loopback interface: it is a single-user app with no sign-in. To share an installation with a team, see Running for a team.

Where data lives

Everything goes under $AI_ALMANAC_DATA_DIR, defaulting to ~/.local/share/ai-almanac/ on Linux and ~/Library/Application Support/ai-almanac/ on macOS.

$AI_ALMANAC_DATA_DIR/
├── almanac.db       ← SQLite database
├── config.yaml      ← optional settings file
├── jobs/<job_id>/   ← run logs, NetCDF outputs, figures
├── cache/           ← blend intermediates, cached forecast rollouts
├── benchmark-env/   ← workload environments (from `env prepare`)
├── blending-env/
└── forecast-env/    ← Linux only

Registered datasets stay where they are; only pointers to them are stored. Set AI_ALMANAC_DATA_DIR=/some/path to keep a separate instance. Don't point two running instances at the same data directory.


Running for a team

The installed ai-almanac serve is single-user; never expose it to untrusted users. To give a team its own installation, run AI Almanac in shared mode: multiple signed-in users, PostgreSQL, per-user ownership, admin roles, and optional GCS storage and Modal-hosted runs.

Shared mode runs as Docker containers built from this repository, so it starts from a clone (with Docker and Pixi) rather than the PyPI package:

git clone https://github.com/AI-Almanac/ai-almanac.git && cd ai-almanac
pixi run self-host-local   # try the full shared stack locally

The deployment guide covers configuration and running it on a real host.


Development

Install Pixi and run:

pixi run dev

This starts the API with auto-reload on http://localhost:8765 and the web UI with hot reload on http://localhost:5173. See DEVELOPMENT.md and CONTRIBUTING.md.


License

MIT

Metadata

Release files for ai-almanac 0.1.0a2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ai-almanac 0.1.0a2
File Size Uploaded Provenance Actions
ai_almanac-0.1.0a2.tar.gz 1.3 MB With provenance Details for ai_almanac-0.1.0a2.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for ai-almanac 0.1.0a2
File Interpreter ABI Platform Actions
ai_almanac-0.1.0a2-py3-none-any.whl Python 3 none any Details for ai_almanac-0.1.0a2-py3-none-any.whl

Total release size: 2.7 MB

Release files / ai_almanac-0.1.0a2.tar.gz

Download URL ai_almanac-0.1.0a2.tar.gz
Size 1.3 MB
Tags Source
SHA-256 checksum
How to use checksums
d9c10371cc2bf6663a7f6af5105ba94c796eed6f65f3bacccd685a27b861a0b3
BLAKE2b-256 checksum
How to use checksums
ad7254b5caac6d48865c0ce5ed2b03135b6716e6c164181839f44c8f72cd0a66
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.

Transparency log

Release files / ai_almanac-0.1.0a2-py3-none-any.whl

Download URL ai_almanac-0.1.0a2-py3-none-any.whl
Size 1.4 MB
Tags Python 3
SHA-256 checksum
How to use checksums
58ebd77440ff1c9978fd3d98eb033aab5b49e1ce01ffa4347fa044824dbb405e
BLAKE2b-256 checksum
How to use checksums
9a60bfbbfcd6e71cf9988af9895a1cff30ef37df367cb2536c30d1d705eeb8fe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.

Transparency log

Security for ai-almanac 0.1.0a2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for ai_almanac-0.1.0a2.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page