An AI-powered running coach built for Claude Code and Claude Desktop using the Skills framework. This project demonstrates how to combine Claude's capabilities with specialized training knowledge and training data to provide personalized running coaching assistance. Distributed as a plugin for easy installation.
For usage instructions, see running-race-coach/README.md.
Claude Running Race Coach uses Claude Code's Skills framework to provide intelligent running coaching that includes:
- Evidence-based training plan generation
- Multi-platform training data integration (Strava, Garmin, manual entry, conversational)
- Weekly training analysis and coaching feedback
- Scientific pace calculation and workout planning
claude-coach/
├── running-race-coach/ # Main plugin package
│ ├── README.md # User-facing documentation
│ └── skills/ # Skill definitions
│ ├── training-plan/ # Training plan generation skill
│ │ ├── SKILL.md # Skill definition and workflow
│ │ ├── references/ # Coaching guides and principles
│ │ │ └── coaches-guide.md
│ │ └── scripts/ # Pace and distance calculators
│ │ ├── calculate_paces.py
│ │ └── interval_calculator.py
│ ├── strava-sync/ # Strava data synchronization skill
│ │ └── SKILL.md # Sync workflow and formatting
│ ├── training-dashboard/ # Training progress visualization
│ │ └── SKILL.md # Dashboard generation workflow
│ └── running-coach/ # Weekly coaching analysis skill
│ └── SKILL.md # Coaching workflow and principles
├── training-log/ # Generated weekly training summaries
├── coaching-log/ # Coaching session notes
├── training-plan.md # Generated training plans
├── package.py # Plugin packaging script
└── README.md # This file
This project leverages Claude Code's Skills framework, which allows Claude to follow structured workflows for specific domains. Each skill is a combination of:
Each SKILL.md file defines:
- Invocation patterns: Keywords and phrases that trigger the skill
- Workflow steps: Structured process Claude follows
- Best practices: Domain-specific knowledge and principles
- Tool usage: When to use Python scripts or MCP servers
- Output format: How to structure the results
The references/ directory contains in-depth knowledge that Claude loads into context when needed. For example:
- coaches-guide.md: Comprehensive training principles, periodization strategies, and workout guidelines
Python scripts in the scripts/ directories provide:
- calculate_paces.py: Calculates training pace zones from race goal times
- interval_calculator.py: Computes total distances for interval workouts
These are executed via Claude Code's terminal integration.
Skills can leverage Model Context Protocol (MCP) servers for external data:
- Strava MCP server: Fetches activity data, athlete info, and statistics
- Extensible to other platforms (Garmin, Apple Health, etc.)
When a user requests a training plan:
- training-plan skill is invoked
- Claude gathers requirements (race distance, goal time, current mileage, race date)
- Executes
calculate_paces.pyto determine training zones - Applies periodization principles from
coaches-guide.md - Generates structured markdown training plan
- Uses
interval_calculator.pyto calculate workout distances - Saves plan to
training-plan.md
The strava-sync skill:
- Connects to Strava MCP server
- Fetches recent activities (configurable time range)
- Extracts detailed metrics (pace, heart rate, power, cadence, elevation)
- Parses lap data for interval workouts
- Formats data as structured markdown
- Saves to
training-log/week-n.md
The system is flexible and also supports:
- Manual markdown file creation
- Data import from other platforms (Garmin, Apple Health, Polar Flow)
- Conversational data input (describe workouts verbally)
The running-coach skill:
- Loads the user's training plan
- Retrieves training log (from any source)
- Asks for subjective feedback (energy, fatigue, challenges)
- Compares planned vs. actual execution for each workout
- Analyzes:
- Pace accuracy (easy, threshold, intervals, race pace)
- Heart rate zones and effort levels
- Workout execution quality
- Weekly volume and progression
- Assesses progress toward race goal
- Provides specific recommendations
- Documents session in
coaching-log/week-n-coaching-notes.md
- Claude Code
- Python 3.8+ (for pace calculation scripts)
- (Optional) Node.js 18+ (for Strava MCP server)
-
Clone the repository:
git clone https://github.com/ColinEberhardt/claude-running-coach.git cd claude-running-coach -
Open in Claude Code:
code . --profile claude -
(Optional) Configure Strava MCP Server:
Add to
~/.claude/config.json:{ "mcpServers": { "strava": { "command": "npx", "args": ["-y", "@anthropic-ai/mcp-server-strava"] } } } -
Test skills:
- Open Claude Code chat
- Ask: "Create a 10-week 10K training plan for a 45:00 goal"
- Verify the training-plan skill executes correctly
MIT License - see LICENSE for details.
This project is provided as-is for educational purposes. Always consult qualified professionals for personalized training advice.