Climsight

A next-generation climate information system that uses large language models alongside high-resolution climate model data, scientific literature, and diverse databases to deliver accurate, localized, and context-aware climate assessments.
https://github.com/clidyn/climsight

Category: Climate Change
Sub Category: Climate Data Access and Visualization

Keywords

ai-for-climate climate-assessments climate-data climate-services large-language-models llm

Keywords from Contributors

ocean-model

Last synced: about 6 hours ago
JSON representation

Repository metadata

A next-generation climate information system that uses large language models (LLMs) alongside high-resolution climate model data, scientific literature, and diverse databases to deliver accurate, localized, and context-aware climate assessments.

README.md

ClimSight

ClimSight is an AI-powered climate decision-support system that combines Large Language Models with multi-source climate data to deliver localized, actionable insights. It serves researchers, policymakers, agricultural planners, urban developers, and anyone who needs to understand how climate change affects real-world decisions.

Image

What makes it different

  • Agentic AI pipeline — specialized agents (smart agent, data analysis agent, search agent) orchestrate data retrieval, code execution, and synthesis autonomously
  • Multi-source climate data — nextGEMS, ICCP, AWI-CM CMIP6, DestinE, and ERA5 reanalysis via Arraylake
  • RAG-augmented responses — retrieves context from IPCC reports and scientific literature
  • Interactive map-based interface — click anywhere on the globe and ask a climate question
  • Python REPL execution — the agent writes and runs analysis code in a sandboxed Jupyter kernel

Architecture

ClimSight has two interface modes:

React UI (new) Streamlit UI (legacy)
Frontend React + TypeScript + Tailwind CSS + Vite Streamlit
Backend FastAPI + WebSocket (real-time streaming) Streamlit server
Command uvicorn + npm run dev streamlit run

The React UI is the actively developed interface with real-time streaming, a dark/light theme toggle, and a modern component architecture. The Streamlit UI is kept for backwards compatibility.


Quick Start (React UI)

Prerequisites

  • Python 3.11+
  • Node.js 18+ and npm
  • An OpenAI API key (or other supported LLM provider)

1. Clone & set up the Python environment

git clone https://github.com/CliDyn/climsight.git
cd climsight

# Option A: conda/mamba (recommended)
mamba env create -f environment.yml
conda activate climsight

# Option B: pip + venv
python -m venv venv
source venv/bin/activate   # Windows: venv\Scripts\activate
pip install -r requirements.txt
pip install -r requirements-api.txt

2. Download the climate data

python download_data.py

# Optional: DestinE data (~12 GB)
python download_data.py DestinE

3. Configure API keys

Create a .env file in the repo root (or export the variables):

OPENAI_API_KEY="sk-..."

# Optional — enables ERA5 time series retrieval
ARRAYLAKE_API_KEY="your-arraylake-key"

4. Install frontend dependencies

cd frontend
npm install
cd ..

Important: Run npm install before starting the backend. If uvicorn is already running with --reload, the creation of node_modules/ triggers a server restart, causing temporary ETIMEDOUT proxy errors in the frontend.

5. Start the FastAPI backend

uvicorn api.main:app --host 0.0.0.0 --port 8000 --reload --reload-exclude 'frontend/node_modules/*'

The API runs on http://localhost:8000. Health check: GET /health.

6. Start the React frontend

cd frontend
npm run dev

Open http://localhost:5173 in your browser. The Vite dev server automatically proxies /api and /artifacts requests to the backend.


Running the Legacy Streamlit UI

If you prefer the original interface:

streamlit run src/climsight/climsight.py

Opens on http://localhost:8501.


Docker (Stable Release v1.0.0)

[!NOTE]
The Docker image ships the Streamlit UI (v1.0.0). The React UI is not yet containerized.

export OPENAI_API_KEY="sk-..."
docker pull koldunovn/climsight:stable
docker run -p 8501:8501 -e OPENAI_API_KEY=$OPENAI_API_KEY koldunovn/climsight:stable

Configuration

