skills$openclaw/trainingpeaks
rubengarciam4.2k

by rubengarciam

trainingpeaks – OpenClaw Skill

trainingpeaks is an OpenClaw Skills integration for security workflows. 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.

4.2k stars1.2k forksSecurity L1
Updated Feb 7, 2026Created Feb 7, 2026security

Skill Snapshot

nametrainingpeaks
descriptionPull 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. OpenClaw Skills integration.
ownerrubengarciam
repositoryrubengarciam/trainingpeaks
languageMarkdown
licenseMIT
topics
securityL1
installopenclaw add @rubengarciam/trainingpeaks
last updatedFeb 7, 2026

Maintainer

rubengarciam

rubengarciam

Maintains trainingpeaks in the OpenClaw Skills directory.

View GitHub profile
File Explorer
4 files
.
scripts
tp.py
27.1 KB
_meta.json
284 B
SKILL.md
4.7 KB
SKILL.md

name: trainingpeaks description: 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.

CLI access to the TrainingPeaks internal API. Pure Python stdlib — no pip dependencies.

Setup: Getting Your Auth Cookie

  1. Log in to TrainingPeaks in your browser
  2. Open DevTools → Application → Cookies → app.trainingpeaks.com
  3. Find the cookie named Production_tpAuth
  4. 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.

auth <cookie> — Authenticate

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

auth-status — Check Authentication

python3 scripts/tp.py auth-status
# Cookie: stored (file)
# Token: valid (42m remaining)
# Athlete ID: 12345
# ✓ Ready

profile [--json] — Athlete Profile

python3 scripts/tp.py profile
# Profile
# ════════════════════════════════════════
#   Name:        Ruben Example
#   Email:       ruben@example.com
#   Athlete ID:  12345
#   Account:     Premium
#   Bike FTP:    280 W

workouts <start> <end> [--filter all|planned|completed] [--json]

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.

workout <id> [--json] — Workout Detail

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 ✓
#   ...

fitness [--days 90] [--json] — CTL/ATL/TSB

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.

peaks <sport> <pr_type> [--days 3650] [--json] — Personal Records

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:

SportTypes
Bikepower5sec, power1min, power5min, power10min, power20min, power60min, power90min, hR5sec, hR1min, hR5min, hR10min, hR20min, hR60min, hR90min
RunhR5sechR90min, speed400Meter, speed800Meter, speed1K, speed1Mi, speed5K, speed5Mi, speed10K, speed10Mi, speedHalfMarathon, speedMarathon, speed50K

Token Management

  • 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

File Locations

FilePurpose
~/.trainingpeaks/cookieStored Production_tpAuth cookie
~/.trainingpeaks/token.jsonCached OAuth Bearer token + expiry
~/.trainingpeaks/config.jsonCached athlete ID and account info

Notes

  • 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
README.md

No README available.

Permissions & Security

Security level L1: Low-risk skills with minimal permissions. Review inputs and outputs before running in production.

Requirements

  • OpenClaw CLI installed and configured.
  • Language: Markdown
  • License: MIT
  • Topics:

FAQ

How do I install trainingpeaks?

Run openclaw add @rubengarciam/trainingpeaks in your terminal. This installs trainingpeaks into your OpenClaw Skills catalog.

Does this skill run locally or in the cloud?

OpenClaw Skills execute locally by default. Review the SKILL.md and permissions before running any skill.

Where can I verify the source code?

The source repository is available at https://github.com/openclaw/skills/tree/main/skills/rubengarciam/trainingpeaks. Review commits and README documentation before installing.