An AI-powered training companion that syncs with Strava, analyzes your training (run, cycle, strength), and provides personalized coaching advice.
- Multi-Sport Sync - Sync Runs, Rides, Swims, Yoga, and Strength from Strava
- CLI First - Full functionality via terminal with
pmshortcut - Training Analytics - Fitness curves (CTL/ATL), Stress Balance (TSB), Efficiency Trends
- Adaptive Planning - Generates plans with integrated strength sessions
- Injury Risk Assessment - Circular gauge visualization of risk
- AI Coach Chat - Talk to an experienced coach about your training
- Web Dashboard - Beautiful single-file local dashboard
cd running-coach
uv syncMake sure your .env file (in the parent directory) has:
STRAVA_CLIENT_ID=your_client_id
STRAVA_CLIENT_SECRET=your_client_secret
ANTHROPIC_API_KEY=your_anthropic_key
uv run pm initThis will:
- Set up your athlete profile
- Connect to Strava (opens browser for OAuth)
- Sync your recent activities
Use the pm shortcut (aliased to python src/main.py) for all commands:
uv run pm statusShows your TSB, Training Load, Injury Risk, and Recovery status.
# Fitness curves (CTL/ATL/TSB)
uv run pm charts fitness --days 90
# Weekly volume
uv run pm charts volume --weeks 12
# Aerobic Efficiency Trends (HR vs Pace)
uv run pm charts trendsStart the local dashboard (cards for fitness, risk, recent activities):
uv run pm webOpens at http://localhost:8080
uv run pm sync
uv run pm sync --days 60 # Sync last 60 daysLog runs, cycling, strength, or other activities:
uv run pm log 10 54:30 # 10km run in 54:30
uv run pm log 30 1:15:00 --type cycle # 30km ride
uv run pm log 0 45:00 --type strength # Strength training (use 0 for distance)Create a plan (automatically includes strength sessions):
uv run pm plan create --goal half --date 2026-05-01
uv run pm plan showuv run pm chatInteractive conversation with your AI coach.
- ATL (Fatigue) - Acute Training Load (7-day weighted average)
- CTL (Fitness) - Chronic Training Load (42-day weighted average)
- TSB (Form) - Training Stress Balance (CTL - ATL)
- Cardiac Efficiency - Pace relative to Heart Rate over time
running-coach/
├── src/
│ ├── main.py # CLI entry point
│ ├── web.py # Web dashboard server
│ ├── agent.py # AI coach logic
│ ├── analytics.py # Training metrics & trends
│ ├── planner.py # Training plan generator
│ └── ...
├── data/ # Local database
└── pyproject.toml # Dependencies & shortcuts