weather-skill

Fetches current weather conditions and forecasts for any location worldwide. Use this skill whenever the user asks about weather, temperature, rain, wind, forecast, climate conditions, or what to wear/pack for a trip. Triggers on queries like "what's the weather in X", "forecast for Y", "will it rain", "what should I pack for Z", "how hot/cold is it", "is it windy in X", or any travel-planning question where weather matters.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "weather-skill" with this command: npx skills add mateeb11/weather-forecast/mateeb11-weather-forecast-weather-skill

Weather Skill

Provides current weather and forecasts for any location using two free APIs:

  • Nominatim (OpenStreetMap) for geocoding locations → scripts/geocode.py
  • Open-Meteo for weather data → scripts/fetch_weather.py

Workflow

  1. Understand the user's request. Extract the location, time range, and whether they're planning travel. See examples below.
  2. Geocode the location by running scripts/geocode.py "<location>". It returns JSON with display_name, lat, lon, and an ambiguous flag. If ambiguous, ask the user to clarify.
  3. Fetch weather by running scripts/fetch_weather.py with the lat/lon and appropriate flags. See script usage below.
  4. Respond to the user with a clear summary. See example outputs below.
  5. If travel intent is detected, also read references/clothing_guide.md and include relevant clothing advice.

Scripts

Geocode: scripts/geocode.py

Converts a location string to coordinates.

python scripts/geocode.py "Tokyo"
python scripts/geocode.py "King Abdullah Financial District, Riyadh"
python scripts/geocode.py "Times Square, New York"

Returns JSON:

{
  "display_name": "Tokyo, Japan",
  "lat": 35.6764,
  "lon": 139.6500,
  "importance": 0.82,
  "ambiguous": false
}

If ambiguous is true, an alternatives list is included — ask the user which they meant.

Weather: scripts/fetch_weather.py

Fetches weather data for given coordinates.

# Current conditions only
python scripts/fetch_weather.py --lat 35.6764 --lon 139.65 --resolution current

# Hourly forecast (good for today, tomorrow, next 12 hours, specific day)
python scripts/fetch_weather.py --lat 35.6764 --lon 139.65 --resolution hourly

# Daily forecast (good for multi-day ranges, next week, etc.)
python scripts/fetch_weather.py --lat 35.6764 --lon 139.65 --resolution daily

# Custom timezone (default is "auto" which uses the location's timezone)
python scripts/fetch_weather.py --lat 35.6764 --lon 139.65 --resolution hourly --timezone Asia/Tokyo

# Include historical data when user asks about past weather
python scripts/fetch_weather.py --lat 35.6764 --lon 139.65 --resolution daily --past-days 7

Returns JSON with meta, current, hourly, and/or daily sections depending on resolution.

Example JSON response (--resolution current):

{
  "meta": {
    "lat": 35.6764,
    "lon": 139.65,
    "timezone": "Asia/Tokyo",
    "resolution": "current",
    "forecast_days": 16,
    "past_days": 0
  },
  "current": {
    "time": "2026-02-25T14:00",
    "temperature_c": 12.3,
    "apparent_temperature_c": 10.8,
    "weather_code": 1,
    "weather_description": "Mainly clear",
    "wind_speed_kmh": 14.2,
    "humidity_pct": 48,
    "precipitation_mm": 0.0
  },
  "hourly": null,
  "daily": null
}

The script always requests forecast_days=16 (max forecast horizon). Use --past-days only for past weather requests (0..92).


How to Interpret User Requests

The agent should interpret the user's natural language to determine three things:

1. Location

Extract the place name from the query. Examples:

  • "Weather in Jeddah now" → "Jeddah"
  • "Forecast for London this weekend" → "London"
  • "I'm going to Tokyo next week" → "Tokyo"
  • "How windy will it be in AlUla on Friday?" → "AlUla"

If no location is mentioned, ask the user.

2. Time Range, Resolution, and Past Weather

User saysResolutionpast_daysNotes
"now" / "current" / no time specifiedcurrent (also include hourly for next 24h)0Forecast request always uses 16 days.
"today" / "tonight" / "tomorrow" / "tomorrow morning"hourly0Use hourly data to answer specific time windows.
"this weekend" / "on Friday" / "hourly for next 12 hours"hourly0Filter the returned series in the response.
"next 3 days"hourly0Summarize from hourly data.
"next 7 days" / "next week" / "first week of March"daily0Summarize relevant days from daily data.
"March" / "in April" / "05/01 to 06/30"daily0If outside forecast horizon, clearly state limits.
"past weather" / "last 3 days" / "yesterday"daily (or hourly for short windows)set from requestIf user says "past" without a number, default to 7.

