Skip to content

Instantly share code, notes, and snippets.

@gesteves
Last active January 17, 2026 18:44
Show Gist options
  • Select an option

  • Save gesteves/a7b80222eb0bd7df1480e4fbb8be3741 to your computer and use it in GitHub Desktop.

Select an option

Save gesteves/a7b80222eb0bd7df1480e4fbb8be3741 to your computer and use it in GitHub Desktop.
Claude skill to convert Runna workouts to Intervals.icu workout syntax

Runna to Intervals.icu Workout Converter

A Claude skill that converts running workouts from the Runna app into the plain-text format used by Intervals.icu's workout creator.

Installation

1. Download the skill

  • Click the Download ZIP button in the top-right of this Gist

2. Add to Claude

  1. Open claude.ai
  2. Go to Settings > Capabilities
  3. Scroll down to the Skills section and click the "Add" button
  4. Select "Upload a skill" and upload the zip file you downloaded

Claude will read the skill and use it to convert any Runna workout you paste or screenshot into Intervals.icu format.

Usage

Once the skill is uploaded, you can:

  • Paste the text description of a Runna workout
  • Upload a screenshot of the workout from the Runna app

Claude will output the workout in Intervals.icu syntax, ready to copy and paste into the Intervals.icu workout creator.

Example

Input (from Runna):

1.5km warm up at a conversational pace (no faster than 5:45/km), 90s walking rest

200m at 4:10/km, 90s walking rest 400m at 4:20/km, 90s walking rest

Output (for Intervals.icu):

Warmup
- 1.5km 5:45/km Pace
- 90s 9:00/km Pace

Main Set
- 0.2km 4:10/km Pace
- 90s 9:00/km Pace
- 0.4km 4:20/km Pace
- 90s 9:00/km Pace
name description
runna-to-intervals
Convert Runna running workouts to Intervals.icu plain-text workout format

Context

A user wants to export their planned running workout from the Runna app into Intervals.icu, which requires converting the workout instructions from Runna into the plain text format used by Intervals.icu's workout creator.

Instructions

  • You will receive a description of a running workout from the Runna app (either as plain text or as an image), and you will convert it into the workout description format Intervals.icu uses.
  • Provide the output in a code block so the user can copy & paste it into Intervals.icu. If the user's input is not something you can convert into a workout, you should tell them that.
  • You should use the unit system entered by the user in the Runna workout, so if the Runna description uses imperial, your output should use imperial. If the Runna workout is in metric, then use metric.

Intervals.icu Running Workout Syntax

This document describes the plain-text syntax for creating structured running workouts in Intervals.icu. You MUST use this exact format to generate workout files that can be imported directly.

Basic Structure

Workouts consist of sections (headers) and steps (lines starting with -). Sections group related steps and can define repeats.

Section Name
- step definition
- step definition

Another Section 3x
- repeated step
- repeated step

Duration and Distance

Time-Based Steps

Format Meaning Examples
h hours 1h
m minutes 10m, 5m
s seconds 30s, 90s
Combined minutes + seconds 1m30
Shorthand apostrophe notation 5' (5 min), 30" (30 sec), 1'30"

Distance-Based Steps

Format Examples
km 2km, 0.4km, 10km
mi 1mi, 4.5mi

Important: m means minutes, not meters. Use km or mi for distance (e.g., 0.4km for 400 meters).

Intensity Targets

Absolute pace values use mm:ss format and can specify a single pace or a range.

Syntax Examples
Single pace 6:30/km, 7:00/mi
Pace range 7:15-7:00/km, 8:00-7:30/mi

Note: You MUST use absolute paces to ensure maximum compatibility of the workout with Zwift and Garmin. DO NOT use pace zones or percentages of threshold pace.

Pace Units:

Unit Meaning
/km per kilometer
/mi per mile
/100m per 100 meters
/500m per 500 meters
/400m per 400 meters
/250m per 250 meters
/100y per 100 yards

If no unit is specified, the athlete's default pace unit is used.

Example with absolute pace:

- 10m 7:15-7:00/km Pace
- 1km 4:30/km Pace
- 800m 3:20/km Pace

Ramps

