BikeControl: Virtual Shifting
Any Shifter, Any Trainer App
Free · In-App Purchases
Add virtual shifting to any indoor training app.
BikeControl (formerly SwiftControl) turns a controller you already own into a virtual shifter: Shimano Di2, SRAM AXS / eTap, WHEELTOP EDS, Zwift Click, Zwift Play, Zwift Ride, CYCPLUS BC2, Thinkrider VS200, a Bluetooth remote or a gamepad.
WHAT YOU CAN DO
▶ Virtual gear shifting - in apps that support it natively, and in apps that do not
▶ Steering and turning
▶ Adjust workout intensity
▶ Control music on your device
▶ Tune everything around shifting: gear count, ratios, gearing
▶ More? If you can do it by keyboard, mouse or touch, you can do it with BikeControl
WORKS WITH
Officially supported, built in natively: MyWhoosh, Rouvy, TrainingPeaks Virtual, Strappo
Also supported: Zwift, Biketerra, FulGaz and any other app you can drive by keyboard or touch
BikeControl applies the gear change at the trainer and sends the resulting resistance to the app, so virtual shifting works even in apps that have no virtual shifting of their own.
SHIMANO Di2 AND SRAM AXS
Pair the road shifters you already ride outdoors and use them to shift virtual gears indoors. No extra hardware, no adapters.
SUPPORTED CONTROLLERS
▶ Zwift Click, Click v2, Ride and Play
▶ Shimano Di2
▶ SRAM AXS and eTap, every individual button
▶ WHEELTOP EDS
▶ Wahoo Kickr Bike Shift, Pro, V1 and V2
▶ CYCPLUS BC2 and Thinkrider VS200 virtual shifters
▶ Elite Sterzo Smart and Elite Square Smart Frame, for steering
▶ Gamepads, Bluetooth HID devices and keyboards
▶ Your phone on the handlebar, steering with its sensors
OPEN SOURCE
BikeControl is open source: https://github.com/OpenBikeControl/bikecontrol
PRIVACY
▶ BikeControl only accesses your screen to perform the gestures you configure
▶ All gesture configurations stay on your device
▶ No personal data is collected or transmitted
Not affiliated with or endorsed by Zwift, Inc., Shimano, SRAM, Wahoo or Elite.
Terms of use: https://bikecontrol.app/terms-of-use
more **Features**:
• A new look with Ride, Devices, Activity and Settings tabs.
• Rides are recorded automatically, with zones, gears and .fit export to Strava, Apple Health or Health Connect.
• Reworked phone steering with improved accuracy and calibration; OpenBikeControl apps can steer from the real handlebar angle - including Elite Sterzo and Rizer (thanks @michidk).
• Clearer setup steps and a new Plan & account page.
• BKool Trainer support
**Fixes**:
• More reliable network check and connections
• Wahoo KICKR Bike adjustments
• Friendlier messages and in-app answers when something doesn't work.
7.2.1 1 day ago
**Features**:
• A new look with Ride, Devices, Activity and Settings tabs.
• Rides are recorded automatically, with zones, gears and .fit export to Strava, Apple Health or Health Connect.
• Reworked phone steering with improved accuracy and calibration; OpenBikeControl apps can steer from the real handlebar angle - including Elite Sterzo and Rizer (thanks @michidk).
• Clearer setup steps and a new Plan & account page.
• BKool Trainer support
**Fixes**:
• More reliable network check and connections
• Wahoo KICKR Bike adjustments
• Friendlier messages and in-app answers when something doesn't work.
7.2 6 days ago
**Features**:
• Smoother first-time setup, with a clearer Help Center and support flow.
• Accessibility: all buttons are labelled for screen readers, toasts are read aloud, touch targets on phones are larger, and "Reduce motion" is respected.
• A refreshed light and dark theme that's easier to read.
**Fixes**:
• Home: a trainer that is still connecting no longer briefly shows "lost connection".
• Text on phones is a more comfortable size, and the last English-only text is now translated.
• Faster home screen and workout history.
7.1 29 Sept
**Features**:
• Sensors: pair a heart-rate strap, cadence sensor or power meter and choose, per signal, whether your trainer app gets the trainer's reading or the sensor's, over the one Bridge connection you already have.
• AirPods Pro 3 & Apple Watch heart rate (iOS 26) flows from Apple Health into your trainer app. No strap needed.
• Save rides to Apple Health (iOS, Pro): with a smart trainer connected, BikeControl records your ride on its own and saves it to Apple Health as an indoor cy
7.0.1 19 Sept
**Features**:
- Sensors: pair a heart-rate strap, cadence sensor or power meter and choose, per signal, whether your trainer app gets the trainer's reading or the sensor's, over the one Bridge connection you already have.
- AirPods Pro 3 & Apple Watch heart rate (iOS 26) flows from Apple Health into your trainer app. No strap needed.
- Save rides to Apple Health (iOS, Pro): with a smart trainer connected, BikeControl records your ride on its own and saves it to Apple Health as an indoor cycling workout with power, cadence, speed, distance, heart rate and energy — for MyWhoosh, TrainingPeaks Virtual, Apple TV setups and any other app that doesn't write to Health itself.
- New Sensors page: broadcast "BikeControl" over Bluetooth or Wi-Fi, so Zwift on an Apple TV or MyWhoosh on a PC pairs it like a strap, trainer or not.
- Better virtual shifting from a real cadence sensor: an external cadence sensor feeds virtual shifting directly, which sharpens it on trainers with a poor cadence signal and makes it work on trainers that report none at all.
- Shift feedback: optional sound and vibration on this phone or tablet on every shift, with a distinct cue when you reach the last gear.
Read more in our blog at https://bikecontrol.app/blog/bikecontrol-7-0-one-connection-for-everything/
**Fixes**:
- Smart trainers: trainers with no cadence signal (ThinkRider XX Pro and others) get a felt step on every gear that holds; the ThinkRider ramp follows your gear ratios; Tacx Neo appears on Windows; improved compatibility with more FTMS and Zwift Ready trainers under virtual shifting.
- Resistance self-test runs on trainers that report no cadence and keeps its step-by-step log in the support bundle.
- TrainerRoad: the Bridge now pairs with and is controlled by TrainerRoad over the network.
7.0 17 Sept
**Features**:
• FulGaz & Tacx Training apps are now supported: BikeControl acts as a Bluetooth smart trainer to it on a second device and provides the virtual shifting.
• New Help Center
• Improved compatibility with Zwift Ready & FTMS smart trainers
• Desktop floating overlay: a new 20-100% opacity slider lets you fade it over your trainer app.
**Fixes**:
• Rouvy: Zwift Ride D-pad up/down and left/right now navigate menus over the network, your gear and shifting are no longer overrid
6.6 2 Sept
**Features**:
- Zwift Click V2: when you use the right side only, the puck no longer falls asleep after a minute of inactivity — and the LEDs stay on.
- Network issues: you can now troubleshoot network related issues, e.g. connection to MyWhoosh
- Virtual Shifting:
- shifting on Zwift Ready trainers now feels instant
- more FTMS trainers are supported
- a new resistance test lets you confirm your trainer really responds
6.5.2 27 Aug
**Features**:
- Zwift Click V2: when you use the right side only, the puck no longer falls asleep after a minute of inactivity — and the LEDs stay on.
- Network issues: you can now troubleshoot network related issues, e.g. connection to MyWhoosh
- Virtual Shifting:
- shifting on Zwift Ready trainers now feels instant
- more FTMS trainers are supported
- a new resistance test lets you confirm your trainer really responds
6.5 22 Aug
**Features**:
- Added a guided setup on first launch
- Zwift Click V2: a new full-screen explainer lets you choose your unlock mode when the controller is first discovered — left side only (no Zwift unlock, ever) or unlock with Zwift (both controllers, re-unlock every 24 hours)
- Trainer connection: a new "Help me decide" link explains the connect modes before you pick one.
**Fixes**:
- SRAM AXS: the shifter no longer disconnects after about three minutes of coasting.
6.4.3 17 Aug
**Features**:
- Added a guided setup on first launch
- Zwift Click V2: a new full-screen explainer lets you choose your unlock mode when the controller is first discovered — left side only (no Zwift unlock, ever) or unlock with Zwift (both controllers, re-unlock every 24 hours)
- Trainer connection: a new "Help me decide" link explains the connect modes before you pick one.
**Fixes**:
- SRAM AXS: the shifter no longer disconnects after about three minutes of coasting.
6.4.1 12 Aug
**Features**:
- Added a guided setup on first launch
- Zwift Click V2: a new full-screen explainer lets you choose your unlock mode when the controller is first discovered — left side only (no Zwift unlock, ever) or unlock with Zwift (both controllers, re-unlock every 24 hours)
- Trainer connection: a new "Help me decide" link explains the connect modes before you pick one.
**Fixes**:
- SRAM AXS: the shifter no longer disconnects after about three minutes of coasting.
6.4 11 Aug
**Features**:
- SRAM AXS: After a lot of tinkering, SRAM AXS levers are now fully supported - all individual buttons are supported now. Read more in our blog!
- WHEELTOP EDS shifters (beta): use your EDS OX or TX shifter as a controller — top/bottom buttons shift up/down by default and are fully remappable.
- The Strappo Trainer app is now officially supported
6.3 10 Jul
**Features**:
- Virtual front derailleur: adds a second chainring (2× drivetrain) for more realism. The new assignable "Front Shift (Chainring)" action — or pressing both shifters together, SRAM-AXS style — toggles between your small and large rings, changing resistance by the exact chainring ratio while staying on the same rear cog. While it's active your current gear reads as head-unit-style position notation (e.g. 2×14) in the app, the gear overlay, and the iOS Live Activity. Set your chainring sizes per trainer in the gear settings.
- SRAM style shifting: when you click shift up & down at the same time, the front chainring switches
- iOS / iPadOS: Floating gear overlay (Picture-in-Picture): your current gear can now show in a floating window over your trainer app during a ride.
- Screen recording: a new assignable "Record Screen" action starts a screen recording from a controller button.
6.2 29 Jun
**Features**:
- WiFi enabled Smart Trainers are now supported
- Zwift Click V2: the new unlock handling is now available to everyone. A new "Use new unlock method" setting lets you switch back to the classic single controller at any time.
- To conserve battery, Bluetooth Controllers are disconnected after a few minutes when BikeControl is no longer connected to your trainer app (e.g. training session ended)
6.1 19 Jun
TrainingPeaks has now partnered with BikeControl, supporting a whooping number of 28 mappable controller actions!
Read more in our blog.
**Features**:
- Zwift Click V2: Pro users will now no longer require unlocking with Zwift every 24 hours – hooray! Once some feedback is collected, it will be available for Base users as well :)
6.0.0 7 Jun
- Zwift Play firmware 2.0.1 is now supported
Connection overhaul:
- Network connection to Zwift is now improved: only connect to a single device in Zwift, instead of two (one for the trainer and one for the controller).
- lots of internal changes to make the connection process more reliable and robust.
5.6.0 3 Jun
**Features**:
Virtual Shifting overlay:
- on macOS and other platforms you can now show the Smart Trainer gear & more on top of your trainer app, when using the virtual shifting functionality introduced in 5.4.0
- on iOS the gears can be shown as part of the Dynamic Island / Live Activity functionality
Virtual Shifting:
- Support for virtual shifting for devices without FTMS:
- FE-C over BLE devices (e.g. Tacx trainers)
- fix for Zwift ready Smart Trainers
- new Cadence filter setting to suppress sensor spikes that cause resistance pulses
5.5.0 14 May
You can now connect your smart trainer directly to BikeControl. Connect your trainer for:
- Fully customize Virtual Shifting gears to your liking
- Add virtual shifting capability if your trainer app doesn't support it
- Direct gear / intensity / mode changes via your controller
- Start a mini workout
- Proxy Bluetooth devices to WiFi
- and much more – read more in our blog!
**Other new Features**:
- In-app chat support: reach out from the app with attachments and diagnostics
- Redesigned controller visualization with per-device contours: adjust buttons right from the main screen
**Fixes**:
- Many UI adjustments and bug fixes
5.4.0 5 May
Rouvy, alongside MyWhoosh, is now officially supported by BikeControl! Read more about it in our blog.
**Features**:
- Long press now repeats the single click action by default, useful for continuous gear shifting or volume adjustments
- Improved Gamepad support
**Fixes**:
- Bluetooth Media Remotes now trigger actions correctly
- a number of UI improvements and bug fixes
5.3.0 15 Apr
Great news for MyWhoosh users: MyWhoosh has partnered with BikeControl to provide official support for controller hardware.
- A new network-based connection method is now available on all platforms, replacing the previous “Link” connection method
- To use it, open the connection screen in MyWhoosh and tap the OpenBikeControl icon in the top right
This integration enables seamless and reliable controller support directly within MyWhoosh.
Read the full announcement for more details:
https://bikecontrol.app/blog/mywhoosh-bikecontrol-partnership
5.2.0 6 Apr
**Features**:
- show latest blog posts from bikecontrol.app
- Add two extra Wahoo KICKR headwind actions for cyclic speed increase/decrease (thanks @Tumlinh)
**Fixes**:
- offer "Mark as unlocked" to mark your Click V2 as unlocked when having unlocked manually
5.1.1 27 Mar
BikeControl Pro is now available - subscribe to the Pro version to support the project and get access to additional features such as:
- Cross Platform license: use the same subscription on all your devices without additional charge
- Synchronize and backup your keymap settings across devices
- Individual actions for single, long and double clicks, e.g. hold a button to steer, double click to perform a specific action. This means your two button devices can now have up to 6 different actions!
- start any command/Shortcut, e.g. capture a screenshot, screen video, open a specific app, ... the possibilities are endless!
- more actions available on desktop
- and much more to come in the future!
**Features**:
- Bluetooth media buttons are now supported on iOS
- Shimano Di2: long press and double clicks are now supported:
- perform steering using long presses
- gear changes are now reflected properly without losing any button presses
- App is now available in Spanish
**Fixes**:
- macOS: Send keyboard key even if the trainer app isn't in foreground
5.0.0 19 Mar
**Features**:
- new connection method: act as Bluetooth Keyboard:
Your device can now act as Bluetooth keyboard, allowing you to send keyboard shortcuts (e.g. for virtual shifting) directly to your connected device. Especially useful for tablets / iPads.
- added new keyboard shortcuts for Rouvy (Kudos, Pause workout)
**Fixes**:
- UI adjustments and fixes in the controller configuration screen
- iOS: Remote pairing now works again
4.7.4 15 Feb
**Features**:
- new connection method: act as Bluetooth Keyboard:
Your device can now act as Bluetooth keyboard, allowing you to send keyboard shortcuts (e.g. for virtual shifting) directly to your connected device. Especially useful for tablets / iPads.
- added new keyboard shortcuts for Rouvy (Kudos, Pause workout)
**Fixes**:
- UI adjustments and fixes in the controller configuration screen
- iOS: Remote pairing now works again
4.7.2 6 Feb
**Features**:
- new connection method: act as Bluetooth Keyboard:
Your device can now act as Bluetooth keyboard, allowing you to send keyboard shortcuts (e.g. for virtual shifting) directly to your connected device. Especially useful for tablets / iPads.
- added new keyboard shortcuts for Rouvy (Kudos, Pause workout)
**Fixes**:
- UI adjustments and fixes in the controller configuration screen
- iOS: Remote pairing now works again
4.7 5 Feb
**Features**:
• A new look with Ride, Devices, Activity and Settings tabs.
• Rides are recorded automatically, with zones, gears and .fit export to Strava, Apple Health or Health Connect.
• Reworked phone steering with improved accuracy and calibration; OpenBikeControl apps can steer from the real handlebar angle - including Elite Sterzo and Rizer (thanks @michidk).
• Clearer setup steps and a new Plan & account page.
• BKool Trainer support
**Fixes**:
• More reliable network check and connections
• Wahoo KICKR Bike adjustments
• Friendlier messages and in-app answers when something doesn't work.
more Version 7.2.1 1 day ago
Data Not Linked to You The following data may be collected but it is not linked to your identity: