Unchain
A lean iOS/iPadOS app for controlling smart bike trainers over the open FTMS Bluetooth standard (Fitness Machine Service) — not a vendor-proprietary protocol, so it works, in principle, with any FTMS-capable trainer (Wahoo KICKR and friends included).
Unchain isn't on the App Store yet (see the project's own
App
Store readiness checklist) — for now, building and running it
needs Xcode (or just the command line, via the repo's own
Makefile). The full, up-to-date feature list and build
instructions live in the
README.
What it does
- Manual control Power, resistance, or grade-simulation targets, with automatic clamping to what your trainer actually supports.
-
Structured workouts
Loads
.erg/.mrcfiles (TrainerRoad, TrainerDay, Golden Cheetah, and others) and follows them automatically, second by second — or build one on the fly with a compact shorthand notation. -
Real routes
Loads a
.gpxtrack and turns its elevation profile into a live grade-simulation ride. -
Draw your own workout
The browser-based Workout Builder turns a power or speed/incline curve you drag out by hand into a ready
.erg/.mrc/.zwofile — no install, nothing uploaded. - Heart rate zones done right Editable, bpm-based zone boundaries, defaulting to the Heart Rate Reserve (Karvonen) method — not just a crude percentage of max heart rate.
- Apple Health integration Saves completed workouts — including calories and heart rate — straight to the Health app. No account, no cloud sync of your own.
- iPad-ready, two languages Runs in Split View on iPad; fully localized in English and German, with more planned.
Requirements
- iPhone or iPad
- iOS/iPadOS 16.0 or later
- A smart trainer
- Anything speaking the FTMS Bluetooth standard — most trainers made in the last several years, regardless of brand
- A heart rate strap
- Optional — any device speaking the standard Bluetooth Heart Rate Service
Support this project
Unchain is free, open source, and has no ads, accounts, or subscriptions — and no plans to ever add any. If it's useful to you and you'd like to help cover what keeps it going (mainly an Apple Developer Program membership), a contribution is very welcome, but always entirely optional — never required to use the app, and not something the app itself will ever ask for.