Gradual intensity changes use the ramp keyword (case-insensitive):

- 10m ramp 7:15-7:00/km pace

Repeats

Two methods to define repeats:

In section header:

Main Set 5x
- 3m 4:30-5:00/km pace
- 2m 7:15-7:00/km pace

Standalone line:

5x
- 3m 4:30-5:00/km pace
- 2m 7:15-7:00/km pace

Nested repeats are not supported.

Text Prompts

Any text before the first duration/intensity becomes the step cue:

- Recovery 30s 7:00/km pace
- Run hard! 4m 4:30/km pace

Timed Text Prompts

Add prompts at specific times within a step using time^ syntax and <!> separator:

- First prompt 33^Second prompt at 33s <!> 10m ramp 4:30-5:00/km pace

Complete Examples

Runna example

The following Runna workout

1.5km warm up at a conversational pace (no faster than 5:45/km), 90s walking rest

200m at 4:10/km, 90s walking rest 400m at 4:20/km, 90s walking rest 800m at 4:35/km, 120s walking rest 1.2km at 4:45/km, 120s walking rest 800m at 4:35/km, 90s walking rest 400m at 4:20/km, 60s walking rest 200m at 4:10/km, 60s walking rest

500m cool down at a conversational pace (or slower!). Since you've worked at a particuarly high intensity today with a semi short cool down, I would recommend a walking cool down for 5-10mins to end the workout.

Should produce the following output in Interval.icu's syntax:

Warmup
- 1.5km 5:45/km Pace
- 90s 9:00/km Pace

Main Set
- 0.2km 4:10/km Pace
- 90s 9:00/km Pace
- 0.4km 4:20/km Pace
- 90s 9:00/km Pace
- 0.8km 4:35/km Pace
- 2m 9:00/km Pace
- 1.2km 4:45/km Pace
- 2m 9:00/km Pace
- 0.8km 4:35/km Pace
- 90s 9:00/km Pace
- 0.4km 4:20/km Pace
- 60s 9:00/km Pace
- 0.2km 4:10/km Pace
- 60s 9:00/km Pace

Cooldown
- 0.5km 5:45/km Pace

Running Long Run with Marathon Pace

Warmup
- 2km 6:15-6:00/km Pace
- 2km 6:00-5:45/km Pace
- 2km 5:45-5:30/km Pace

Main Set 2x
- 6km 4:45-4:40/km Pace
- 2km 5:45-5:30/km Pace

Cooldown
- 2km 6:00-6:15/km Pace

Running 1km Repeats

Warmup
- 10m 6:00-5:30/km Pace

Main Set 6x
- 1km 4:15/km Pace
- 2m 6:00/km Pace

Cooldown
- 10m 5:45-6:15/km Pace

Running Track Session (800m Repeats)

Warmup
- 2km 5:45/km Pace

Strides 4x
- 100m 3:30/km Pace
- 100m 6:00/km Pace

Main Set 5x
- 0.8km 3:20/km Pace
- 0.4km 5:30/km Pace

Cooldown
- 2km 6:15/km Pace

Running Tempo Run

Warmup
- 15m ramp 6:30-5:30/km Pace

Main Set
- 20m 4:30/km Pace

Cooldown
- 10m ramp 5:30-6:30/km Pace

Running Threshold Intervals

Warmup
- 2km 6:00/km Pace
- 1km 5:15/km Pace

Main Set 4x
- 5m 4:20/km Pace
- 3m 5:45/km Pace

Cooldown
- 2km 6:15/km Pace

Running Progressive Long Run

Warmup
- 3km 6:00/km Pace

Main Set
- 5km 5:30/km Pace
- 5km 5:15/km Pace
- 5km 5:00/km Pace
- 2km 4:45/km Pace

Cooldown
- 2km 6:00/km Pace

Syntax Rules Summary

  1. Section headers: Lines without - prefix
  2. Steps: Lines starting with -
  3. Repeats: Nx in header or standalone line before block
  4. Ranges: Use hyphen a-b (e.g. 7:00-6:30/km)
  5. Keywords: Case-insensitive (ramp, Ramp, RAMP all work)
  6. Blank lines: Use between sections for readability
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment