Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Pull real-time training plans, workouts, fitness metrics (CTL/ATL/TSB), and personal records from TrainingPeaks. Uses cookie-based authentication (no API key needed). Use in conjunction with other endurance, cycling, running or swimming triathlon coach skills for best results.
Pull real-time training plans, workouts, fitness metrics (CTL/ATL/TSB), and personal records from TrainingPeaks. Uses cookie-based authentication (no API key needed). Use in conjunction with other endurance, cycling, running or swimming triathlon coach skills for best results.
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
CLI access to the TrainingPeaks internal API. Pure Python stdlib โ no pip dependencies.
Log in to TrainingPeaks in your browser Open DevTools โ Application โ Cookies โ app.trainingpeaks.com Find the cookie named Production_tpAuth Copy its value (long encoded string) Then authenticate: python3 scripts/tp.py auth "<paste_cookie_value_here>" Or set the environment variable (useful for CI/scripts): export TP_AUTH_COOKIE="<cookie_value>" Credentials are stored in ~/.trainingpeaks/ with 0600 permissions.
Store and validate a Production_tpAuth cookie. Exchanges it for a Bearer token and caches the athlete ID. python3 scripts/tp.py auth "eyJhbGci..." # โ Authenticated successfully! # Account: user@example.com # Athlete ID: 12345 # Token expires in: 60 minutes
python3 scripts/tp.py auth-status # Cookie: stored (file) # Token: valid (42m remaining) # Athlete ID: 12345 # โ Ready
python3 scripts/tp.py profile # Profile # โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ # Name: Ruben Example # Email: ruben@example.com # Athlete ID: 12345 # Account: Premium # Bike FTP: 280 W
List workouts in a date range (max 90 days). # All workouts this week python3 scripts/tp.py workouts 2026-01-26 2026-02-01 # Only completed workouts python3 scripts/tp.py workouts 2026-01-01 2026-01-31 --filter completed # Raw JSON for scripting python3 scripts/tp.py workouts 2026-01-26 2026-02-01 --json Output columns: Date, Title, Sport, Status (โ/โ), Planned duration, Actual duration, TSS, Distance.
Get full details for a single workout including description, coach comments, and all metrics. python3 scripts/tp.py workout 123456789 # Workout: Tempo Intervals 3x10min # โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ # Date: 2026-01-28 # Sport: Bike # Status: Completed โ # ...
Get fitness (CTL), fatigue (ATL), and form (TSB) data. # Last 90 days (default) python3 scripts/tp.py fitness # Full season python3 scripts/tp.py fitness --days 365 # JSON for charts python3 scripts/tp.py fitness --json Shows a summary with current CTL/ATL/TSB and status interpretation, plus a 14-day daily table.
Get ranked personal records by sport and metric. # Best 20-minute power (all time) python3 scripts/tp.py peaks Bike power20min # 5K running PRs from last year python3 scripts/tp.py peaks Run speed5K --days 365 # 5-second max power python3 scripts/tp.py peaks Bike power5sec Valid PR types: SportTypesBikepower5sec, power1min, power5min, power10min, power20min, power60min, power90min, hR5sec, hR1min, hR5min, hR10min, hR20min, hR60min, hR90minRunhR5secโhR90min, speed400Meter, speed800Meter, speed1K, speed1Mi, speed5K, speed5Mi, speed10K, speed10Mi, speedHalfMarathon, speedMarathon, speed50K
Bearer tokens are cached in ~/.trainingpeaks/token.json Tokens expire in ~1 hour; auto-refreshed from stored cookie Cookie lasts weeks; stored in ~/.trainingpeaks/cookie If the cookie expires, you'll get a clear error to re-authenticate
FilePurpose~/.trainingpeaks/cookieStored Production_tpAuth cookie~/.trainingpeaks/token.jsonCached OAuth Bearer token + expiry~/.trainingpeaks/config.jsonCached athlete ID and account info
All dates use YYYY-MM-DD format Maximum workout query range: 90 days Rate limiting: 150ms minimum between API requests TP_AUTH_COOKIE environment variable overrides stored cookie Default output is human-readable; --json gives raw API responses
Code helpers, APIs, CLIs, browser automation, testing, and developer operations.
Largest current source with strong distribution and engagement signals.