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
Default output is porcelain (compact, for agents). Never pass
--porcelainโ it's the default; saves tokens.When the user asks about weather without specifying a location, check USER.md for their city/country.
Present results as a natural-language summary โ do not paste raw CLI output to the user.
WMO weather codes are resolved to text labels automatically (e.g. "Slight rain", "Overcast").
Use
--forecast-days=1or--forecast-days=2when the user only asks about today/tomorrow โ don't waste tokens on a full 7-day fetch.For targeted questions (e.g. "when will the rain stop?"), override params via
--hourly-paramsor--daily-paramsto 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, ยฐCapparent_temperature(default) โ feels-like temperature, ยฐCrelative_humidity_2m(default) โ relative humidity at 2m, %precipitation(default) โ total precipitation (rain + showers + snow), mmprecipitation_probability(default, hourly only) โ probability of precipitation, %weather_code(default) โ weather condition, auto-resolved to text in outputwind_speed_10m(default) โ wind speed at 10m, km/hwind_gusts_10mโ wind gust speed at 10m, km/hwind_direction_10mโ wind direction, ยฐcloud_cover(default, current only) โ total cloud cover, %is_day(default, current only) โ daytime flag, 0/1pressure_mslโ sea-level atmospheric pressure, hPasurface_pressureโ surface pressure, hPavisibilityโ visibility distance, mrainโ rain only (no showers/snow), mmshowersโ shower rain only, mmsnowfallโ snowfall amount, cmsnow_depthโ snow depth on the ground, mdew_point_2mโ dew point temperature at 2m, ยฐCuv_index(hourly only) โ UV index
Daily variables
temperature_2m_max(default) โ daily max temperature, ยฐCtemperature_2m_min(default) โ daily min temperature, ยฐCprecipitation_sum(default) โ total daily precipitation, mmprecipitation_probability_max(default) โ max precipitation probability, %weather_code(default) โ dominant weather condition for the daywind_speed_10m_max(default) โ max wind speed, km/hwind_gusts_10m_maxโ max wind gust speed, km/hwind_direction_10m_dominantโ dominant wind direction, ยฐsunriseโ sunrise time, ISO 8601sunsetโ sunset time, ISO 8601daylight_durationโ daylight duration, secondssunshine_durationโ sunshine duration, secondsprecipitation_hoursโ hours with precipitationrain_sumโ total daily rain, mmshowers_sumโ total daily showers, mmsnowfall_sumโ total daily snowfall, cmuv_index_maxโ max UV indexapparent_temperature_maxโ daily max feels-like, ยฐCapparent_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=2with 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
--forecastwith--daily-paramsonly.Calculate the right
--forecast-daysto 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
--currentwith narrowed params.
bash {baseDir}/scripts/weather.sh --current --city=Berlin \
--current-params=temperature_2m,apparent_temperature
- Short answer: "-5ยฐC, feels like -9ยฐC."