{"skill":{"slug":"openweather","displayName":"OpenWeather","summary":"Get current weather, hourly forecasts, and 8-day daily forecasts for any location worldwide using OpenWeather One Call API 3.0. Use when the user asks about...","tags":{"latest":"1.0.2"},"stats":{"comments":0,"downloads":427,"installsAllTime":1,"installsCurrent":1,"stars":0,"versions":3},"createdAt":1772262691934,"updatedAt":1777525464995},"latestVersion":{"version":"1.0.2","createdAt":1772263611738,"changelog":"# OpenWeather Skill for OpenClaw\n\n## Overview\n\nThe **OpenWeather Skill** is a lightweight, security-conscious weather and forecast integration for OpenClaw agents.  \nIt provides current conditions, short-term, and extended forecasts using the **OpenWeather One Call API 3.0**, optimized for conversational use rather than raw data delivery.\n\nThe skill is intentionally implemented as a **small Python CLI (stdlib only)** to keep behavior transparent, auditable, and easy to reason about in security reviews.\n\nIt is designed to be:\n- Predictable\n- Low-risk\n- Easy to sandbox\n- Suitable for public ClawHub distribution\n\n---\n\n## What This Skill Does\n\nThis skill enables an OpenClaw agent to answer weather-related questions such as:\n\n- “What’s the weather right now?”\n- “What’s the forecast for the next few days?”\n- “Will it rain later today?”\n- “How hot will it get tomorrow?”\n\nIt resolves human-readable locations to coordinates using OpenWeather Geocoding, then retrieves a **single unified forecast payload** from the One Call 3.0 API.\n\nEach request uses:\n- **1 geocoding call**\n- **1 One Call API call**\n\nNo additional endpoints are accessed.\n\n---\n\n## Why OpenWeather One Call 3.0\n\nOpenWeather One Call 3.0 provides a stable and comprehensive dataset in a single response, which is especially well suited for agent workflows.\n\nAdvantages:\n- Current, hourly, and daily forecasts in one response\n- Consistent field structure across time horizons\n- Up to 8 days of forecast data\n- Contextual signals such as UV index and moon phase\n- Fewer API calls and fewer edge cases\n\nThis allows OpenClaw agents to produce clearer, more reliable answers with minimal glue logic.\n\n---\n\n## Changelog\n\n### 1.0.2 — Packaging cleanup\n\n- Removed duplicate top-level `weather.py` file.\n- Skill now ships with a single executable CLI at `scripts/weather.py`.\n- No behavioral or configuration changes.\n- Improves clarity during security scans and code review.\n\n### 1.0.1 — Documentation and behavior alignment\n\n- Implemented true “default home location” behavior via `OPENWEATHER_DEFAULT_LOCATION`.\n- CLI now uses the default location when no city is provided.\n- Removed incorrect references to `curl`; implementation uses Python `urllib` only.\n- Explicitly documented all configuration via environment variables.\n- Ensured documented behavior matches runtime behavior exactly.\n\n### 1.0.0 — Initial public release\n\n- Initial OpenClaw-compatible weather skill.\n- Supports current, hourly, and daily forecasts.\n- Uses OpenWeather Geocoding + One Call API 3.0.\n- Designed for low-risk, on-demand execution.\n\n---\n\n## Configuration\n\nAll configuration is done via environment variables.\n\nRequired:\n- `OPENWEATHER_API_KEY`  \n  OpenWeather API key with One Call 3.0 enabled.\n\nOptional:\n- `OPENWEATHER_UNITS`  \n  Measurement units: `imperial`, `metric`, or `standard` (default: `imperial`)\n- `OPENWEATHER_DEFAULT_LOCATION`  \n  Default “home” location used when no city is provided (e.g. `Johnstown, PA, US`)\n\nThere are:\n- No config files\n- No hidden state\n- No persistent storage\n\n---\n\n## Security Model\n\nThis skill is intentionally conservative.\n\n- Uses Python standard library only\n- No package installs\n- No external downloads\n- No file system access beyond execution\n- No user data storage\n- No background execution\n- No elevated privileges\n\nNetwork behavior:\n- HTTPS only\n- Requests restricted to OpenWeather domains\n- Maximum of 2 API calls per request\n\nCredentials:\n- Reads only declared environment variables\n- Does not transmit credentials outside OpenWeather endpoints","license":null},"metadata":{"os":null,"systems":null},"owner":{"handle":"joshua-ensley","userId":"publishers:joshua-ensley","displayName":"Joshua Ensley","image":"https://avatars.githubusercontent.com/u/159086557?v=4"},"moderation":null}