Weather climate
Use when a task needs real weather data pulled live - "what's the forecast for X", "current temperature/wind here", "historical weather for this date range", "air quality / AQI right now", or "active US weather alerts" - and you should call a free keyless API instead of deliberating. Open-Meteo is the default (global forecast, history, air quality, no key); api.weather.gov covers official US alerts. Do NOT use for turning place names into coordinates, country facts, or postal codes - use geo-places instead; do NOT use for FX or crypto prices - use finance-fx instead; if the request is a vague "I need live data", route through public-data-api-picker.From its SKILL.md
npx -y skills add SkillMedev/live-data --skill weather-climateAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
5.2 KB, ~1.3k tokens by cl100k_base, as published. Nobody here has run it
Weather & Climate Data
Fetch real weather with one HTTP call. The mistake this prevents: reaching for OpenWeatherMap or WeatherAPI from training memory - both are key-walled and the task stalls at "sign up for an API key" - when Open-Meteo answers the same question keyless in under a second.
Ranked APIs
- Open-Meteo - DEFAULT for everything: current conditions, 16-day forecast, historical archive, air quality. No key, no signup, global coverage. Free tier is non-commercial, ~10,000 calls/day.
- api.weather.gov (NWS) - US only. Use it when the task needs official US government alerts or forecast wording. No key, but a
User-Agentheader is required.
Procedure
- Get coordinates first. Every endpoint below takes
latitude/longitude, not place names. If you only have a city name, resolve it with Open-Meteo's geocoder:https://geocoding-api.open-meteo.com/v1/search?name={city}&count=1→results[0].latitude,results[0].longitude. For any geocoding beyond this one step (addresses, POIs, reverse), switch to geo-places. - Pick the endpoint for the time range - current/forecast, historical, air quality, or alerts (templates below).
- State units in the answer. Open-Meteo defaults to °C, km/h, mm; every response carries a
*_unitsobject - read it rather than assuming. Append&temperature_unit=fahrenheit&wind_speed_unit=mph&precipitation_unit=inchfor US-facing output.
Ask the user only if missing: location (no default), date range (default: now + 7 days), units (default: metric unless the location is in the US).
URL templates + real response shapes
Current + forecast (up to forecast_days=16):
https://api.open-meteo.com/v1/forecast?latitude={lat}&longitude={lon}
¤t=temperature_2m,wind_speed_10m,relative_humidity_2m,weather_code
&daily=temperature_2m_max,temperature_2m_min,precipitation_sum&timezone=auto
{"current_units":{"temperature_2m":"°C","wind_speed_10m":"km/h"},
"current":{"time":"...","temperature_2m":15.9,"wind_speed_10m":10.5},
"daily":{"time":["...","..."],"temperature_2m_max":[19.3,23.8],"precipitation_sum":[2.9,2.9]}}
Gotchas: any daily= request requires timezone (use auto) or it errors. weather_code is a WMO code (0 clear, 61 light rain, 95 thunderstorm) - translate it, don't print the number. Hourly data uses &hourly= with the same variable names.
Historical (archive starts 1940, lags ~5 days behind today):
https://archive-api.open-meteo.com/v1/archive?latitude={lat}&longitude={lon}
&start_date=YYYY-MM-DD&end_date=YYYY-MM-DD&daily=temperature_2m_max,precipitation_sum&timezone=UTC
Same response shape as forecast daily. For dates within the last week, use the forecast endpoint with &past_days=7 instead.
Air quality (separate host):
https://air-quality-api.open-meteo.com/v1/air-quality?latitude={lat}&longitude={lon}¤t=pm2_5,us_aqi,european_aqi
{"current":{"pm2_5":6.0,"us_aqi":35}}
pm2_5 is μg/m³; us_aqi is the 0-500 EPA index (≤50 good, 101+ unhealthy for sensitive groups).
US alerts (NWS):
https://api.weather.gov/alerts/active?area={two-letter state} ← e.g. area=CA
GeoJSON: alerts live in features[].properties - event, severity, headline, expires. Gotchas: send a real User-Agent (e.g. myapp ([email protected])) or NWS may reject you; there is no limit param on this endpoint (it 400s); for point forecasts it's two steps - GET /points/{lat},{lon} → properties.forecast URL → fetch that for properties.periods[] with temperature, windSpeed, detailedForecast.
Deliverable
The fetched numbers with their units and timestamps, plus the exact URL used - so the result is reproducible and the user can see which API answered.
Do NOT use - reach for X instead
- OpenWeatherMap, WeatherAPI.com, AccuWeather, weatherstack - all key-walled; Open-Meteo covers the same ground keyless. Do not send a user to sign up for a key.
- Geocoding beyond one city→lat/lon step - geo-places.
- Earthquakes, space weather - space-earth-science.
- Climate-economics indicators (emissions, energy stats by country) - government-open-data.
Quality bar
- Every reported number carries its unit, read from the response's
*_unitsobject. - The request URL used is shown or logged; the call succeeds on the first try because the template above was copied, not reconstructed.
- No API key was requested from the user for anything this skill covers.
Sourced and liveness-verified from the public-apis project (MIT).
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.