Jonas Bark eb66731784 dev fix
2025-10-09 22:41:26 +02:00
2025-10-09 21:21:51 +02:00
2025-10-01 15:41:19 +02:00
2025-10-08 09:18:53 +02:00
2025-10-09 12:52:28 +02:00
2025-10-09 22:41:15 +02:00
2025-10-06 19:28:43 +02:00
2025-10-09 22:41:26 +02:00
2025-10-07 20:08:46 +02:00
2025-09-30 09:00:30 +02:00
2025-09-22 13:27:30 +02:00
2025-03-26 15:41:06 +01:00
2025-10-09 14:53:54 +02:00
2025-10-07 18:33:00 +02:00
2025-03-28 11:18:16 +01:00
2025-03-27 22:20:06 +01:00
2025-03-28 12:31:04 +01:00
2025-10-09 10:51:59 +02:00
2025-10-09 21:21:51 +02:00
2025-10-09 16:05:55 +02:00
2025-10-08 20:56:40 +02:00

SwiftControl

SwiftControl Logo

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

GetItOnGooglePlay_Badge_Web_color_English App Store Mac App Store

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
  • 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
No description provided
Readme 46 MiB
Languages
Dart 85.4%
C++ 6.4%
CMake 3.2%
Kotlin 2.1%
Swift 1.9%
Other 1%