weather-nws

Reliable US weather data using the National Weather Service API. Free, no API key, detailed forecasts and official alerts.

7 stars

Best use case

weather-nws is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Reliable US weather data using the National Weather Service API. Free, no API key, detailed forecasts and official alerts.

Teams using weather-nws should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/weather-nws/SKILL.md --create-dirs "https://raw.githubusercontent.com/Demerzels-lab/elsamultiskillagent/main/public/skills/andrewdmwalker/weather-nws/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/weather-nws/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How weather-nws Compares

Feature / Agentweather-nwsStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Reliable US weather data using the National Weather Service API. Free, no API key, detailed forecasts and official alerts.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Weather NWS

Get reliable, detailed weather data from the National Weather Service API. Perfect for US locations - completely free, no API key required, with official weather alerts.

## When to Use

Use this skill when you need:
- **Reliable US weather data** without API key hassles
- **Official weather alerts** (tornado warnings, flood alerts, etc.)
- **Detailed current conditions** beyond basic temperature
- **7-day forecasts** with comprehensive descriptions
- **Morning briefings** with accurate local weather
- **Weather monitoring** in automation/cron jobs
- **Alert-based notifications** for severe weather

This skill is ideal for US-based OpenClaw deployments that need professional-grade weather data without the complexity or cost of commercial APIs.

## Features

- 🌡️ **Detailed Current Conditions** - Temperature, feels-like, humidity, wind, pressure, visibility, dewpoint
- 📅 **7-Day Forecast** - Comprehensive daily forecasts with detailed descriptions
- 🚨 **Official Alerts** - Cold Weather Advisories, Tornado Warnings, Flood Alerts, etc.
- 🆓 **100% Free** - No API key, no rate limits, reliable government service
- 📍 **Accurate** - Data from official NWS weather stations

## Quick Start

### Get Current Weather

```bash
node weather-nws.js
```

### JSON Output (for scripts)

```bash
node weather-nws.js --json
```

## Configuration

Edit the coordinates in `weather-nws.js` to set your location:

```javascript
// Example: Fort Worth, Texas
const FORT_WORTH = {
    lat: 32.7555,
    lon: -97.3308
};
```

