GitHunt
AL

alexan/swiftcontrol

Do Virtual Gear Shifting in any rider app with your Zwift Play, Zwift Click or Zwift Ride controller

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
video.mp4

Downloads

Get the latest version here: https://github.com/jonasbark/swiftcontrol/releases

Supported Apps

  • MyWhoosh
  • indieVelo / Training Peaks
  • Biketerra.com
  • any other:
    • Android: you can customize simulated touch points of all your buttons in the app
    • Desktop: you can customize keyboard shortcuts and mouse clicks in the app

Supported Devices

  • Zwift Click
  • Zwift Ride
  • Zwift Play

Supported Platforms

  • Android
  • macOS
  • Windows
  • Web (you won't be able to do much)

Troubleshooting

  • Your Zwift device is found but connection does not work properly? You may need to update the firmware in Zwift Companion app.
  • The Android app is losing connection over time? Read about how to keep the app alive.

How does it work?

The app connects to your Zwift device automatically.

  • When using Android a "click" on a certain part of the screen is simulated to trigger the action.
  • When using macOS or Windows a keyboard or mouse click is used to trigger the action.
    • there are predefined Keymaps for MyWhoosh and indieVelo / Training Peaks
    • 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

Please consider donating to support the development of this app :)

Donate

Languages

Dart63.8%C++13.1%CMake8.5%Kotlin5.5%HTML4.4%Swift2.7%Ruby1.3%C0.7%Objective-C0.0%

Contributors

GNU General Public License v3.0
Created July 10, 2025
Updated January 31, 2026