← Back to Skills Marketplace
joshua-ensley

OpenWeather

by Joshua Ensley · GitHub ↗ · v1.0.2
cross-platform ✓ Security Clean
423
Downloads
0
Stars
1
Active Installs
3
Versions
Install in OpenClaw
/install openweather
Description
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...
Usage Guidance
This skill appears coherent and limited to calling OpenWeather endpoints. Before installing: ensure you trust the owner (homepage/source is not provided), and only provide an API key that has the One Call 3.0 product enabled. Be aware of OpenWeather rate limits and billing for your key. The script restricts network requests to OpenWeather domains and does not persist data, but treat the API key as sensitive — don't reuse a high-privilege key you use elsewhere. If you need higher assurance, verify the skill's origin (repository or publisher) or run the included script in an isolated environment first.
Capability Analysis
Type: OpenClaw Skill Name: openweather Version: 1.0.2 The OpenWeather skill is benign. The `scripts/weather.py` file includes robust URL whitelisting in its `fetch` function, ensuring all network requests are strictly confined to `api.openweathermap.org` or `openweathermap.org`, preventing arbitrary data exfiltration. Input sanitization is handled via `urllib.parse.quote` for city names, and command-line arguments are parsed and used internally within Python, avoiding shell injection risks. There are no signs of prompt injection in `SKILL.md`, no attempts to access sensitive files, no persistence mechanisms, and no obfuscation.
Capability Assessment
Purpose & Capability
Name/description (OpenWeather forecasts) match the included Python CLI and README. Required binary (python3) and primary env var (OPENWEATHER_API_KEY) are exactly what this purpose needs.
Instruction Scope
SKILL.md and the CLI limit behavior to resolving a location and calling OpenWeather geocoding + onecall endpoints. Rules explicitly limit calls (<=2 per request) and require asking for location if none is configured. No instructions to read unrelated files, system config, or transmit data to unknown endpoints.
Install Mechanism
No install spec (instruction-only) and included Python script uses only the standard library. Nothing is downloaded from external URLs or written to arbitrary locations during install.
Credentials
Only OPENWEATHER_API_KEY is required (primaryEnv). Optional env vars (OPENWEATHER_UNITS, OPENWEATHER_DEFAULT_LOCATION) are appropriate for a weather skill. The code only reads these env vars and no other secrets or config paths.
Persistence & Privilege
The skill is not forced-always, does not request persistent system privileges, and does not modify other skills' configs. Autonomous invocation is allowed by default (normal) but the skill itself has limited scope.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install openweather
  3. After installation, invoke the skill by name or use /openweather
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.2
# OpenWeather Skill for OpenClaw ## Overview The **OpenWeather Skill** is a lightweight, security-conscious weather and forecast integration for OpenClaw agents. It 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. The skill is intentionally implemented as a **small Python CLI (stdlib only)** to keep behavior transparent, auditable, and easy to reason about in security reviews. It is designed to be: - Predictable - Low-risk - Easy to sandbox - Suitable for public ClawHub distribution --- ## What This Skill Does This skill enables an OpenClaw agent to answer weather-related questions such as: - “What’s the weather right now?” - “What’s the forecast for the next few days?” - “Will it rain later today?” - “How hot will it get tomorrow?” It resolves human-readable locations to coordinates using OpenWeather Geocoding, then retrieves a **single unified forecast payload** from the One Call 3.0 API. Each request uses: - **1 geocoding call** - **1 One Call API call** No additional endpoints are accessed. --- ## Why OpenWeather One Call 3.0 OpenWeather One Call 3.0 provides a stable and comprehensive dataset in a single response, which is especially well suited for agent workflows. Advantages: - Current, hourly, and daily forecasts in one response - Consistent field structure across time horizons - Up to 8 days of forecast data - Contextual signals such as UV index and moon phase - Fewer API calls and fewer edge cases This allows OpenClaw agents to produce clearer, more reliable answers with minimal glue logic. --- ## Changelog ### 1.0.2 — Packaging cleanup - Removed duplicate top-level `weather.py` file. - Skill now ships with a single executable CLI at `scripts/weather.py`. - No behavioral or configuration changes. - Improves clarity during security scans and code review. ### 1.0.1 — Documentation and behavior alignment - Implemented true “default home location” behavior via `OPENWEATHER_DEFAULT_LOCATION`. - CLI now uses the default location when no city is provided. - Removed incorrect references to `curl`; implementation uses Python `urllib` only. - Explicitly documented all configuration via environment variables. - Ensured documented behavior matches runtime behavior exactly. ### 1.0.0 — Initial public release - Initial OpenClaw-compatible weather skill. - Supports current, hourly, and daily forecasts. - Uses OpenWeather Geocoding + One Call API 3.0. - Designed for low-risk, on-demand execution. --- ## Configuration All configuration is done via environment variables. Required: - `OPENWEATHER_API_KEY` OpenWeather API key with One Call 3.0 enabled. Optional: - `OPENWEATHER_UNITS` Measurement units: `imperial`, `metric`, or `standard` (default: `imperial`) - `OPENWEATHER_DEFAULT_LOCATION` Default “home” location used when no city is provided (e.g. `Johnstown, PA, US`) There are: - No config files - No hidden state - No persistent storage --- ## Security Model This skill is intentionally conservative. - Uses Python standard library only - No package installs - No external downloads - No file system access beyond execution - No user data storage - No background execution - No elevated privileges Network behavior: - HTTPS only - Requests restricted to OpenWeather domains - Maximum of 2 API calls per request Credentials: - Reads only declared environment variables - Does not transmit credentials outside OpenWeather endpoints
v1.0.1
- Added initial implementation of the skill logic in weather.py. - Now supports `OPENWEATHER_DEFAULT_LOCATION` environment variable to provide a fallback location if no city is specified. - Updated environment variable descriptions and config for clarity. - SKILL.md simplified and updated to reflect usage and new default location feature. - Added explicit note: do not claim to use curl; the skill uses Python urllib.
v1.0.0
## Changelog ### 1.0.0 — Initial Public Release ### Why OpenWeather (and why this skill) The **OpenWeather One Call API 3.0** provides the most complete, unified weather dataset available in OpenClaw today. Unlike other weather APIs commonly bundled with agents—which often require multiple endpoints, lack daily forecasts, omit astronomical data, or restrict alert access—One Call 3.0 delivers **current conditions, short-term, long-term, and contextual data in a single, consistent response**. In practical terms, this means: - Fewer API calls to assemble a complete forecast - Consistent fields across current, hourly, and daily data - Access to forecast depth (8 days) and context (UV index, alerts, moon phase) that simpler APIs do not expose - More reliable conversational output because the data model is stable and predictable For agents, this translates directly into **better answers with less glue code**, fewer edge cases, and more natural explanations. --- ### Subscription Requirement The **OpenWeather One Call API 3.0 requires an active One Call 3.0 subscription** on your OpenWeather account. A **free plan is available**, but you must explicitly enable/activate the One Call 3.0 product for your API key before requests will succeed. This skill integrates the **OpenWeather One Call API 3.0** (with OpenWeather Geocoding) to provide comprehensive, production-ready weather data optimized for conversational agents and chat platforms. #### Forecast Products Supported (One Call 3.0) - **Current weather** (near real-time conditions) - **Minutely forecast** (short-term precipitation, where available) - **Hourly forecast** (up to 48 hours) - **Daily forecast** (up to 8 days) - **Weather alerts** (where provided by local authorities) #### Current / Hourly / Daily Weather Data - Weather condition codes and human-readable descriptions - Temperature and “feels like” temperature - Daily temperature min/max and daily “feels like” ranges - Humidity, atmospheric pressure, and dew point - Cloudiness percentage and visibility (where provided) - UV index (UVI) - Wind speed, wind direction, and wind gusts (where provided) - Precipitation probability (PoP) - Rain and snow volume (hourly or daily totals, where provided) - Sunrise and sunset times - Timezone-aware timestamps based on location #### Astronomical Data - Moon phase - Moonrise and moonset times (where provided) - Astronomical data aligned to the local timezone #### Alerts (When Available) - Alert event name - Alert start and end times - Issuing authority or sender - Alert description text - Alert tags (where provided) #### Location Resolution - City, state/region, and country name resolution via OpenWeather Geocoding - Automatic latitude and longitude lookup - Graceful handling of ambiguous or partially specified locations - Global coverage based on OpenWeather-supported regions #### Conversational Output - Output formatted for natural chatbot dialogue rather than raw API payloads - Sentence- and paragraph-aware response formatting - Safe message chunking to prevent truncation or silent delivery failures - Predictable multi-message flow when platform message limits are exceeded - Optimized for Telegram and similar chat platforms #### Security and Configuration - Uses environment-based API key configuration via `OPENWEATHER_API_KEY` - No hardcoded credentials - No user data storage - No external state or persistent storage required #### Reliability and Portability - Compatible with containerized OpenClaw deployments - No host-specific paths or assumptions - Designed for ClawHub distribution and reuse - Defensive request validation to prevent malformed API calls or invalid input This release is intended as a stable, production-ready weather and forecast skill suitable for personal agents, shared bots, and public ClawHub distribution.
Metadata
Slug openweather
Version 1.0.2
License
All-time Installs 1
Active Installs 1
Total Versions 3
Frequently Asked Questions

What is OpenWeather?

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... It is an AI Agent Skill for Claude Code / OpenClaw, with 423 downloads so far.

How do I install OpenWeather?

Run "/install openweather" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is OpenWeather free?

Yes, OpenWeather is completely free (open-source). You can download, install and use it at no cost.

Which platforms does OpenWeather support?

OpenWeather is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created OpenWeather?

It is built and maintained by Joshua Ensley (@joshua-ensley); the current version is v1.0.2.

💬 Comments