Get current weather and forecasts using free APIs

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.
---
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:
```bash
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`Overview
If ~/.gooseworks/credentials.json does not exist, tell the user to run: npx gooseworks login
Manual install (npx, ZIP)
npx skills add gooseworks-ai/goose-skills --skill weather -g -a claude-codemkdir -p ~/.claude/skills && curl -sL https://codeload.github.com/gooseworks-ai/goose-skills/tar.gz/615c685f34f8 \
| tar -xz -C ~/.claude/skills --strip-components=4 goose-skills-615c685f34f8/skills/research-tools/capabilities/weatherNew-Item -ItemType Directory -Force "$HOME\.claude\skills" | Out-Null; Invoke-WebRequest "https://m.agentalley.io/zip/9c72259a02d4c8217226/weather.zip" -OutFile "$env:TEMP\weather.zip"; Expand-Archive "$env:TEMP\weather.zip" -DestinationPath "$HOME\.claude\skills" -ForceConnects with Agent Alley MCP · agentalley.io/mcp
Files included
SKILL.md2.3 KBskill.meta.json269 B
Read the files here
gooseworks-ai/
Show the full text94 lines
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"
# 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"
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+Yorkorwttr.in/San%20Francisco - Airport codes work:
wttr.in/JFK,wttr.in/SFO - Units:
?mmetric,?uUSCS (Fahrenheit) - Limit days:
?1today only,?0current 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"
| 1 | |
| 2 | name weather |
| 3 | 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. |
| 4 | source orthogonal |
| 5 | |
| 6 | |
| 7 | |
| 8 | # Weather |
| 9 | |
| 10 | ## Setup |
| 11 | |
| 12 | Read your credentials from ~/.gooseworks/credentials.json: |
| 13 | |
| 14 | export GOOSEWORKS_API_KEY=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json'))['api_key'])") |
| 15 | export GOOSEWORKS_API_BASE=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json')).get('api_base','https://api.gooseworks.ai'))") |
| 16 | |
| 17 | |
| 18 | If ~/.gooseworks/credentials.json does not exist, tell the user to run: `npx gooseworks login` |
| 19 | |
| 20 | All endpoints use Bearer auth: `-H "Authorization: Bearer $GOOSEWORKS_API_KEY"` |
| 21 | |
| 22 | |
| 23 | Get weather data using free services - no API keys needed. |
| 24 | |
| 25 | ## wttr.in (Primary) |
| 26 | |
| 27 | Fast, simple, works everywhere. |
| 28 | |
| 29 | **Quick check:** |
| 30 | |
| 31 | curl -s "wttr.in/London?format=3" |
| 32 | # Output: London: ⛅️ +8°C |
| 33 | |
| 34 | |
| 35 | **Compact format:** |
| 36 | |
| 37 | curl -s "wttr.in/London?format=%l:+%c+%t+%h+%w" |
| 38 | # Output: London: ⛅️ +8°C 71% ↙5km/h |
| 39 | |
| 40 | |
| 41 | **Full forecast:** |
| 42 | |
| 43 | curl -s "wttr.in/London?T" |
| 44 | |
| 45 | |
| 46 | ### Format Codes |
| 47 | | Code | Meaning | |
| 48 | |------|---------| |
| 49 | | `%c` | Weather condition emoji | |
| 50 | | `%t` | Temperature | |
| 51 | | `%h` | Humidity | |
| 52 | | `%w` | Wind | |
| 53 | | `%l` | Location | |
| 54 | | `%m` | Moon phase | |
| 55 | |
| 56 | ### Tips |
| 57 | URL-encode spaces: `wttr.in/New+York` or `wttr.in/San%20Francisco` |
| 58 | Airport codes work: `wttr.in/JFK`, `wttr.in/SFO` |
| 59 | Units: `?m` metric, `?u` USCS (Fahrenheit) |
| 60 | Limit days: `?1` today only, `?0` current only |
| 61 | Save as image: `curl -s "wttr.in/Berlin.png" -o weather.png` |
| 62 | |
| 63 | ## Open-Meteo (JSON API) |
| 64 | |
| 65 | Better for programmatic use. Free, no key. |
| 66 | |
| 67 | |
| 68 | curl -s "https://api.open-meteo.com/v1/forecast?latitude=37.77&longitude=-122.42¤t_weather=true" |
| 69 | |
| 70 | |
| 71 | Response includes: temperature, windspeed, weathercode, time. |
| 72 | |
| 73 | ### Get coordinates first |
| 74 | |
| 75 | curl -s "https://geocoding-api.open-meteo.com/v1/search?name=San+Francisco&count=1" |
| 76 | |
| 77 | |
| 78 | ## Examples |
| 79 | |
| 80 | **San Francisco right now:** |
| 81 | |
| 82 | curl -s "wttr.in/San+Francisco?format=3" |
| 83 | |
| 84 | |
| 85 | **Tokyo 3-day forecast:** |
| 86 | |
| 87 | curl -s "wttr.in/Tokyo?3T" |
| 88 | |
| 89 | |
| 90 | **JSON weather for coordinates:** |
| 91 | |
| 92 | curl -s "https://api.open-meteo.com/v1/forecast?latitude=35.68&longitude=139.69¤t_weather=true&hourly=temperature_2m" |
| 93 | |
| 94 |
Details
- Updated
- Sep 21, 2026
- License
- MIT
- Stars on the repo
- ★ 1,220
- Checked
- Source
- gooseworks-ai/goose-skills ↗
- Creator
- gooseworks-ai · 206 listings
Made with weather

Similar skills
See all →
SkillGuides stable API and interface design
MCPPulls up-to-date, version-specific library docsContext7
SkillFetch up-to-date documentation and code examples for anyContext7 Documentation Lookup
SkillHow to use the Adaptyv Bio Foundry API and Python SDK
SkillMaster C/.NET backend development patterns for building
SkillGuides the usage of Gemini Interactions API on GeminiGemini Interactions API SkillMore from gooseworks-ai
SkillMine the highest-converting ad angles from customer reviewsAd angle miner
SkillAnalyze ad campaign performance data to identify what'sAd campaign analyzer
SkillFor paid lead-gen and participant-recruitment adsAd lead quality analyzer
SkillAnalyze the message match between your ads and landing pagesAd to landing page auditor
SkillCheck and improve your brand's visibility across AI searchAeo
SkillSearch Amazon products - find items, compare pricesAmazon Product Search