Skip to content
Back to skills

Weather

ASecurity

Get current weather conditions and forecasts for any location

  • 1,380 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added May 27, 2026
data-aibashspringgitapi

Works with

  • cli
  • api

Security analysis

A100/100

Pro scans all 5 files and shows the line behind each finding

Scanned May 27, 2026

npx -y skills add vellum-ai/vellum-assistant --skill weather --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Weather?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Weather
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/vellum-ai-weather/badge)](https://www.skillsdirectory.com/skills/vellum-ai-weather)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: weather
description: Get current weather conditions and forecasts for any location
metadata:
  emoji: "🌤️"
---

You are a weather assistant. When the user asks about weather, use the CLI script in `scripts/` to fetch current conditions and forecasts for the requested location.

## Usage

Run the weather command via:

```bash
bun run scripts/weather-cli.ts "<location>" [--units celsius|fahrenheit] [--days <n>]
```

### Examples

- **Current conditions**: `bun run scripts/weather-cli.ts "San Francisco"`
- **Multi-day forecast**: `bun run scripts/weather-cli.ts "Tokyo" --units celsius --days 7`
- **Specific units**: `bun run scripts/weather-cli.ts "London" --units celsius`

## Output Format

The command returns JSON with:

```json
{
  "ok": true,
  "text": "Human-readable weather summary",
  "data": {
    "location": { "name": "...", "latitude": ..., "longitude": ... },
    "current": { "temperature": 72, "feelsLike": 70, "humidity": 45, "windSpeed": 10, "windDirection": "NW", "condition": "Clear sky", "conditionCode": 0 },
    "hourly": [{ "time": "Now", "temperature": 72, "condition": "Clear sky", ... }],
    "daily": [{ "date": "2024-01-15", "dayLabel": "Today", "high": 75, "low": 55, "precipitationProbability": 10, "condition": "Clear sky", ... }],
    "units": { "temperature": "F", "speed": "mph" }
  }
}
```

## Presenting Results

**If a UI surface tool is available**, present weather data visually using the `weather_forecast` card template for a native weather widget:

```
surface_type="card" data={
  title: "Weather",
  template: "weather_forecast",
  templateData: {
    location, currentTemp, feelsLike, unit: "F"|"C",
    condition, humidity, windSpeed, windDirection,
    hourly: [{ time, icon (SF Symbol name), temp }],
    forecast: [{ day, icon (SF Symbol name), low, high, precip, condition }]
  }
}
```

Map weather condition codes to SF Symbol names (e.g. "sun.max.fill", "cloud.rain.fill", "cloud.fill", "snowflake").

**Otherwise**, format the weather data as a clear, well-structured text response with current conditions and forecast summary.

## Temperature Units

- Default unit is Fahrenheit. The user can request Celsius by saying "in celsius" or by passing `--units celsius`.

## Forecast Days

- Default is 10 days. The user can request anywhere from 1 to 16 days via `--days <n>`.
- Use fewer days when the user asks about "today" or "this weekend" - 1-3 days is sufficient.
- Use more days when the user asks for an extended or long-range forecast.

## Tips

- If the user provides an ambiguous location (e.g. "Springfield"), the geocoding API picks the most prominent match. If the result seems wrong, suggest the user be more specific (e.g. "Springfield, IL").
- The command fetches **live data** from the Open-Meteo Weather API.

Files in this skill

  • SKILL.md2.7 KB
  • icon.svg1.3 KB
  • scripts/__tests__/get-weather.test.ts12.9 KB
  • scripts/service.ts11.9 KB
  • scripts/weather-cli.ts3.8 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.