openmeteo-weather

star 0

Get current weather, hourly and daily forecasts for any city or coordinates worldwide. Use when the user asks about weather, temperature, rain, snow, wind, sunrise/sunset, UV, humidity, pressure, or wants to know if they need an umbrella.

DJSwiss By DJSwiss schedule Updated 2/22/2026

name: openmeteo-weather description: "Get current weather, hourly and daily forecasts for any city or coordinates worldwide. Use when the user asks about weather, temperature, rain, snow, wind, sunrise/sunset, UV, humidity, pressure, or wants to know if they need an umbrella." metadata: {"openclaw":{"emoji":"๐ŸŒค","requires":{"bins":["curl","jq"]}}} user-invocable: true

OpenMeteo Weather

Fetch current weather and forecasts via the free Open-Meteo API. No API key required. Supports any location worldwide.

CLI: bash {baseDir}/scripts/weather.sh [options]

Quick reference

# Current weather (city name alone is enough)
bash {baseDir}/scripts/weather.sh --current --city=Berlin
bash {baseDir}/scripts/weather.sh --current --city=London

# Exact coordinates for precision if available
bash {baseDir}/scripts/weather.sh --current --lat=48.8566 --lon=2.3522

# Disambiguate with --country (any format: code, full name, partial)
bash {baseDir}/scripts/weather.sh --current --city=Portland --country=US

# Forecast (daily + hourly)
bash {baseDir}/scripts/weather.sh --forecast-days=3 --city=Paris

# Both current + forecast
bash {baseDir}/scripts/weather.sh --current --forecast-days=2 --city=Rome

# Custom params โ€” fetch only precipitation data
bash {baseDir}/scripts/weather.sh --forecast-days=2 --city=Vienna \
  --hourly-params=precipitation,precipitation_probability,weather_code

Options

Location (required โ€” pick one):

  • --city=NAME โ€” city name; auto-geocoded, usually sufficient on its own
  • --country=โ€ฆ โ€” optional country hint, any format works (GB, France, Ger). Only needed to disambiguate (e.g. Portland US vs UK). Do not look up the "correct" code โ€” pass whatever you have or omit entirely.
  • --lat=FLOAT --lon=FLOAT โ€” direct coordinates, skips geocoding

Mode (at least one required):

  • --current โ€” fetch current conditions
  • --forecast โ€” fetch hourly + daily forecast
  • --forecast-days=N โ€” forecast length 1โ€“16 days (default: 7; implies --forecast)

Param overrides (comma-separated variable names):

  • --current-params=โ€ฆ โ€” override current weather variables
  • --hourly-params=โ€ฆ โ€” override hourly forecast variables
  • --daily-params=โ€ฆ โ€” override daily forecast variables

Output:

  • --human โ€” emoji-rich formatted output for humans (default is porcelain, optimized for agents)

Rules

  1. Default output is porcelain (compact, for agents). Never pass --porcelain โ€” it's the default; saves tokens.
  2. When the user asks about weather without specifying a location, check USER.md for their city/country.
  3. Present results as a natural-language summary โ€” do not paste raw CLI output to the user.
  4. WMO weather codes are resolved to text labels automatically (e.g. "Slight rain", "Overcast").
  5. Use --forecast-days=1 or --forecast-days=2 when the user only asks about today/tomorrow โ€” don't waste tokens on a full 7-day fetch.
  6. For targeted questions (e.g. "when will the rain stop?"), override params via --hourly-params or --daily-params to fetch only what's needed.

Available API variables

Override defaults via --current-params, --hourly-params, --daily-params.

