Apple Fitness workout fixer + Strava uploader
Swift 64.3%
Other 35.7%
10 1 0

Clone this repository

https://tangled.org/burrito.space/overrun https://tangled.org/did:plc:7r5c5jhtphcpkg3y55xu2y64/overrun
git@tangled.org:burrito.space/overrun git@tangled.org:did:plc:7r5c5jhtphcpkg3y55xu2y64/overrun

For self-hosted knots, clone URLs may differ based on your setup.

Download tar.gz
README.md

Overrun#

An iOS app for trimming and managing HealthKit workouts. Built for the common problem of forgetting to stop recording — leaving you with an 8-hour "run" that wrecks your stats.

Workout list grouped by month      Detail view showing a forgot-to-stop workout

Features#

Workout List#

  • Workouts grouped by month/year with section headers
  • Search by activity type name (case-insensitive)
  • Sort by date (default), longest duration, or shortest duration — useful for quickly finding forgot-to-stop workouts or accidental recordings
  • Paginated loading (50 at a time) with infinite scroll
  • Pull-to-refresh

Workout Detail & Trimming#

  • Activity graph showing heart rate, active energy, or distance over time (auto-selects the best available metric)
  • Range slider to visually select the portion of the workout to keep
  • Dimmed overlay on the graph showing which portions will be trimmed
  • Live-updating start time, end time, and duration display
  • Activity type picker with 20 supported workout types
  • Delete workout with confirmation

Data Warning#

Trimming a workout is destructive and irreversible.

HealthKit does not allow modifying a workout's start/end dates in place. When you trim a workout, Overrun deletes the original workout and creates a new one with the trimmed time range. This means:

  • Heart rate, energy, and distance samples become orphaned — they remain in HealthKit but are no longer associated with any workout. The new trimmed workout has no linked samples.
  • Workout routes (GPS/location data) are permanently lost.
  • Workout events are permanently lost.
  • Device association is lost.
  • Only metadata (custom name, notes, etc.) is preserved.

The app shows a confirmation dialog before saving. Make sure you want to proceed.

Requirements#

  • iOS 17+
  • Xcode 15+
  • HealthKit entitlement

Building#

Open WorkoutEditor.xcodeproj in Xcode and run on a device or simulator. The app requires HealthKit authorization to read and write workouts and associated samples.

In debug builds, 200 sample workouts are auto-generated on first launch for testing.