mirror of
https://github.com/jonasbark/swiftcontrol.git
synced 2026-02-18 00:17:40 +01:00
b4693229d2990930b5a35ad7cc4ae409008e4c98
SwiftControl
Description
With SwiftControl you can control your favorite trainer app using your Zwift Click, Zwift Ride or Zwift Play devices. 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
- more? If you can do it via keyboard, mouse or touch, you can do it with SwiftControl
https://github.com/user-attachments/assets/1f81b674-1628-4763-ad66-5f3ed7a3f159
Downloads
Get the latest version for Windows here: https://github.com/jonasbark/swiftcontrol/releases
Supported Apps
- MyWhoosh
- indieVelo / Training Peaks
- Biketerra.com
- any other! Customize touch points or keyboard shortcuts to your liking
Supported Devices
- Zwift Click
- Zwift Click v2 (mostly, see issue #68)
- Zwift Ride
- Zwift Play
Supported Platforms
- Android
- App is losing connection over time? Read about how to keep the app alive.
- macOS
- Windows
- Windows may flag the app as virus. I think it does so because the app does control the mouse and keyboard.
- Bluetooth connection unstable? You may need to use an external Bluetooth adapter.
- Make sure your Zwift device is not paired with Windows Bluetooth settings: more information.
- Web (you won't be able to do much)
- iOS (iPhone, iPad)
- Note that you can't run SwiftControl and your trainer app on the same iPhone due to iOS limitations, but you can use it to remotely control MyWhoosh and similar on e.g. an iPad.
Troubleshooting
Check the troubleshooting guide here.
How does it work?
The app connects to your Zwift device automatically. It does not connect to your trainer itself.
- Android: SwiftControl uses the AccessibilityService API to simulate touch gestures on specific parts of your screen to trigger actions in training apps. The service monitors which training app window is currently active to ensure gestures are sent to the correct app.
- macOS / Windows a keyboard or mouse click is used to trigger the action.
- there are predefined Keymaps for MyWhoosh, indieVelo / Training Peaks, and others
- you can also create your own Keymaps for any other app
- you can also use the mouse to click on a certain part of the screen, or use keyboard shortcuts
- iOS: use SwiftControl as "remote control" for other devices, such as an iPad. Example scenario:
- your phone (Android/iOS) runs SwiftControl and connects to your Zwift devices
- your iPad or other tablet runs e.g. MyWhoosh (does not need to have SwiftControl installed)
- after pairing SwiftControl to your iPad / tablet via Bluetooth your phone will send the button presses to your iPad / tablet
Alternatives
- qdomyos-zwift directly controls the trainer (as opposed to controlling the trainer app). This can be useful if your trainer app does not support virtual shifting.
Donate
Please consider donating to support the development of this app :)
Description
Languages
Dart
85.4%
C++
6.4%
CMake
3.2%
Kotlin
2.1%
Swift
1.9%
Other
1%