gooseworks-ai/weather
Get current weather and forecasts using free APIs (no API key required). Use when asked about weather, temperature, forecasts, or climate conditions for any location.
npx skills add https://github.com/gooseworks-ai/goose-skills --skill weather
Read your credentials from ~/.gooseworks/credentials.json:
export GOOSEWORKS_API_KEY=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json'))['api_key'])")
export GOOSEWORKS_API_BASE=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json')).get('api_base','https://api.gooseworks.ai'))")
If ~/.gooseworks/credentials.json does not exist, tell the user to run: npx gooseworks login
All endpoints use Bearer auth: -H "Authorization: Bearer $GOOSEWORKS_API_KEY"
Get weather data using free services - no API keys needed.
Fast, simple, works everywhere.
Quick check:
curl -s "wttr.in/London?format=3"
# Output: London: ⛅️ +8°C
Compact format:
curl -s "wttr.in/London?format=%l:+%c+%t+%h+%w"
# Output: London: ⛅️ +8°C 71% ↙5km/h
Full forecast:
curl -s "wttr.in/London?T"
| Code | Meaning |
|------|---------|
| %c | Weather condition emoji |
| %t | Temperature |
| %h | Humidity |
| %w | Wind |
| %l | Location |
| %m | Moon phase |
wttr.in/New+York or wttr.in/San%20Franciscowttr.in/JFK, wttr.in/SFO?m metric, ?u USCS (Fahrenheit)?1 today only, ?0 current onlycurl -s "wttr.in/Berlin.png" -o weather.pngBetter for programmatic use. Free, no key.
curl -s "https://api.open-meteo.com/v1/forecast?latitude=37.77&longitude=-122.42¤t_weather=true"
Response includes: temperature, windspeed, weathercode, time.
curl -s "https://geocoding-api.open-meteo.com/v1/search?name=San+Francisco&count=1"
San Francisco right now:
curl -s "wttr.in/San+Francisco?format=3"
Tokyo 3-day forecast:
curl -s "wttr.in/Tokyo?3T"
JSON weather for coordinates:
curl -s "https://api.open-meteo.com/v1/forecast?latitude=35.68&longitude=139.69¤t_weather=true&hourly=temperature_2m"
Take gooseworks-ai/weather from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.
The instructions reference npx.
Without those the skill loads but fails at the first command.