crazyRun is a professional running training app that transforms your Apple Watch into an advanced training assistant. Design structured workouts, execute them with live guidance on your wrist, and analyze performance with detailed GPS, heart rate and cadence data.
When you create or edit a plan on the iPhone you pick its sport: running, cycling or hiking. Running is the default โ a running workout needs no setting at all. The sport travels with the plan to the Watch, shows next to its name in the list, and decides the on-screen units, the valid pace ranges, the distance-alert interval and how the workout is filed in Health.
It also decides the emoji on each phase: ๐, ๐ด or ๐ฅพ. The ones that come from the phase name do not change โ a warm-up is ๐ฅ and a cool-down is ๐ง whether you ride, run or walk โ and if you pick an emoji by hand in the editor, changing the sport will not overwrite it.
Import workouts using simple notation. Segments can be time-based (' = minutes), distance-based (m / km) or lap-based (Lap):
15'[Warm-up] + 6x(1' + 1') + 10'[Cool-down]20' + 4x(1km + 2') โ distance-based intervals20'[Warm-up] + 8x(1km + Lap[Station]) โ Lap pieces (Hyrox-style): no time or distance goal, close each one with the orange button on the Watch15' + 6x(1' + 1') [Indoor] โ the [Indoor] tag marks the plan as an indoor workout[Bike] 45' + 3x(5' + 3') โ the sport tag sets the workout type: [Bike] or [Hiking]. With no tag the plan is a run, so running workouts never have to say so. This tag and [Indoor] go at the start or the end of the text.Watch automatically captures: pace, heart rate, cadence, GPS, elevation
crazyRun started as a running app, and running is still the centre of it. It can also record bike rides and mountain walks. You pick the sport on the watch, in its own section of the home screen, before the workout starts.
This is not just a change of icon. Each sport carries its own physics, because the speeds have nothing in common: a cyclist descends a pass at 45 km/h and a hiker climbs a ramp at 2 km/h, and both readings are true. Under running's margins the first would be thrown out as impossible and the second would leave the screen blank.
| ๐ Running | ๐ด Cycling | ๐ฅพ Hiking | |
|---|---|---|---|
| Effort on screen | Pace (min/km) | Speed (km/h) | Pace (min/km) |
| Range treated as plausible | 2โ20 min/km | Up to 100 km/h | 4โ60 min/km |
| Default distance alert | Every 1 km | Every 5 km | Every 1 km |
| Pedometer as a judge | Yes | No (your feet are still) | Yes |
| Saved to Health as | Running | Cycling | Hiking |
Each sport remembers its own alert interval: changing the one for cycling leaves running alone. They are configured separately in iPhone โ Settings โ Notifications.
Walking on technical ground breaks nearly every assumption a running app makes. You move very slowly, GPS struggles under tree cover, and with poles or your hands in your pockets your arm barely moves. So in hiking crazyRun trusts the pedometer over GPS when deciding whether you are moving: if there are steps, you are moving, whatever the satellites say.
--: that range is well inside what it considers plausible on foot.
With auto-pause on, crazyRun stops the clock when you actually stop โ a traffic light, a fountain, a photo โ and starts it again by itself once you move. Time spent standing still does not count, so your average pace reflects what you ran rather than what you waited.
Deciding "I am stopped" is harder than it sounds, because GPS does not always know. crazyRun cross-checks three signals, and none of them decides alone:
The division of labour matters: the pedometer can prevent a pause, but it cannot hold one open once the receiver confirms you are standing still. And under dense tree cover, where that reading disappears, the pedometer decides as it did before.
The thresholds differ per sport: what counts as "stopped" while running is "climbing steadily" on a mountain path.
And so does the switch. Settings has one for running, one for hiking and one for cycling, independent of each other. That is not a detail: auto-pause earns its keep in some activities and gets in the way in others. During intervals it is half the reason to use the app โ it stops the clock on every recovery without you having to remember โ while on a slow mountain descent it can mistake going slowly for standing still. With a single switch you had to choose between the two.
With the pause button โ or a turn of the crown โ everything stops at once and immediately: the clock, the distance, the pace, the elevation and the Health session too. Paused time does not count towards the workout, and any metres you cover while paused are not credited on resume: walk over to the fountain and back and those metres do not inflate your distance.
The Health session stopping matters too: without it, the workout that lands in the Health app would count the standing around as active time and keep adding calories while you drink. Both versions of the same workout have to say the same thing.
Built for long stages, the four-to-seven-hour kind. The rule is simple: collecting the data comes before showing it. GPS, sampling and HealthKit are never touched; what gets reduced is what the screen costs.
crazyRun can record indoor workouts (treadmill, indoor track, Hyrox-style circuits) without GPS: distance and pace are estimated from the Watch pedometer, while heart rate, cadence and calories are captured exactly as outdoors.
[Indoor] tag in text notation; that plan will always start in indoor mode.In Settings โ Indoor Settings you can define Watch screens specific to indoor sessions (defaults: Time + HR + HR Zone, and Cadence + Calories + Avg BPM) and enable indoor segment summaries (off by default; when enabled they announce time and average heart rate, without the estimated pace).
If you move during a pause โ walking to a fountain, taking a lift for part of the way โ those metres do not count towards distance or pace. They are not drawn as if you had covered them either: the route breaks, and the jump shows as a dashed grey line, so the transfer is visible without looking like a path you ran.
| Metric | Source | Interval | Accuracy |
|---|---|---|---|
| Pace/Distance | GPS | Every second | ยฑ0.5% |
| Heart Rate | Optical sensor | Every second | ยฑ5 BPM |
| Elevation | GPS + barometer | Every 10s | ยฑ10m |
| Cadence | Accelerometer | Every second | ยฑ2 SPM |
Swipe to see: average pace, cadence, HR zone, TRIMP, elevation, live map
During the workout you can pause, resume and open the finish dialog by turning the crown, without hunting for a button with a wet screen or gloves on. It is enabled in the watch settings and it is optional: if you prefer the buttons, switch it off. A wide, sustained turn is required, so a brush against your sleeve never pauses anything.
Once you finish, any turn of the crown closes the workout summary, either direction. This works always, even with crown control switched off: it is the way out for when you come back from a drinking fountain and the touchscreen will not answer wet fingers. The summary itself reminds you at the bottom.
Riegel formula estimates: 5K, 10K, half marathon, marathon times based on recent workouts
When you stop running, your heart rate falls. How far it falls in the first minute is one of the best fitness signals there is: the faster it drops, the better your cardiovascular system is doing. It is the same measurement Garmin watches report.
crazyRun works it out on its own, with nothing for you to do. It compares your heart rate at the moment you stop with your heart rate one minute later, and gives you the difference in beats.
It works on your older workouts too. The figure is read from the Health app, where your watch keeps recording heart rate for several minutes after you finish. So recovery shows up on workouts you recorded long before this feature existed.
Why some workouts are missing from the trend. The drop depends on how hard you finished: ending with a sprint and ending with ten easy minutes give very different numbers even though your fitness has not changed. To keep the comparison meaningful, the trend only includes running workouts that end with a high heart rate. A short walk or a two-minute test does not count.
The Watch and the iPhone sync on their own: what you record on your wrist shows up on the phone with no action from you, and changes made on the phone travel to the watch. There is nothing to configure there.
Workouts travel from the watch to the iPhone over Bluetooth. With the iPhone's Bluetooth off, even on Wi-Fi, they wait on the watch and arrive on their own as soon as you turn it back on. The iPhone's Sync button checks for real: it asks the watch which workouts are still pending, waits for them to arrive and, if it can't, tells you why โ no connection to the watch, no paired watch, or the app isn't installed on it. To answer, crazyRun has to be open on the watch. On top of that, when you open the app the iPhone looks for the watch by itself and, while it can't find it, tries again every 30 seconds: the button turns green as soon as it finds it and there is nothing left to download.
What you do choose is how your plans and your history travel between your own devices โ iPhone, iPad, Mac. It lives in Settings โ Sync, and you can switch method whenever you like: switching never deletes your local data.
| Method | What it does | When to pick it |
|---|---|---|
| Automatic | Uses iCloud when an account is available. When there is none it does not sync: it stays as "this device only" | The default. Nothing to set up, and it never reaches for the network on its own |
| This device only | No syncing at all. Your data never leaves the device | One device only, or maximum privacy is non-negotiable |
| Local network (WiFi/Bluetooth) | Devices find each other and hand over the data directly, no cloud involved | Several devices at home, without cloud services in the middle |
| iCloud | Syncs through your iCloud account | Several devices and you would rather not think about syncing |
The Sync screen shows each method with its upsides, its limits and worked examples before you commit, and reports the current state: active method, whether iCloud is available and when the last sync happened.
For complete control of visual and audio notifications during your workout, go to Settings โ Workout Notifications. There you can configure:
See Workout Notifications for all the details.
crazyRun includes an advanced notification system that keeps you informed throughout your entire workout. You can completely customize which notifications you receive, how they're displayed, and whether they include audio feedback.
Access Settings โ Workout Notifications to manage all your preferences.
| Option | Description |
|---|---|
| Show Visual Notifications | Enable/disable all on-screen message displays (except final summary which is always visual) |
| Enable Audio Notifications | Enable/disable voice reading the notifications aloud |
| Voice Preference | Choose between automatic, masculine, or feminine voice for audio |
| Voice Volume | 5 levels (Very low โ Maximum). The two loudest levels amplify the voice beyond the system maximum โ useful when running outdoors; some saturation at "Maximum" is normal |
During the workout, tap the speaker at the top right of the screen to temporarily mute the voice or adjust the volume with โ / + without leaving the workout. The mute applies to that session only.
[HR:150-170], the same switches warn "heart rate too high" or "too low". It vibrates like "too fast" when you should ease off and like "too slow" when you should push. See Heart rate and zones in the notation.crazyRun respects your privacy as a fundamental principle. All your workouts, health data and statistics stay under your complete control.
crazyRun lets you create complex workouts using a simple, structured language. Instead of clicking multiple fields, type the workout in a single line. The app parses it automatically.
| Symbol | Unit | Example |
|---|---|---|
' | Minute(s) | 5' = 5 minutes |
" | Second(s) | 30" = 30 seconds |
h | Hour(s) | 1h30' = 1 hour 30 minutes |
| Symbol | Unit | Example |
|---|---|---|
km | Kilometers | 5km = 5 kilometers |
m | Meters | 400m = 400 meters |
mi | Miles | 3mi = 3 miles |
Lap (or [lap]) instead of a duration creates a piece with no time or distance goal: the Watch times it until you press the orange (next) button. Handy for Hyrox-style exercises: 8x(1km + Lap[Station]).
A workout is a sequence of phases separated by +. An interval phase repeats a group of intervals:
15'[Warm-up] + 5x(500m[Fast] + 250m[Rest]) + 10'[Cool-down]
โโ Phase 1: 15' warm-up
โโ Phase 2: 5 repetitions of (500 m fast + 250 m rest)
โโ Phase 3: 10' cool-down
| Term | What it is | In the example |
|---|---|---|
| Phase | Each block of the workout, separated by + | Warm-up ยท 5x(โฆ) ยท Cool-down |
| Repetition | Each pass of an interval phase (on the Watch, LAP 3/5) | 500m + 250m |
| Interval | Each piece inside a repetition | the 500m, the 250m |
| Segment | Whatever the Watch is timing right now: a continuous phase or one interval. "Segment" metrics, change alerts and summaries all work per segment | the warm-up, each 500m, each 250m |
Intervals can be nested: 2x(3x(400m) + 3') is 2 repetitions of (three 400 m + 3'). The app turns it into a single interval phase with all its intervals in order.
Any text in brackets that isn't a special tag is a name. What it names depends on where you put it:
| Position | Example | Names |
|---|---|---|
| After a piece | 500m[Fast] | That piece: an interval, or a phase if it stands alone |
| After the closing parenthesis of a series | 5x(500m + 250m)[Series] | The whole interval phase |
At the start, with [Name: โฆ] | [Name: Tuesday intervals] | The workout |
With no name, the app picks one: the duration or distance for pieces (500m, 4') and 5ร for series. To name pieces, the plain name in brackets is enough; keep [Name: โฆ] for the workout name.
5x[Series](500m + 250m) is not valid.
If a standalone phase has one of these names, the app gives it its type and emoji:
| Name | Type | Emoji |
|---|---|---|
[Warm-up] | Warm-up | ๐ฅ |
[Rest] | Rest | ๐ฎโ๐จ |
[Cool-down] | Cool-down | ๐ง |
[Sprint] | โ | โก๏ธ |
The start of the word also works, as long as it is a word on its own: [Warm] is a warm-up, and so is [Easy warm-up]. But [Forest loop] is not a rest, even though it contains โrestโ: those letters are not a word on their own. Case doesn't matter.
The notation is written in English or Spanish. Any other name (Tempo, Fartlek, Hard) stays a plain name, with no special type.
| Tag | Example | Meaning |
|---|---|---|
[Pace:min-max] | 400m[Pace:4:00-4:15] | Pace between 4:00 and 4:15 min/km |
[Pace:pace] | 20'[Pace:4:30] | A single target pace |
The tag goes after the piece it applies to. The pace is also used to turn distances into an estimated time; without it, the default pace is used.
5x(400m[Pace:4:00-4:15] + 200m[Rest])[Short series]
โโ 400 m at 4:00-4:15 min/km
โโ 200 m recovery
โโ Phase named "Short series"
[HR:150-170] sets a target heart rate for the piece. If your heart rate leaves the range, the watch alerts you just as it does for pace: vibration, screen and voice, with the Pace & Heart Rate Alerts switches. The first 30 seconds of each stretch don't count, since that's how long heart rate takes to climb. A piece has a pace or a heart rate target, not both. In the visual editor it lives in the Heart rate (HR) section, under Pace (and in each interval): turning one on turns the other off.
And [Z2] works as just another name: the piece is called "Z2".
You can chain them ([A][B]) or separate them with commas ([A, B]). The pace is applied and the rest joins the name:
5'[Rest][Pace:6:00]
โโ 5 minutes named "Rest", at 6:00 min/km
10'[Warm-up] + 5x(400m + 200m)[Series] + 5'[Cool-down]
Result:
10'[Warm-up] + 6x(3'[Hard] + 2'[Easy])[Fartlek] + 5'[Cool-down]
Result:
[Indoor] 5'[Warm-up] + 8x(2'[Pace:5:00-5:15] + 1'[Rest]) + 5'[Cool-down]
Result:
[Indoor] tag makes the Watch start it without GPS10'[Warm-up] + 3x(5x(400m[Hard] + 200m[Rest]) + 3'[Rest])[Blocks] + 10'[Cool-down]
Breakdown:
5x(1'+1') and 5x (1' + 1') are equivalent+: Separates sequential elements within parenthesesLap or [lap] instead of a duration: a piece with no time or distance goal, which you close with the orange button on the Watchquantity x (content) [label]5x(400m + 200m), paste it, and change to 6x(500m + 250m).
crazyRun uses Apple HealthKit to access only specific health data required by the app:
To keep your Apple Watch running optimally, crazyRun automatically limits the number of sessions stored on your watch.
| Limit | Best For | Notes |
|---|---|---|
| 10-20 sessions | Watch with limited storage | Cleans frequently, keeps only recent |
| 30-50 sessions | Balanced use (recommended) | Good balance between history and space |
| 60-100 sessions | Watch with plenty of space | Stores months of workouts |
For workouts that alternate running with strength stations โ Hyrox, a park circuit, the gym โ use Lap pieces: pieces with no time or distance goal that the Watch times until you press the orange (next) button.
[Name: Hyrox]
10'[Warm-up] + 8x(1km + Lap[Station]) + 5'[Cool-down]
โโ 8 repetitions of: 1 km running + a station that lasts as long as it takes
Lap[Squats].Lap: 8x(1km + 3'[Squats]).[Indoor]: the Watch starts without GPS and the pedometer estimates the distance.