Weather Open‑Meteo
v0.1.5Get current weather and forecasts via open-meteo.com with optional fallback to wttr.in if available. No API key required.
Like a lobster shell, security has layers — review code before you run it.
License
Runtime requirements
SKILL.md
Weather Open‑Meteo Skill
This skill provides current weather and simple forecasts by querying the open‑meteo.com public API. If the geocoding lookup or weather request fails, the skill can fall back to wttr.in as a lightweight alternative.
📌 Scope & Caveats
- The skill requires
curlandjq. - Location parameters are encoded before being sent to the API.
- Examples below demonstrate safe query construction using jq @uri.
✅ When to Use
✔ The user asks for weather, forecast, temperature, or rain probability for a location. ✖ Not for historical data, severe alerts, or detailed climatology.
📋 Commands
The skill accepts a single argument: a location name (city, region, or coordinates in lat,lon).
Open‑Meteo (primary, JSON)
Geocoding (co‑ordinates for a place):
curl -s "https://geocoding-api.open-meteo.com/v1/search?name=São+Paulo\u0026count=1" | jq '.results[0] | {name, latitude, longitude}'
Current weather (by co‑ordinates):
curl -s "https://api.open-meteo.com/v1/forecast?latitude=-23.55\u0026longitude=-46.63\u0026current_weather=true" | jq '.current_weather'
7‑day forecast (by co‑ordinates):
curl -s "https://api.open-meteo.com/v1/forecast?latitude=-23.55\u0026longitude=-46.63\u0026daily=temperature_2m_max,temperature_2m_min,precipitation_sum\u0026forecast_days=7" | jq '.daily'
Example JSON excerpt
{
"latitude": -23.55,
"longitude": -46.63,
"current_weather": {
"temperature": -5.3,
"windspeed": 3.9,
"winddirection": 200,
"weathercode": 80,
"time": "2024-02-18T14:00"
}
}
wttr.in (fallback)
One‑liner (HTML text):
curl -s "wttr.in/São+Paulo?format=3"
Compact plain‑text:
curl -s "wttr.in/São+Paulo?format=1"
PNG image (for terminals or embeds):
curl -s -o sp.png "http://wttr.in/São+Paulo?format=1"
📚 Example (User Query)
User: What's the weather in São Paulo? Agent:
Current conditions in São Paulo: 🌤️ +10 °C, 20% chance of rain
Tips
- URL‑encode city names:
curl -s "https://geocoding-api.open-meteo.com/v1/search?name=$(echo São Paulo | jq -sRr @uri)" - Use
jqto build the query dynamically:city="São Paulo" lat=$(curl -s "https://geocoding-api.open-meteo.com/v1/search?name=$(echo $city | jq -sRr @uri)" | jq -r '.results[0].latitude') lon=$(curl -s "https://geocoding-api.open-meteo.com/v1/search?name=$(echo $city | jq -sRr @uri)" | jq -r '.results[0].longitude') - You can pass
latitudeandlongitudedirectly if you know them. - The API is rate‑limited (≈100 requests/min). Keep scripts cached or use short intervals.
Files
1 totalComments
Loading comments…
