| name | weather |
| description | 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. |
| source | orthogonal |
Weather
Setup
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.
wttr.in (Primary)
Fast, simple, works everywhere.
Quick check:
curl -s "wttr.in/London?format=3"
Compact format:
curl -s "wttr.in/London?format=%l:+%c+%t+%h+%w"
Full forecast:
curl -s "wttr.in/London?T"
Format Codes
| Code | Meaning |
|---|
%c | Weather condition emoji |
%t | Temperature |
%h | Humidity |
%w | Wind |
%l | Location |
%m | Moon phase |
Tips
- URL-encode spaces:
wttr.in/New+York or wttr.in/San%20Francisco
- Airport codes work:
wttr.in/JFK, wttr.in/SFO
- Units:
?m metric, ?u USCS (Fahrenheit)
- Limit days:
?1 today only, ?0 current only
- Save as image:
curl -s "wttr.in/Berlin.png" -o weather.png
Open-Meteo (JSON API)
Better 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.
Get coordinates first
curl -s "https://geocoding-api.open-meteo.com/v1/search?name=San+Francisco&count=1"
Examples
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"