skills/beach-check/SKILL.md
Check beach water quality and swimming safety at NSW beaches. Use this skill when the user asks about beach conditions, water quality, safe to swim, Beachwatch results, pollution forecast, ocean swimming, beach closures, or mentions specific Sydney/NSW beaches like Bondi, Coogee, Manly, Bronte, Maroubra, Cronulla, etc. Works with zero configuration — no API keys needed. Works in any environment — Telegram, WhatsApp, Signal, Discord, terminal, or any chat platform.
npx skillsauth add agairola/life-skills beach-checkInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Check water quality and swimming safety at NSW beaches. Zero config — no API keys, no setup.
npx skills add agairola/life-skills --skill beach-check
Trigger this skill when the user:
brew install uv (macOS) or pip install uv (all platforms)uv run.!command -v uv > /dev/null 2>&1 && echo "uv: installed" || echo "uv: NOT INSTALLED"
Follow the standard location resolution steps in ../../references/location-flow.md before running the script. Skill-specific additions:
--beach instead of location flags.uv run "${CLAUDE_SKILL_DIR}/scripts/beach_check.py" [LOCATION_FLAGS] [OPTIONS]
| Flag | Values | Default | Purpose |
|------|--------|---------|---------|
| --beach | beach name (string) | — | Search for a specific beach by name |
| --location | suburb/city name | — | Find nearby beaches by place name |
| --lat | latitude (float) | — | Latitude for nearby search |
| --lng | longitude (float) | — | Longitude for nearby search |
| --radius | km (integer) | 10 | Search radius for nearby mode |
| --no-cache | (flag) | off | Force fresh data |
Only parse stdout (JSON). Stderr contains diagnostics only.
# Search for a specific beach by name
uv run "${CLAUDE_SKILL_DIR}/scripts/beach_check.py" --beach "Bondi"
# User shared location via chat platform
uv run "${CLAUDE_SKILL_DIR}/scripts/beach_check.py" --lat -33.92 --lng 151.26
# User mentioned a place
uv run "${CLAUDE_SKILL_DIR}/scripts/beach_check.py" --location "Coogee, NSW"
# Auto-detect location (terminal — opens browser on first run)
uv run "${CLAUDE_SKILL_DIR}/scripts/beach_check.py"
# Wider search radius
uv run "${CLAUDE_SKILL_DIR}/scripts/beach_check.py" --location "Manly" --radius 20
Follow the formatting rules in ../../references/platform-formatting.md. Key skill-specific formatting below.
Each beach in the JSON includes two URL fields:
google_maps_url — searches by beach nameapple_maps_url — pins exact lat/lng with beach name labelUse hyperlinks (not raw URLs) where the platform supports them:
[Beach Name](url)Provide both Google Maps and Apple Maps links so the user can choose.
Beach search (--beach): Show detailed info for the matched beach plus similar alternatives.
Nearby (--location or --lat/--lng): Show a list of nearby beaches sorted by distance with water quality.
For platforms with hyperlinks (Telegram, Discord, terminal):
Bondi Beach — Water Quality: Good
Pollution forecast: Unlikely
Last tested: 10 Mar 2026
[Google Maps](google_maps_url) · [Apple Maps](apple_maps_url)
Similar beaches:
· North Bondi Beach — Good · 0.5 km
· Bronte Beach — Good · 1.2 km
For platforms without hyperlinks (WhatsApp, Signal, SMS):
Bondi Beach — Water Quality: Good
Pollution forecast: Unlikely
Last tested: 10 Mar 2026
Google Maps: [google_maps_url]
Apple Maps: [apple_maps_url]
Similar beaches:
· North Bondi Beach — Good · 0.5 km
· Bronte Beach — Good · 1.2 km
For platforms with hyperlinks:
Beaches near Coogee (within 10 km):
1. [Coogee Beach](google_maps_url) — Good · 1.2 km
Pollution: Unlikely
[Apple Maps](apple_maps_url)
2. [Maroubra Beach](google_maps_url) — Good · 2.1 km
Pollution: Unlikely
3. [Bronte Beach](google_maps_url) — Fair · 2.5 km
Pollution: Possible
5 beaches found within 10 km · Beachwatch NSW
For platforms without hyperlinks:
Beaches near Coogee (within 10 km):
1. Coogee Beach — Good · 1.2 km
Pollution: Unlikely
Google Maps: [google_maps_url]
Apple Maps: [apple_maps_url]
2. Maroubra Beach — Good · 2.1 km
Pollution: Unlikely
Google Maps: [google_maps_url]
3. Bronte Beach — Fair · 2.5 km
Pollution: Possible
Google Maps: [google_maps_url]
5 beaches found within 10 km · Beachwatch NSW
"stale": true in JSON, append the stale_note — "Heads up: water quality data for this beach is [N] days old and may not reflect current conditions."confidence: "low"): Do not silently show results. Tell the user: "I got an approximate location of [city] but it may not be exact. What suburb or postcode are you near?" Rerun with their answer.stale: true): Show results but add a note — "Heads up: water quality data for some beaches is several days old and may not reflect current conditions."| Rating | Value | Meaning | |--------|-------|---------| | Good | 4 | Safe for swimming — low bacterial levels | | Fair | 3 | Generally safe — minor pollution risk | | Poor | 2 | Swimming not recommended — elevated bacteria | | Bad | 1 | Do not swim — high contamination risk |
| Forecast | Meaning | |----------|---------| | Unlikely | Low chance of pollution — safe conditions expected | | Possible | Some chance of pollution — check before swimming | | Likely | High chance of pollution — avoid swimming | | Forecast not available | No forecast data — use water quality rating as guide |
All data comes from the NSW Government Beachwatch program via their public API. No API key needed. Data is updated regularly by the NSW Office of Environment and Heritage. No user data is sent to any service beyond coordinates for geocoding.
When the script runs, it resolves location internally in this order:
--lat/--lng or --location (Nominatim geocoding)navigator.geolocation (WiFi, ~15-50ft accuracy, cached 24hrs)The agent should almost never reach step 3. The Location Flow above ensures the user provides location info before the script runs.
content-media
Extract transcripts from YouTube videos. Use when the user asks for a transcript, subtitles, or captions of a YouTube video and provides a YouTube URL (youtube.com/watch?v=, youtu.be/, or similar). Supports output with or without timestamps.
development
Check the current UV index and sun safety advice for Australian cities. Use this skill when the user asks about UV index, sunscreen, sun protection, sunburn risk, whether it's safe to be outside in the sun, SPF recommendation, or sun safety for any Australian city. Works with zero configuration — no API keys needed.
development
Check live traffic incidents, roadworks, and hazards in Sydney. Use this skill when the user asks about traffic jams, road closures, accidents, roadworks, traffic conditions, how the traffic is, M5 traffic, highway conditions, or any Sydney traffic question. Works without API keys (provides Live Traffic NSW/Google Maps links) but best with a free TfNSW API key for real-time incident data.
development
Check Sydney toll road prices and calculate route toll costs. Use this skill when the user asks about toll prices, toll costs, how much the toll is, M2 toll, harbour bridge toll, tunnel toll, cheapest route, toll calculator, E-Tag, Linkt, or any Sydney toll road question. Works with zero configuration — no API keys needed.