ClimSight reads config.yml from the working directory. Key settings:

llm_smart:
  model_type: "openai"
  model_name: "gpt-5.2"         # main reasoning model

use_smart_agent: true            # enable the agentic pipeline
use_era5_data: true              # ERA5 time series via Arraylake
use_powerful_data_analysis: true # agent writes & executes Python code

climate_data_source: "nextGEMS"  # nextGEMS | ICCP | AWI_CM | DestinE

See config.yml for the full reference (climate data sources, RAG settings, system prompts, etc.).


Project Structure

climsight/
├── api/                    # FastAPI backend
│   ├── main.py             #   app factory, CORS, static files
│   └── routes/             #   REST + WebSocket endpoints
├── frontend/               # React UI (Vite + Tailwind + TypeScript)
│   ├── src/
│   │   ├── App.tsx          #   main app shell
│   │   ├── components/      #   MapPanel, QueryForm, ReportView, SettingsPanel, StatusBar
│   │   └── api/             #   API client
│   ├── package.json
│   └── vite.config.ts
├── src/climsight/          # Core Python engine
│   ├── smart_agent.py      #   agentic orchestration (LangGraph)
│   ├── agent_helpers.py    #   tool definitions & agent utilities
│   ├── session_manager.py  #   per-session state & memory
│   └── tools/              #   ERA5 retrieval, reflection, REPL, search
├── data/                   # Climate datasets (downloaded via download_data.py)
├── rag_db/                 # ChromaDB vector stores for RAG
├── config.yml              # Main configuration
├── environment.yml         # Conda environment spec
├── requirements.txt        # Pip dependencies (core)
├── requirements-api.txt    # Pip dependencies (FastAPI backend)
└── pyproject.toml          # Package metadata

Batch Processing

The sequential/ directory contains tools for generating, validating, and processing climate questions in bulk. See sequential/README.md.


Citation

If you use or refer to ClimSight in your work, please cite:

Kuznetsov, I., Jost, A.A., Pantiukhin, D. et al. Transforming climate services with LLMs and multi-source data integration. npj Clim. Action 4, 97 (2025). https://doi.org/10.1038/s44168-025-00300-y

Koldunov, N., Jung, T. Local climate services for all, courtesy of large language models. Commun Earth Environ 5, 13 (2024). https://doi.org/10.1038/s43247-023-01199-1


Owner metadata


GitHub Events

Total
Last Year

Committers metadata

Last synced: 2 days ago

Total Commits: 398
Total Committers: 8
Avg Commits per committer: 49.75
Development Distribution Score (DDS): 0.394

Commits in past year: 108
Committers in past year: 4
Avg Commits per committer in past year: 27.0
Development Distribution Score (DDS) in past year: 0.222

Name Email Commits
Ivan Kuznetsov i****v@g****m 241
AntoniaJost a****t@w****e 95
dmpantiu d****a@g****m 28
Nikolay Koldunov k****n@g****m 27
Boris Shapkin s****s@g****m 4
Thomas Rackow t****w@a****e 1
Maciej Janicki m****i@c****i 1
Ismysh 1****h 1

Committer domains:


Issue and Pull Request metadata

Last synced: 11 days ago

Total issues: 43
Total pull requests: 178
Average time to close issues: about 2 months
Average time to close pull requests: 6 days
Total issue authors: 5
Total pull request authors: 7
Average comments per issue: 0.77
Average comments per pull request: 0.21
Merged pull request: 136
Bot issues: 0
Bot pull requests: 0

Past year issues: 4
Past year pull requests: 50
Past year average time to close issues: 15 days
Past year average time to close pull requests: 5 days
Past year issue authors: 3
Past year pull request authors: 4
Past year average comments per issue: 0.75
Past year average comments per pull request: 0.0
Past year merged pull request: 33
Past year bot issues: 0
Past year bot pull requests: 0

More stats: https://issues.ecosyste.ms/repositories/lookup?url=https://github.com/clidyn/climsight

