With BikeControl (formerly known as SwiftControl) you can control your favorite trainer app using your Zwift® Click, Zwift® Ride, Zwift® Play, Elite Square Smart Frame®, Elite Sterzo Smart®, Wahoo Kickr Bike Shift®, Bluetooth remotes and gamepads. Here's what you can do with it, depending on your configuration:
▶ Virtual Gear shifting
▶ Steering / turning
▶ Adjust workout intensity
▶ Control music on your device
▶ Add Virtual Shifting to trainer apps that do not support it natively
▶ Adjust everything around Virtual Shifting: gear count, ratios, ...
▶ More? If you can do it via keyboard, mouse or touch, you can do it with BikeControl
Open Source
The app is open source and available at https://github.com/OpenBikeControl/bikecontrol/
Supported Apps
Officially supported:
▶ MyWhoosh
▶ Rouvy
▶ TrainingPeaks
Also supported:
▶ Zwift
▶ Biketerra.com
▶ Any other app: You can customize touch points (Android) or keyboard shortcuts (Desktop)
Supported Devices
▶ Zwift© Click
▶ Zwift© Click v2 (mostly, see issue #68)
▶ Zwift© Ride
▶ Zwift© Play
▶ Shimano Di2
▶ SRAM AXS / eTap
▶ Wahoo Kickr Bike Shift
▶ Wahoo Kickr Bike Pro
▶ Wahoo Kickr Bike V1
▶ Wahoo Kickr Bike V2
▶ CYCPLUS BC2 Virtual Shifter
▶ Thinkrider VS200 Virtual Shifter
▶ Elite Sterzo Smart (for steering support)
▶ Elite Square Smart Frame (beta)
▶ Gamepads
▶ BLE HID devices and classic Bluetooth HID devices
▶ Keyboard input
▶ Use your phone on your handlebar for steering using the phones' sensors
▶ We're working on an affordable alternative based on an open standard, supported by all major trainer apps — register your interest at openbikecontrol.org
AccessibilityService API Usage
Important Notice: This app OPTIONALLY uses Android's AccessibilityService API to enable control of training applications through your Zwift devices.
Why AccessibilityService:
▶ To simulate touch gestures on your screen that control trainer apps
▶ To detect which training app window is currently active
▶ To enable seamless control of apps like MyWhoosh, IndieVelo, Biketerra.com, and others
How We Use AccessibilityService:
▶ When you press buttons on your Zwift Click, Zwift Ride, or Zwift Play devices, BikeControl translates these into touch gestures at specific screen locations
▶ The service monitors which training app window is active to ensure gestures are sent to the correct application
▶ NO personal data is accessed, collected, or transmitted through this service
▶ The service only performs the specific touch actions you configure within the app
Privacy and Security:
▶ BikeControl only accesses your screen to perform the gestures you configure
▶ No other accessibility features or personal information is accessed
▶ All gesture configurations remain on your device
▶ The app does not connect to external services for accessibility functions
This app is not affiliated with or endorsed by Zwift, Inc. or Wahoo or Elite.
Permissions Required
▶ Bluetooth: To connect to your Zwift devices
▶ AccessibilityService (optional): To simulate touch gestures for controlling trainer apps
▶ Notifications: To keep the app running in the background
▶ Location (Android 11 and below): Required for Bluetooth scanning on older Android versions
Latest Version
Varies with deviceUploaded by
Aldo Pratama
Requires Android
Category
Free Health & Fitness AppContent Rating
Everyone
Security Report
Check Now
Report
Flag as inappropriateLast updated on Jun 22, 2026
Minor bug fixes and improvements. Install or update to the newest version to check it out!