Claude
Skills
Sign in
Back

pp-open-meteo

Included with Lifetime
$97 forever

Every Open-Meteo endpoint family in one CLI — forecast, archive, marine, air quality, flood, climate, ensemble, seasonal, geocoding, elevation. Trigger phrases: `what's the weather in`, `forecast for`, `is it going to rain`, `marine forecast`, `air quality in`, `historical weather`, `climate normal`, `use open-meteo`, `run open-meteo`.

General

What this skill does

<!-- GENERATED FILE — DO NOT EDIT.
     This file is a verbatim mirror of library/other/open-meteo/SKILL.md,
     regenerated post-merge by tools/generate-skills/. Hand-edits here are
     silently overwritten on the next regen. Edit the library/ source instead.
     See the repository agent guide, section "Generated artifacts: registry.json, cli-skills/". -->

# Open-Meteo — Printing Press CLI

## Prerequisites: Install the CLI

This skill drives the `open-meteo-pp-cli` binary. **You must verify the CLI is installed before invoking any command from this skill.** If it is missing, install it first:

1. Install via the Printing Press installer. It defaults binaries to `$HOME/.local/bin` on macOS/Linux and `%LOCALAPPDATA%\Programs\PrintingPress\bin` on Windows:
   ```bash
   npx -y @mvanhorn/printing-press-library install open-meteo --cli-only
   ```
2. Verify: `open-meteo-pp-cli --version`
3. Ensure the reported install directory is on `$PATH` for the agent/runtime that will invoke this skill.

If the `npx` install fails (no Node, offline, etc.), fall back to a direct Go install (requires Go 1.26.3 or newer):

```bash
go install github.com/mvanhorn/printing-press-library/library/other/open-meteo/cmd/open-meteo-pp-cli@latest
```

If `--version` reports "command not found" after install, the runtime cannot see the binary directory on `$PATH`. Do not proceed with skill commands until verification succeeds.

## When to Use This CLI

Use this CLI for any weather, climate, or air-quality question that does not require a paid commercial agreement. It covers forecasts (16 days, multiple models), historicals (ERA5 from 1940), marine waves, air quality with pollen, river flood discharge, CMIP6 climate projections, and ensemble runs. Reach for the novel commands (compare, normals, weather-mix, panel, is-good-for) when the user is asking a decision or anomaly question rather than a raw-data question.

## When Not to Use This CLI

Do not activate this CLI for requests that require creating, updating, deleting, publishing, commenting, upvoting, inviting, ordering, sending messages, booking, purchasing, or changing remote state. This printed CLI exposes read-only commands for inspection, export, sync, and analysis.

## Unique Capabilities

These capabilities aren't available in any other tool for this API.

### Local state that compounds
- **`forecast diff`** — See exactly what changed since the last forecast pull for this location — temperature deltas, new precipitation hours, weather-code shifts.

  _Pick this when an agent needs to react to forecast changes (alerting, replanning) rather than to the current forecast itself._

  ```bash
  open-meteo-pp-cli forecast diff --place Seattle --json --select changes
  ```
- **`normals`** — Compute the 30-year (or user-specified) climate normal for any (location, day-of-year, variable) tuple.

  _Use to ground a 'normal vs current' answer. Also useful for travel/timing recommendations across decades._

  ```bash
  open-meteo-pp-cli normals --place Seattle --month 7 --variable temperature_2m_max --years 30 --json
  ```
- **`accuracy`** — For any past date, compare what the model predicted (cached snapshot) against what actually happened (archive ground truth).

  _Use to score forecast trust over time, or to debug a 'why did the forecast change?' question._

  ```bash
  open-meteo-pp-cli accuracy --place Seattle --date 2025-12-25 --variable temperature_2m_max --json
  ```
- **`weather-mix`** — Distribution of WMO weather conditions (% clear, % rain, % storms, etc.) over an arbitrary historical window for a place.

  _Use for travel planning, climatology summaries, or 'how often does it rain in November?' questions._

  ```bash
  open-meteo-pp-cli weather-mix --place Seattle --past-days 30 --json
  ```