The user may specify dates in various formats (MM/DD, DD/MM, "May 1st", "1 March", etc.) — interpret based on context and filter the returned timeline accordingly. Use the current year unless another year is stated or implied.

Use daily for ranges > 3 days, hourly for shorter windows, current for right-now queries (but still include hourly for context).

Default (no time specified): current conditions + next 24 hours hourly.

Remember: Forecast is fixed to 16 days. For past requests, use past_days (0..92).

3. Travel Intent

Detect if the user is planning to go somewhere. Look for keywords like: pack, wear, travel, visiting, going to, headed to, trip, vacation, holiday, outing, flight, should I bring

If travel intent is detected → also include clothing guidance (see below).


Example Outputs

Example 1: Simple current weather

User: "What's the weather in Jeddah now?"

Response:

Weather in Jeddah, Saudi Arabia

Right now it's Clear sky with a temperature of 28°C (feels like 30°C). Wind is light at 12 km/h from the north, and humidity is at 45%. No precipitation expected.

Next few hours:

  • 3 PM: 29°C, Clear sky, 0% rain
  • 4 PM: 28°C, Partly cloudy, 0% rain
  • 5 PM: 26°C, Clear sky, 0% rain (and so on...)

Example 2: Weekend forecast

User: "Forecast for London this weekend"

Response:

Weekend Forecast for London, UK

Saturday, Mar 1: Highs of 11°C, lows of 5°C. Moderate rain expected (70% probability, ~4mm). Wind up to 25 km/h.

Sunday, Mar 2: Highs of 13°C, lows of 6°C. Partly cloudy, 20% rain chance. Lighter wind at 15 km/h.

Overall: A wet Saturday clearing into a drier Sunday. Bring an umbrella for Saturday.

Example 3: Travel planning with clothing advice

User: "I'm going to Tokyo next week — what should I pack?"

Response:

Tokyo, Japan — Next Week Forecast (Mar 3–9)

DayHighLowConditionsRainWind
Mon12°C4°CPartly cloudy10%15 km/h
Tue10°C3°CSlight rain65%20 km/h
..................

What to Wear: Expect cold conditions (lows near 3°C) with rain mid-week. Pack:

  • Warm layers: fleece or wool sweater + insulated jacket
  • Waterproof jacket and umbrella for Tuesday/Wednesday
  • Closed-toe waterproof shoes
  • Scarf and light gloves for mornings/evenings

See: clothing_guide.md — sections: cold, rainy

Example 4: Specific condition query

User: "How windy will it be in AlUla on Friday?"

Response:

Wind Forecast for AlUla, Saudi Arabia — Friday, Feb 28

Wind speeds will peak at 35 km/h in the early afternoon, settling to around 15 km/h by evening. Morning winds are lighter at ~10 km/h.

⚠️ Moderately windy conditions expected midday — secure loose items and consider a windbreaker if you'll be outdoors.


Warnings

Include warnings when conditions are notable:

  • Extreme heat: temp ≥ 40°C
  • Extreme cold: temp ≤ -10°C
  • Strong wind: ≥ 50 km/h
  • Heavy rain: ≥ 20mm precipitation

Clothing Guidance

When travel intent is detected, read references/clothing_guide.md and include relevant advice in the response.


Error Handling

  • Location not found: Ask the user to be more specific (add city, country).
  • Ambiguous location: Present the alternatives and ask which one.
  • API failure / network blocked: Scripts return a JSON error envelope instead of a traceback:
    {
      "error": {
        "code": "NETWORK_UNAVAILABLE",
        "message": "Unable to reach remote weather service.",
        "details": "URLError: ...",
        "retryable": true,
        "hint": "Enable outbound network access or rerun with elevated permissions."
      }
    }
    
  • Error codes:
    • INVALID_INPUT: bad user input (invalid past_days, missing location, no results).
    • NETWORK_UNAVAILABLE: DNS/connectivity/timeouts to upstream weather APIs.
    • UPSTREAM_API_ERROR: upstream HTTP/API response issues.
  • Exit codes:
    • 0: success.
    • 1: usage or input validation failures.
    • 2: network/upstream API failures.
  • Operational guidance: If network is blocked in a sandbox, request elevated permissions or run scripts from an environment with outbound internet access.
  • Beyond forecast horizon: Inform them of the 16-day limit, return what's available.
  • No time specified: Default to current + next 24 hours.

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

weather-skill

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

adarsh-skill

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

OPC Landing Page Manager

Landing page strategy, copywriting, design, and code generation for solo entrepreneurs. From product idea to a complete, self-contained, conversion-optimized...

Registry SourceRecently Updated
Coding

OPC Product Manager

Product spec generation for solo entrepreneurs. Turns a one-sentence idea into a build-ready spec that AI coding agents (Claude Code, etc.) can execute direc...

Registry SourceRecently Updated