skills$openclaw/weather-nws
andrewdmwalker2.9k

by andrewdmwalker

weather-nws – OpenClaw Skill

weather-nws is an OpenClaw Skills integration for coding workflows. Reliable US weather data using the National Weather Service API. Free, no API key, detailed forecasts and official alerts.

2.9k stars3.0k forksSecurity L1
Updated Feb 7, 2026Created Feb 7, 2026coding

Skill Snapshot

nameweather-nws
descriptionReliable US weather data using the National Weather Service API. Free, no API key, detailed forecasts and official alerts. OpenClaw Skills integration.
ownerandrewdmwalker
repositoryandrewdmwalker/weather-nws
languageMarkdown
licenseMIT
topics
securityL1
installopenclaw add @andrewdmwalker/weather-nws
last updatedFeb 7, 2026

Maintainer

andrewdmwalker

andrewdmwalker

Maintains weather-nws in the OpenClaw Skills directory.

View GitHub profile
File Explorer
10 files
.
examples
alert-monitor.sh
589 B
basic-check.sh
86 B
programmatic-use.js
1.6 KB
_meta.json
282 B
CHANGELOG.md
1.5 KB
package.json
661 B
README.md
1.5 KB
SKILL.md
8.0 KB
weather-nws.js
8.9 KB
SKILL.md

name: weather-nws description: Reliable US weather data using the National Weather Service API. Free, no API key, detailed forecasts and official alerts. version: 1.0.0 author: awalker homepage: https://weather.gov keywords: weather, forecast, alerts, nws, national-weather-service metadata: openclaw: emoji: 🌤️ requires: bins: ["curl", "node"]

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

node weather-nws.js

JSON Output (for scripts)

node weather-nws.js --json

Configuration

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

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

Find coordinates at latlong.net

Usage Examples

Basic Weather Check

Get a quick overview of current conditions and forecast:

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:

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:

# 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:

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:

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

{
  "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:

FeatureNWSwttr.inOpenWeatherWeatherAPI
CostFREEFREE$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:

{ 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:

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:

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:

#!/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

Credits

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


Built for OpenClaw (formerly Clawdbot)

README.md

Weather NWS - OpenClaw Skill

🌤️ Reliable US weather data from the National Weather Service API.

Features

  • 100% Free - No API key required
  • Highly Reliable - US government service
  • Official Alerts - Tornado warnings, flood alerts, winter storms
  • Detailed Data - Temperature, wind, pressure, visibility, dewpoint
  • 7-Day Forecast - Comprehensive daily forecasts

Quick Start

node weather-nws.js

See SKILL.md for complete documentation.

Installation

As an OpenClaw Skill

# Copy to your skills directory
cp -r weather-nws /path/to/openclaw/skills/

# Or clone if published
git clone https://github.com/yourusername/weather-nws openclaw/skills/weather-nws

Standalone

git clone https://github.com/yourusername/weather-nws
cd weather-nws
node weather-nws.js

Example Output

=== CURRENT CONDITIONS ===
Temperature: 30°F (Feels like: 21°F)
Condition: Clear
Humidity: 69%
Wind: 10 mph 310

🚨 ACTIVE NWS ALERTS:
Cold Weather Advisory (Moderate/Expected)

Configuration

Edit coordinates in weather-nws.js:

const LOCATION = {
    lat: 32.7555,  // Your latitude
    lon: -97.3308  // Your longitude
};

Why NWS?

Unlike other weather APIs:

  • ✅ No API key required
  • ✅ No rate limits
  • ✅ Official government data
  • ✅ Real weather alerts from NOAA
  • ✅ Most accurate for US locations

Documentation

Full documentation available in SKILL.md

License

MIT

Credits

Weather data from the National Weather Service (NOAA).

Permissions & Security

Security level L1: Low-risk skills with minimal permissions. Review inputs and outputs before running in production.

Requirements

  • OpenClaw CLI installed and configured.
  • Language: Markdown
  • License: MIT
  • Topics:

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)

FAQ

How do I install weather-nws?

Run openclaw add @andrewdmwalker/weather-nws in your terminal. This installs weather-nws into your OpenClaw Skills catalog.

Does this skill run locally or in the cloud?

OpenClaw Skills execute locally by default. Review the SKILL.md and permissions before running any skill.

Where can I verify the source code?

The source repository is available at https://github.com/openclaw/skills/tree/main/skills/andrewdmwalker/weather-nws. Review commits and README documentation before installing.