Strava (Official API)
Keep this skill source-only: connect to Strava, fetch activities, normalize output, and render a short message. Delivery is channel-agnostic.
Configuration
Required env vars:
STRAVA_CLIENT_IDSTRAVA_CLIENT_SECRETSTRAVA_REDIRECT_URI
Optional:
STRAVA_TOKEN_PATH(default:~/.config/openclaw/strava/token.json)STRAVA_TZ(default:Asia/Shanghai)
Connect (OAuth)
Choose one mode:
- Phone/remote mode (recommended):
python3 scripts/strava_oauth_login.py
- Desktop loopback mode (optional): if you are authorizing in a browser on the same machine that runs OpenClaw and your
STRAVA_REDIRECT_URIis a loopback URL (e.g.http://127.0.0.1:58539/callback):
python3 scripts/strava_oauth_login.py --loopback
Fetch activities for a day
python3 scripts/strava_fetch_activities.py --date today --out /tmp/strava_raw_today.json
python3 scripts/strava_normalize_daily.py /tmp/strava_raw_today.json --out /tmp/strava_today.json
python3 scripts/strava_render.py /tmp/strava_today.json --format markdown --channel generic
Notes
- API details:
references/strava_api.md - Normalized output contract (for Wellness hub):
references/output_schema.md