weather-now
GitHub获取实时天气与预报,集成wttr.in与Open-Meteo双源,自动降级确保高可用。将原始数据转化为通俗解读,提供精确curl命令及时间戳,支持多格式输出与单位转换,适用于查询当前状况或未来预测。
触发场景
安装
npx skills add mohitagw15856/pm-claude-skills --skill weather-now -g -y
SKILL.md
Frontmatter
{
"name": "weather-now",
"description": "Get current weather and forecasts with zero API keys — wttr.in one-liners for humans, Open-Meteo JSON for data, with the exact curl commands and format codes. Use when asked what's the weather, will it rain today, forecast for a city, or get me weather data for a location. Produces the live conditions or forecast pulled via curl, interpreted plainly, with the source timestamp and the command used shown so the user can rerun it."
}
Weather Now Skill
Weather is the perfect agent utility: everyone asks, and two excellent services answer over plain HTTPS with no keys, no signup, no SDK. This skill knows both — wttr.in for beautiful one-line and full-terminal answers, Open-Meteo for structured JSON when the task needs numbers — plus the format codes and fallback discipline that make the answer reliable instead of lucky.
What This Skill Produces
- The answer — current conditions or forecast, interpreted in one plain sentence before any raw data
- The data — the relevant fields (temp, precipitation, wind, humidity) at the units the user lives in
- The command — the exact curl used, shown so the user can rerun or script it
- The caveat line — data source and its timestamp; weather data is advisory, not aviation/safety-grade
Required Inputs
Ask for these if not provided:
- Location — city name, airport code (wttr.in takes IATA), lat/lon, or "here" (ask rather than guess the user's location)
- What they actually want — right-now vs. today vs. multi-day; "will it rain" wants precipitation timing, not a temperature
- Units — metric/imperial if ambiguous from the location
Framework: The Two Services
- wttr.in — primary for human answers:
curl -s "wttr.in/Tokyo?format=3"→ one line. Format codes:%ccondition icon,%ttemp,%hhumidity,%wwind,%pprecipitation,%mmoon phase — compose as?format="%l:+%c+%t,+wind+%w". Full 3-day panel:curl -s "wttr.in/Tokyo"(add?mmetric,?uimperial,?Tno-color for parsing). Airport codes work:wttr.in/nrt. PNG for sharing:wttr.in/Tokyo.png. - Open-Meteo — primary for data, fallback for everything:
curl -s "https://api.open-meteo.com/v1/forecast?latitude=35.68&longitude=139.69¤t_weather=true"→ JSON. Rich forecasts: append&hourly=temperature_2m,precipitation_probability&daily=temperature_2m_max,temperature_2m_min,precipitation_sum&timezone=auto&forecast_days=3. Geocode names first when needed:https://geocoding-api.open-meteo.com/v1/search?name=Tokyo&count=1. - Fallback discipline: wttr.in rate-limits and occasionally naps — on any non-weather response, switch to Open-Meteo silently and say which source answered. Never present a failed fetch as "no data exists."
- Interpret, don't dump: the deliverable is "light rain from ~3pm, carry the umbrella" with the numbers beneath — not a JSON blob. Weather codes from Open-Meteo (WMO codes: 0 clear, 1–3 clouds, 51–67 rain, 71–77 snow, 95+ thunderstorm) get translated to words.
- Timestamp honesty: quote the observation/forecast time from the response; if the tool environment has no network, say so and provide the command for the user to run — never recite remembered weather.
Output Format
Weather: [location, resolved]
[The one-sentence answer to what they actually asked.]
[Conditions table or forecast lines, right units]
Source: [wttr.in / Open-Meteo] at [response timestamp] · rerun: [the exact curl]
Live data, advisory only — for safety-critical decisions use official meteorological services.
Quality Checks
- The first line answers the actual question (rain timing, not temperature, if rain was asked)
- Units match the user's locale or stated preference
- The source and its timestamp are quoted
- The rerunnable curl appears
- Fallback engaged silently on primary failure, and the answer names which source spoke
Anti-Patterns
- Do not answer from memory — no network means no weather; say so and hand over the command
- Do not dump raw JSON as the answer — interpret first, data second
- Do not guess the user's location — ask, or use the location they named
- Do not present a rate-limited wttr.in error page as weather
- Do not oversell precision — hour-level precipitation timing is a forecast, and the wording should sound like one
版本历史
- 54fad50 当前 2026-07-19 13:46