Top Issue Authors

  • AntoniaJost (17)
  • kuivi (14)
  • koldunovn (10)
  • Dwonyy (1)
  • gaurrhea17 (1)

Top Pull Request Authors

  • kuivi (126)
  • AntoniaJost (36)
  • dmpantiu (5)
  • koldunovn (5)
  • maciejjan (3)
  • boryasbora (2)
  • valentinedwv (1)

Top Issue Labels

  • enhancement (6)
  • bug (3)
  • warning (3)
  • quick (2)
  • invalid (1)
  • longterm (1)
  • documentation (1)

Top Pull Request Labels

  • enhancement (11)
  • bug (4)
  • quick (2)
  • documentation (1)

Package metadata

proxy.golang.org: github.com/clidyn/climsight

  • Homepage:
  • Documentation: https://pkg.go.dev/github.com/clidyn/climsight#section-documentation
  • Licenses: bsd-3-clause
  • Latest release: v1.0.0 (published about 1 year ago)
  • Last Synced: 2026-04-05T08:10:41.451Z (2 days ago)
  • Versions: 2
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Rankings:
    • Dependent packages count: 5.401%
    • Average: 5.583%
    • Dependent repos count: 5.764%
proxy.golang.org: github.com/CliDyn/climsight

  • Homepage:
  • Documentation: https://pkg.go.dev/github.com/CliDyn/climsight#section-documentation
  • Licenses: bsd-3-clause
  • Latest release: v1.0.0 (published about 1 year ago)
  • Last Synced: 2026-04-05T08:10:41.807Z (2 days ago)
  • Versions: 2
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Rankings:
    • Dependent packages count: 5.401%
    • Average: 5.583%
    • Dependent repos count: 5.764%
pypi.org: climsight

A tool that combines LLMs with climate data to provide localized insights for decision-making in agriculture, urban planning, disaster management, and policy development.

  • Homepage:
  • Documentation: https://climsight.readthedocs.io/
  • Licenses: BSD-3-Clause
  • Latest release: 1.0.0 (published about 1 year ago)
  • Last Synced: 2026-04-05T08:10:40.185Z (2 days ago)
  • Versions: 3
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 15 Last month
  • Rankings:
    • Dependent packages count: 9.563%
    • Average: 36.328%
    • Dependent repos count: 63.094%
  • Maintainers (1)

Dependencies

Dockerfile docker
  • mambaorg/micromamba latest build
.github/workflows/python-package.yml actions
  • actions/checkout v4 composite
  • actions/setup-python v4 composite
pyproject.toml pypi
  • dask *
  • folium *
  • geopandas *
  • geopy *
  • langchain *
  • matplotlib *
  • netcdf4 *
  • openai ==1.5.0
  • pandas *
  • pip *
  • pyproj *
  • requests *
  • streamlit *
  • streamlit-folium *
  • xarray *
.github/workflows/pytest.yml actions
  • actions/checkout v4 composite
  • actions/setup-python v4 composite
environment.yml conda
  • dask
  • folium
  • geopandas
  • geopy
  • langchain
  • matplotlib
  • netcdf4
  • pandas
  • pip
  • pyproj
  • python 3.10.*
  • requests
  • streamlit
  • streamlit-folium
  • xarray
docs/requirements.txt pypi
  • sphinx ==7.1.2
  • sphinx-rtd-theme ==1.3.0rc1
requirements.txt pypi
  • bs4 *
  • dask *
  • folium *
  • geopandas *
  • geopy *
  • langchain *
  • langchain-chroma *
  • langchain-classic *
  • langchain-community *
  • langchain-core *
  • langchain-openai *
  • langchain-text-splitters *
  • langgraph *
  • matplotlib *
  • netcdf4 *
  • numpy *
  • openai *
  • osmnx *
  • pandas *
  • pip *
  • pydantic *
  • pyproj *
  • pytest *
  • pyyaml *
  • reportlab *
  • requests *
  • requests-mock *
  • scipy *
  • streamlit *
  • streamlit-folium *
  • wikipedia *
  • xarray *

Score: 9.071537969095724