Checks the current weather for the user's location using live online data. Asks for location on first use and saves it for future runs. Use when the user wants a quick weather check or forecast.
Scanned 9/19/2026
Install to Claude Code
npx -y skills add mostafa-drz/claude-skills --skill weather --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Weather?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/mostafa-drz-weather)More formats (shields.io, HTML) on the badges page.
---
name: weather
description: >-
Checks the current weather for the user's location using live online data.
Asks for location on first use and saves it for future runs.
Use when the user wants a quick weather check or forecast.
argument-hint: "[city name]"
disable-model-invocation: true
context: fork
allowed-tools:
- AskUserQuestion
- Bash
- WebFetch
- WebSearch
- Read
- Write
- Edit
metadata:
trigger: "Use when the user wants a quick weather check or forecast."
---
# Weather
Check the current weather for your location using live data from Open-Meteo (free, no API key needed).
## Preferences
_Read `~/.claude/skills/weather/preferences.md` using the Read tool. If not found, no preferences are set._
## Command routing
Check `$ARGUMENTS`:
- **`help`** → display help then stop
- **`config`** → interactive setup then stop
- **`reset`** → delete `~/.claude/skills/weather/preferences.md`, confirm, stop
- **anything else** (including empty) → run the skill
### Help
```
Weather — Check current weather for your location
Usage:
/weather Show weather for saved location
/weather Berlin Show weather for Berlin
/weather config Set your default location
/weather reset Clear saved location
/weather help This help
Examples:
/weather Uses your saved city
/weather "New York" One-off check for New York
/weather Tokyo One-off check for Tokyo
Current preferences:
(shown above under Preferences)
```
### Config
Use **AskUserQuestion**:
**Q1** — "What city are you in?" (text input via Other)
- Options: suggest common cities as quick picks, plus Other for custom input
**Q2** — "Temperature unit?"
- Celsius (default)
- Fahrenheit
Save to `~/.claude/skills/weather/preferences.md`.
### Reset
Delete `~/.claude/skills/weather/preferences.md` and confirm: "Preferences cleared. Using defaults."
## First-time detection
If no preferences file exists and no city argument was provided:
1. Use **AskUserQuestion** to ask: "Where are you located? (city name)"
2. After getting weather, offer to save the location
## Steps
### 1. Determine location
- If `$ARGUMENTS` contains a city name (not help/config/reset) → use that city
- Else if preferences has a saved city → use that
- Else → ask via **AskUserQuestion**: "What city should I check the weather for?"
### 2. Geocode the city
Use **WebFetch** to call the Open-Meteo geocoding API:
```
https://geocoding-api.open-meteo.com/v1/search?name={city}&count=1&language=en&format=json
```
Extract `latitude`, `longitude`, and `name` (resolved city name) from the first result.
If no results found, tell the user and ask for a different city.
### 3. Fetch current weather
Use **WebFetch** to call the Open-Meteo forecast API:
```
https://api.open-meteo.com/v1/forecast?latitude={lat}&longitude={lon}¤t=temperature_2m,relative_humidity_2m,apparent_temperature,weather_code,wind_speed_10m,wind_direction_10m&temperature_unit={celsius|fahrenheit}&wind_speed_unit=kmh&timezone=auto
```
### 4. Display weather
Show a fun, concise weather card:
```
{weather emoji} Weather in {City}
Temperature: {temp}°{C/F} (feels like {apparent}°)
Conditions: {description from weather code}
Humidity: {humidity}%
Wind: {speed} km/h {direction}
{fun one-liner comment about the weather}
```
**Weather code mapping** (WMO codes):
- 0: Clear sky
- 1-3: Partly cloudy
- 45, 48: Foggy
- 51-55: Drizzle
- 61-65: Rain
- 66-67: Freezing rain
- 71-77: Snow
- 80-82: Rain showers
- 85-86: Snow showers
- 95-99: Thunderstorm
**Emoji mapping:**
- Clear → sun
- Cloudy → cloud
- Rain/Drizzle → rain
- Snow → snowflake
- Thunderstorm → lightning
- Fog → fog
### 5. Offer to save (first-time only)
If no preferences existed and no city argument was given, ask:
> Save {City} as your default location?
If yes, write preferences file.
## Principles
- **Always live data** — never cache or guess weather; always fetch fresh from the API.
- **Fun and concise** — keep it light. One screen, one glance. Add a witty comment about the conditions.
- **Fail gracefully** — if the API is down or city not found, say so clearly and suggest alternatives.
- **Respect saved preferences** — once configured, just show the weather with zero friction.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!