Find coordinates at [latlong.net](https://www.latlong.net)

## Usage Examples

### Basic Weather Check

Get a quick overview of current conditions and forecast:

```bash
node weather-nws.js
```

**Output:**
```
=== CURRENT CONDITIONS ===
Temperature: 30°F (Feels like: 21°F)
Condition: Clear
Humidity: 69%
Wind: 10 mph 310
Pressure: 30 inHg
Visibility: 10 miles
Dewpoint: 21°F

=== TODAY'S FORECAST ===
Sunny, with a high near 47. North northwest wind 5 to 10 mph.

=== 7-DAY OUTLOOK ===
Today: 47°F - Sunny
Tonight: 21°F - Mostly Clear
Saturday: 33°F - Sunny
Saturday Night: 22°F - Mostly Clear
Sunday: 53°F - Sunny
Sunday Night: 34°F - Clear
Monday: 64°F - Mostly Sunny

🚨 ACTIVE NWS ALERTS:
Cold Weather Advisory (Moderate/Expected)
Cold Weather Advisory issued January 29 at 11:49PM CST until January 31 at 11:00AM CST
```

### Programmatic Use (JSON)

For automation and integration:

```bash
node weather-nws.js --json
```

Returns structured JSON with:
- `current` - Current conditions object
- `forecast` - 7-day forecast array
- `alerts` - Detected alert keywords
- `timestamp` - ISO timestamp
- `source` - "National Weather Service"

### Integration with OpenClaw

Use in your OpenClaw prompts:

```
Check the weather and let me know if I need a jacket today.
```

Or in cron jobs:

```bash
# Morning weather brief
0 8 * * * node /path/to/weather-nws.js
```

### Weather Alert Monitoring

The skill includes alert detection for:
- 🌪️ **Tornado** warnings and watches (CRITICAL)
- ⛈️ **Severe Storms** with damaging winds, hail (HIGH)
- 🌊 **Flood** warnings and flash floods (HIGH)
- ❄️ **Winter Weather** - ice storms, blizzards, heavy snow (HIGH)
- 🔥 **Heat** advisories and excessive heat warnings (MEDIUM)
- 💨 **Wind** advisories and high wind warnings (MEDIUM)

## API Details

### National Weather Service API

- **Endpoint:** api.weather.gov
- **Authentication:** None required (User-Agent header recommended)
- **Rate Limiting:** None (reasonable use expected)
- **Coverage:** United States only
- **Documentation:** https://weather-gov.github.io/api/

### Data Sources

1. **Points API** - Gets forecast office and grid coordinates for your location
2. **Forecast API** - 7-day forecast with detailed descriptions
3. **Observations API** - Real-time data from nearest weather station
4. **Alerts API** - Active weather alerts for your area

## Advanced Usage

### Custom Location

Create a wrapper script for a different city:

```javascript
const NWSWeather = require('./weather-nws.js');

// Chicago coordinates
const weather = new NWSWeather(41.8781, -87.6298);
const data = await weather.getWeather();
console.log(JSON.stringify(data, null, 2));
```

### Alert Monitoring

Check for active official alerts:

```javascript
const NWSWeather = require('./weather-nws.js');

const weather = new NWSWeather(32.7555, -97.3308);
const alerts = await weather.getActiveAlerts();

if (alerts.length > 0) {
    console.log('⚠️ ACTIVE ALERTS:');
    alerts.forEach(alert => {
        console.log(`${alert.event} - ${alert.severity}/${alert.urgency}`);
        console.log(alert.headline);
    });
}
```

## Output Format

### Current Conditions Object

```json
{
  "current": {
    "temp": "30°F",
    "feelsLike": "21°F",
    "condition": "Clear",
    "humidity": "69%",
    "windSpeed": "10 mph",
    "windDirection": "310",
    "pressure": "30 inHg",
    "visibility": "10 miles",
    "dewpoint": "21°F"
  },
  "forecast": {
    "today": "Sunny, with a high near 47...",
    "tonight": "Mostly clear...",
    "high": "47°F",
    "periods": [...]
  },
  "alerts": [],
  "timestamp": "2026-01-30T15:00:00.000Z",
  "source": "National Weather Service"
}
```

## Why NWS?

Compared to other weather APIs:

| Feature | NWS | wttr.in | OpenWeather | WeatherAPI |
|---------|-----|---------|-------------|------------|
| Cost | FREE | FREE | $40+/mo | $0-$50/mo |
| API Key | ❌ No | ❌ No | ✅ Yes | ✅ Yes |
| Reliability | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
| Official Alerts | ✅ Yes | ❌ No | ❌ No | ⚠️ Limited |
| Detail Level | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
| US Coverage | ✅ Excellent | ✅ Good | ✅ Good | ✅ Good |

## Troubleshooting

### "Invalid response from NWS"

Check your coordinates are correct and within the US. The NWS API only covers United States territories.

### Timeout errors

Increase the timeout in the script:

```javascript
{ encoding: 'utf8', timeout: 30000 } // 30 seconds
```

### No alerts showing

This is normal! The skill only shows alerts when there are active weather warnings for your area.

## Integration Examples

### Morning Brief

Include weather in your daily automation:

```javascript
const NWSWeather = require('./weather-nws.js');
const weather = new NWSWeather(32.7555, -97.3308);
const data = await weather.getWeather();

console.log(`Good morning! It's ${data.current.temp} and ${data.current.condition}.`);
console.log(`Today's high will be ${data.forecast.high}.`);

if (data.alerts.length > 0) {
    console.log(`⚠️ Weather alerts: ${data.alerts.map(a => a.type).join(', ')}`);
}
```

### Discord/Telegram Bot

Post weather updates to channels:

```javascript
const data = await weather.getWeather();
const message = `🌤️ **Weather Update**\n` +
    `Current: ${data.current.temp} (feels like ${data.current.feelsLike})\n` +
    `Today's high: ${data.forecast.high}\n` +
    `Forecast: ${data.forecast.today}`;

// Send to your messaging platform
await sendMessage(message);
```

### Cron Job with Alerts

Monitor for severe weather:

```bash
#!/bin/bash
# Check weather every 15 minutes, alert on warnings

weather_json=$(node weather-nws.js --json)
alerts=$(echo "$weather_json" | jq -r '.alerts[] | .type')

if [ -n "$alerts" ]; then
    # Send notification
    echo "Weather alerts detected: $alerts"
    # Your notification logic here
fi
```

## License

This skill uses the National Weather Service API, which is public domain (US Government).

## Support

- **NWS API Issues:** https://github.com/weather-gov/weather.gov/issues
- **Skill Issues:** Contact the author

## Credits

Weather data provided by the National Weather Service (NOAA).

---

**Built for OpenClaw** (formerly Clawdbot)

Related Skills

weather

7
from Demerzels-lab/elsamultiskillagent

Get current weather and forecasts (no API key required).

dhmz-weather

7
from Demerzels-lab/elsamultiskillagent

Get Croatian weather data, forecasts, and alerts from DHMZ (meteo.hr) - no API key required.

aviation-weather

7
from Demerzels-lab/elsamultiskillagent

Fetch aviation weather data (METAR, TAF, PIREPs) from aviationweather.gov. Use for flight planning, weather briefings, checking airport conditions, or any pilot-related weather queries. Triggers on "METAR", "TAF", "flight weather", "airport weather", "aviation weather", "pilot report", "PIREP", or specific ICAO codes.

weather-check

7
from Demerzels-lab/elsamultiskillagent

Get current weather for a location

farmos-weather

7
from Demerzels-lab/elsamultiskillagent

Query weather data and forecasts for farm fields via the Agronomy module.

yr-no-weather

7
from Demerzels-lab/elsamultiskillagent

Fetch weather forecasts from the Norwegian Meteorological Institute (MET) using the yr.no API.

solar-weather

7
from Demerzels-lab/elsamultiskillagent

Monitor solar weather conditions including geomagnetic storms, solar flares, aurora forecasts, and solar wind data. Uses NOAA Space Weather Prediction Center real-time data.

simmer-weather

7
from Demerzels-lab/elsamultiskillagent

Trade Polymarket weather markets using NOAA forecasts via Simmer API. Inspired by gopfan2's $2M+ strategy. Use when user wants to trade temperature markets, automate weather bets, check NOAA forecasts, or run gopfan2-style trading.

paylock

7
from Demerzels-lab/elsamultiskillagent

Non-custodial SOL escrow for AI agent deals.

agent-reputation

7
from Demerzels-lab/elsamultiskillagent

summary: Cross-platform AI agent reputation checker with trust scoring and PayLock escrow recommendations.

Telecom Agent Skill

7
from Demerzels-lab/elsamultiskillagent

Turn your AI Agent into a Telecom Operator. Bulk calling, ChatOps, and Field Monitoring.

OpenClaw-Finnhub

7
from Demerzels-lab/elsamultiskillagent

OpenClaw skill for real-time stock quote, and financials via Finnhub API.