Current & hourly variables

  • temperature_2m (default) โ€” air temperature at 2m, ยฐC
  • apparent_temperature (default) โ€” feels-like temperature, ยฐC
  • relative_humidity_2m (default) โ€” relative humidity at 2m, %
  • precipitation (default) โ€” total precipitation (rain + showers + snow), mm
  • precipitation_probability (default, hourly only) โ€” probability of precipitation, %
  • weather_code (default) โ€” weather condition, auto-resolved to text in output
  • wind_speed_10m (default) โ€” wind speed at 10m, km/h
  • wind_gusts_10m โ€” wind gust speed at 10m, km/h
  • wind_direction_10m โ€” wind direction, ยฐ
  • cloud_cover (default, current only) โ€” total cloud cover, %
  • is_day (default, current only) โ€” daytime flag, 0/1
  • pressure_msl โ€” sea-level atmospheric pressure, hPa
  • surface_pressure โ€” surface pressure, hPa
  • visibility โ€” visibility distance, m
  • rain โ€” rain only (no showers/snow), mm
  • showers โ€” shower rain only, mm
  • snowfall โ€” snowfall amount, cm
  • snow_depth โ€” snow depth on the ground, m
  • dew_point_2m โ€” dew point temperature at 2m, ยฐC
  • uv_index (hourly only) โ€” UV index

Daily variables

  • temperature_2m_max (default) โ€” daily max temperature, ยฐC
  • temperature_2m_min (default) โ€” daily min temperature, ยฐC
  • precipitation_sum (default) โ€” total daily precipitation, mm
  • precipitation_probability_max (default) โ€” max precipitation probability, %
  • weather_code (default) โ€” dominant weather condition for the day
  • wind_speed_10m_max (default) โ€” max wind speed, km/h
  • wind_gusts_10m_max โ€” max wind gust speed, km/h
  • wind_direction_10m_dominant โ€” dominant wind direction, ยฐ
  • sunrise โ€” sunrise time, ISO 8601
  • sunset โ€” sunset time, ISO 8601
  • daylight_duration โ€” daylight duration, seconds
  • sunshine_duration โ€” sunshine duration, seconds
  • precipitation_hours โ€” hours with precipitation
  • rain_sum โ€” total daily rain, mm
  • showers_sum โ€” total daily showers, mm
  • snowfall_sum โ€” total daily snowfall, cm
  • uv_index_max โ€” max UV index
  • apparent_temperature_max โ€” daily max feels-like, ยฐC
  • apparent_temperature_min โ€” daily min feels-like, ยฐC

Conversational examples

User: "What's the weather like?"

  • Location not specified โ†’ get city/country from USER.md.
  • Wants a general overview โ†’ use --current.
bash {baseDir}/scripts/weather.sh --current --city=Berlin
  • Summarize conditions naturally: "Clear sky, -12ยฐC (feels like -17ยฐC), wind 9 km/h."

User: "When will the rain stop?"

  • Needs hourly precipitation timeline โ†’ use --forecast-days=2 with only rain-related params.
bash {baseDir}/scripts/weather.sh --forecast-days=2 --city=Berlin \
  --hourly-params=precipitation,precipitation_probability,weather_code
  • Scan the hourly output, find when precipitation drops to 0 and weather_code changes to non-rain. Answer concisely: "Rain should stop around 14:00 today."

User: "Do I need an umbrella?"

  • Same approach as rain โ€” check upcoming hours for precipitation.
bash {baseDir}/scripts/weather.sh --forecast-days=1 --city=Berlin \
  --hourly-params=precipitation,precipitation_probability,weather_code
  • Analyze output and give a yes/no answer with reasoning: "Yes โ€” 70% chance of rain between 11:00 and 15:00, up to 2mm."

User: "What's the weather this weekend in Rome?"

  • Specific city + specific days โ†’ use --forecast with --daily-params only.
  • Calculate the right --forecast-days to cover the weekend, then pick Saturday/Sunday from the daily output.
bash {baseDir}/scripts/weather.sh --forecast-days=7 --city=Rome \
  --daily-params=temperature_2m_max,temperature_2m_min,weather_code,precipitation_sum,precipitation_probability_max
  • Present only Saturday and Sunday from the output: "Saturday: 14ยฐ/8ยฐC, partly cloudy. Sunday: 16ยฐ/9ยฐC, clear sky."

User: "What's the temperature outside?"

  • Only wants temperature โ†’ use --current with narrowed params.
bash {baseDir}/scripts/weather.sh --current --city=Berlin \
  --current-params=temperature_2m,apparent_temperature
  • Short answer: "-5ยฐC, feels like -9ยฐC."
Install via CLI
npx skills add https://github.com/DJSwiss/telegram-whisper-bot --skill openmeteo-weather
Repository Details
star Stars 0
call_split Forks 0
navigation Branch main
article Path SKILL.md
More from Creator