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.
- Host: GitHub
- URL: https://github.com/clidyn/climsight
- Owner: CliDyn
- License: bsd-3-clause
- Created: 2023-09-26T10:01:35.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2026-03-27T11:49:53.000Z (11 days ago)
- Last Synced: 2026-04-03T12:11:40.191Z (4 days ago)
- Topics: ai-for-climate, climate-assessments, climate-data, climate-services, large-language-models, llm
- Language: Python
- Homepage:
- Size: 24.4 MB
- Stars: 55
- Watchers: 4
- Forks: 17
- Open Issues: 13
- Releases: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
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.
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 installbefore starting the backend. If uvicorn is already running with--reload, the creation ofnode_modules/triggers a server restart, causing temporaryETIMEDOUTproxy 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
- Name: Climate Dynamics
- Login: CliDyn
- Email:
- Kind: organization
- Description: Climate Dynamics section of AWI
- Website: https://www.awi.de/en/science/climate-sciences/climate-dynamics.html
- Location: Germany
- Twitter:
- Company:
- Icon url: https://avatars.githubusercontent.com/u/168721011?v=4
- Repositories: 1
- Last ynced at: 2024-05-06T14:06:15.448Z
- Profile URL: https://github.com/CliDyn
GitHub Events
Total
- Release event: 1
- Delete event: 38
- Member event: 1
- Pull request event: 91
- Fork event: 6
- Issues event: 25
- Watch event: 21
- Issue comment event: 24
- Push event: 151
- Pull request review comment event: 1
- Pull request review event: 40
- Create event: 50
Last Year
- Delete event: 12
- Pull request event: 35
- Fork event: 3
- Issues event: 5
- Watch event: 14
- Issue comment event: 5
- Push event: 58
- Pull request review comment event: 1
- Pull request review event: 17
- Create event: 19
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 | 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
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
- Total packages: 3
-
Total downloads:
- pypi: 15 last-month
- Total dependent packages: 0 (may contain duplicates)
- Total dependent repositories: 0 (may contain duplicates)
- Total versions: 7
- Total maintainers: 1
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
- mambaorg/micromamba latest build
- actions/checkout v4 composite
- actions/setup-python v4 composite
- dask *
- folium *
- geopandas *
- geopy *
- langchain *
- matplotlib *
- netcdf4 *
- openai ==1.5.0
- pandas *
- pip *
- pyproj *
- requests *
- streamlit *
- streamlit-folium *
- xarray *
- actions/checkout v4 composite
- actions/setup-python v4 composite
- dask
- folium
- geopandas
- geopy
- langchain
- matplotlib
- netcdf4
- pandas
- pip
- pyproj
- python 3.10.*
- requests
- streamlit
- streamlit-folium
- xarray
- sphinx ==7.1.2
- sphinx-rtd-theme ==1.3.0rc1
- 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