### Cross-API joins
- **`compare`** — Compare today's weather (or any forecast hour) against the 30-year climate normal for that date and place.

  _Use when a user asks 'is this weather unusual?' or 'how does this compare to historical?' — a single API call cannot answer._

  ```bash
  open-meteo-pp-cli compare --place Seattle --metric temperature_2m_mean --years 30 --json
  ```
- **`is-good-for`** — Verdict (GO / CAUTION / STOP) for surfing, skiing, hiking, running, biking based on combined forecast + marine + air-quality thresholds.

  _Use when the user asks a decision question, not a data question. Saves the agent from synthesizing 3 endpoint calls into a verdict._

  ```bash
  open-meteo-pp-cli is-good-for surfing --place "Half Moon Bay, CA" --json
  ```

### Agent-native plumbing
- **`panel`** — One-command snapshot panel for N locations side-by-side — batched in a single Open-Meteo call when possible.

  _Use to compare conditions across locations in one shot; cheaper and faster than N separate calls._

  ```bash
  open-meteo-pp-cli panel --place Seattle,Berlin,Tokyo --current temperature_2m,wind_speed_10m,weather_code --json
  ```

## Command Reference

**air-quality** — Air quality and pollen: PM2.5, PM10, ozone, NO2, SO2, CO, dust, pollens, EU/US AQI, UV.

- `open-meteo-pp-cli air-quality` — Air quality forecast and historical: pollutants, AQI, pollen, UV.

**archive** — Historical weather data (ERA5 reanalysis, 1940 to ~5 days ago). Same variable surface as forecast.

- `open-meteo-pp-cli archive` — Historical hourly/daily weather observations from ERA5 (1940 to ~5 days ago).

**climate** — CMIP6 climate change projections (1950-2050) under SSP scenarios.

- `open-meteo-pp-cli climate` — Daily CMIP6 climate projections for any (lat, lon) under SSP scenarios. Models include EC_Earth3P_HR, CMCC_CM2_VHR4,...

**elevation** — Digital elevation model lookup. Supports up to 100 coordinates per call.

- `open-meteo-pp-cli elevation` — Lookup elevation in meters for one or more coordinate pairs (up to 100).

**ensemble** — Ensemble forecasts (all model members) for uncertainty quantification.

- `open-meteo-pp-cli ensemble` — Hourly ensemble forecasts; returns all ensemble members so you can quantify uncertainty.

**flood** — River discharge / flood forecasts (GloFAS).

- `open-meteo-pp-cli flood` — Daily river discharge forecasts and historicals from GloFAS.

**forecast** — Weather forecast (up to 16 days). Free, no API key, hourly + daily + current resolution. Default model is best-available; pass --models for specific models (gfs_seamless, ecmwf_ifs025, dwd_icon, jma_seamless, metno_seamless, gem_seamless, meteofrance_arpege_world).

- `open-meteo-pp-cli forecast` — 7-16 day weather forecast for one or more coordinates. Pass comma-separated latitude/longitude for batch fetch.

**geocode** — Geocoding: search locations by name/postcode, or look up a location by ID.

- `open-meteo-pp-cli geocode get` — Look up a single location by its Open-Meteo geocoding ID.
- `open-meteo-pp-cli geocode search` — Search locations worldwide by name ('Berlin', 'Springfield, IL') or postcode.

**marine** — Marine weather: wave height, period, direction, swell components, sea-surface temperature.

- `open-meteo-pp-cli marine` — Marine forecast/historical: waves, swells, sea-surface temperature.

**seasonal** — Seasonal forecasts (up to 9 months) using NCEP CFSv2.

- `open-meteo-pp-cli seasonal` — 9-month seasonal forecast at six-hourly resolution. Default model is NCEP CFSv2.


## Freshness Contract

This printed CLI owns bounded freshness only for registered store-backed read command paths. In `--data-source auto` mode, those paths check `sync_state` and may run a bounded refresh before reading local data. `--data-source local` never refreshes. `--data-source live` reads the API and does not mutate the local store. Set `OPEN_METEO_NO_AUTO_REFRESH=1` to skip the freshness hook without changing source selection.

When JSON output uses the generated provenance envelope, freshness metadata appears at `meta.freshness`. Treat it as current-cache freshness for the covered command path, not a guarantee of complete historical backfill or API-spec

Related in General