zwift-login is a simple utility which basically lets you launch Zwift without having to click any button or fill any fields in the login sequence of the game.
It can be used to launch Zwift and login directly from the command line, too.
This is how you use it…
See it demonstrated in a screencast by following this link. Otherwise, just try it – it is really simple to use.
Zwift is launched just by pressing Launch Zwift:

Launching Zwift by the press of a button…
Once the password is stored (it will be saved in a file on your harddrive) it only takes a single button press to launch Zwift and feed it your login details if you have not stored them directly in Zwift.
First time a bit of setup is required…
The first step is to store your username and password, so press Store Password (only necessary at first run or if you change your Zwift password).
Now the Launch Zwift button will be enabled. Naturally, you won’t have to save the password again unless you change it in Zwift.
Zwift status and preferences alerts
At the bottom of the window you can see the current Zwift status (from the Zwift status page).
Right above that you will see alerts for certain settings in prefs.xml, which it is good to be aware of before launching Zwift of if you did not intend to have them activated in this session:
- A world icon will be shown if the world hack is used
- A full screen icon (looking like an empty frame) will be shown if the Minimal UI-setting is set
It works together with other ZwiftHacks…
zwift-login plays together with some of the other tools here on the site.
zwift-preferences
If the zwift-preferences script is installed in the same folder as zwift-login there will be a button that you can launch it with. That way you can easily make your choice of e.g. trainer resistance level, world and course selection before you launch Zwift.
zwift-hotkeys
If the zwift-hotkeys script is installed in the same folder as zwift-login it will automatically be launched together with Zwift.
TR-Z-move
If the TR-Z-move script is installed in the same folder as zwift-login it will automatically be launched together with Zwift.
Using as a command line tool
zwift-login accepts a command line parameter (/launch) which makes it launch Zwift automatically with the need for pressing a button. This can be used e.g. for scheduling an unattended start of Zwift.
Run zwift-login.ahk like this:
AutoHotkey.exe zwift-login.ahk /launch
It will launch with the stored settings of the last user selected in zwift-login.
To specify which user (1-5) you can combine /launch with the /user= parameter (see below) or use the short form /launch=1 etc.
AutoHotkey.exe zwift-login.ahk /launch /user=1
or
AutoHotkey.exe zwift-login.ahk /launch=1
To open zwift-login with a specific user selected:
Use one of the parameters /user=1, /user=2, /user=3, /user=4, and /user=5.
Example:
AutoHotkey.exe zwift-login.ahk /user=1
Other command line parameters:
/onlyzwift Will only launch Zwift and not look for any other ZwiftHacks scripts to launch simultaneosly.
Using with non-standard Zwift setups
Even if you have Zwift installed in a location different from the default (which is %ProgramFiles(x86)\Zwift%, typically C:\Program Files (x86)\Zwift) or have the Zwift document\data files in a non-default location (which is Documents\Zwift) you can still use zwift-login if you set up a couple of environment variables: ZWIFTPROG and ZWIFTDOC.
If you have Zwift installed in a location different from the default:
Add an environment variable called ZWIFTPROG to your WindowsWindows The Windows operating system from Microsoft. account to point to your Zwift program folder:
Example: ZWIFTPROG=C:\win10\Zwift
You may have to log out of Windows and log in again after defining it for the environment variable to be known.
After this zwift-login will always use the value of ZWIFTPROG as the location of the Zwift program files instead of the default location.
If you have your Zwift documents (e.g. prefs.xml) in a location different from the default:
If you have your Zwift data files/documents in another folder than the default Documents\Zwift folder you can similarly control where zwift-login and zwift-preferences look for the data files (prefs.xml) with a new ZWIFTDOC environment variable (this is also supported in zwift-preferences).
Google can tell you how to add/modify environment variables:
https://www.google.com/search?q=set+environment+variable+in+windows+10
Prerequisites
Windows PC w/
Downloads
Download “zwift-login script with installer” setup-zwift-login.exe – Downloaded 4053 times – 1 MB
Read more about the installer package.
How to make this login without button press? automatically after start…
Download again (I just put a new version up for download). Run zwift-login.ahk like this:
AutoHotkey.exe zwift-login.ahk /launch
This version accepts the following parameters:
/launch
Launches Zwift
/onlyzwift
Will only launch Zwift and not look for any other ZwiftHacks scripts to launch simultaneosly.
Thanx a lot!!!
Zwift changed “RIDE” button to “LET’S GO” – can u update. please)
Already did that three days ago. You just have to download the newest version.
Thanx!!
Hi, I’m having trouble with this. I’ve downloaded the update and it’s opening the Zwift program fine, but it’s not hitting the ‘Let’s Go’ button.
It may be that it is resolved simply by closing the Zwift launcher (by right clicking the icon in the notification area and choosing exit) because Zwift sometimes end up in a special state after an update. Then Zwift and the Zwift launcher run with elevated rights (as administrator) and does not respond to keypresses and command from another process (zwift-login) which is not elevated itself.
If this does not help, please let me know and I can look further into it.
Hi Jesper!
Thanks for the reply and the help – though I confess I haven’t carried it out. I uninstalled everything and then re-installed it and it seems to work now, though I can’t put my finger on what I’ve done differently.
Thanks for the system you’ve (and anyone else has) put together, it is helpful.
Jx
How can I use zwift-login if I install Zwift app on a custom path like D:\Zwift
I found the path dir on row 525-542, but I can’t modify it by myself
You have two options:
1) Modify the script
2) Make the standard location for Zwift a symbolic link to your custom location
Here is how to do it:
Option 1 – Modify the script
Open your copy zwift-login.ahk in Notepad and change the script in line 527, 534, and 540 from
EnvGet, pf, ProgramFiles(x86)
to
pf := "D:"
You can simply use search and replace to make the change.
Option 2 – Make a symbolic link
Open a Cmd or Powershell window (as administrator).
Use mklink to create the link:
mklink /D "%ProgramFiles(x86)%\Zwift" "d:\zwift"
Option 1 works well οΌthank you
Hi,
is it possible to create different shortcuts for different users, f.e. one Desktop Icon that starts login with my account and another icon that starts Zwift with a different account? I’ve already tried to create to versions of the Zwift-login.ahk file which refer to two different ini files, but when I start it from the command line (autohotkey.exe “C:\Users\xyz\Documents\Zwift\Scripts\zwift-login-xyz.ahk” /launch) Zwift always logs in with the latest active account. Is there any solution? Thanks in advance
Yes, it can work. The solution is to never let Zwift remember the user but instead only store usernames and passwords in zwift-login.
To make Zwift forget the user you can do the following:
Launch Zwift from the start menu
In the βWelcome!β screen with the βLetβs goβ button press βChange userβ
Enter your password, remove the check mark from βRemember meβ, and press βLog inβ
When the βWelcome!β screen appears again, close it by clicking on the X in the top right corner.
Hi,
the login script doesn`t pass the Sign-in screen any longer. I have to sign in manually; deinstall and reinstall of the script as well as of Auto Hotkey didn`t make things better. Any suggestions appreciated, thanks a lot!
It may be that it is resolved simply by closing the Zwift launcher (by right clicking the icon in the notification area and choosing exit) because Zwift sometimes end up in a special state after an update. Then Zwift and the Zwift launcher run with elevated rights (as administrator) and does not respond to keypresses and command from another process (zwift-login) which is not elevated itself.
If this does not help, please let me know.
Hi Jesper,
thanks for the reply; unfortunately closing the Zwift Launcher doesn`t help, I tried this option already as you proposed it a few posts before, but without success. I forgot to mention it in my first request.
If you are using the latest version of zwift-login and has restarted your PC I don’t have a good explanation why it doesn’t work. I just tested it this morning without any problems. I’ll have to think about what you can try next.
I Love this!
My Zwift takes so long to load once i get into my cave that i often miss events.
Now i can tell google home to load & login while im still putting on my gear.
is there a way to auto press “Ride” button on post-pairing screen? Thx)
No, that hasn’t been built into zwift-login. I’ll take a note of this as a possible new feature (but I won’t promise anything).
Ok – thanx – will wait for any update ! π
I can’t seem to solve an issue with this script, each time after I complete a ride with ‘save and exit’ or ‘discard’ when the zwift window closes, I see the zwift-login ahk window still up and an error message flashes up (see link for screenshot). Any ideas why this might be?
sorry, left the link in ‘website’ field, for detail here it is: https://imgur.com/a/SZ4iviG
It’s not a problem I have seen before but let’s try to figure out what causes it.
I have some questions for you:
Thanks for responding!
1. I tried this once and it did not have an effect.
2. I launch it with a desktop shortcut; the program is located in a folder with its ini file etc. on the windowsWindows The Windows operating system from Microsoft. system drive, and the desktop shortcut points to the .ahk file
3. 1.1.22.2
4. Windows 10 home
You should try to install a new version of AutohotkeyAutoHotkey AutoHotkey is a free, open-source custom scripting language for Microsoft Windows, initially aimed at providing easy keyboard shortcuts or hotkeys, fast macro-creation and software automation.. The most recent version from https://www.autohotkey.com/ is v1.1.31.01 – October 14, 2019
Jesper thanks but after upgrading AHK the same issue persists. I might try to step through the script to debug or reinstall zwift altogether
What it the text in the status bar of zwift-login when the error message appears? Is it ‘Pressing Ride Button…’?
It will tell me where in the code to look for the problem.
comment exΓ©cuter : “AutoHotkey.exe zwift-login.ahk launch “
It really should be
{path to autohotkey.exe} zwift-login.ahk /launch
unless the directory where autohotkey.exe is installed is already in the PATH variable on your computer.
You can run this from a shortcut you create, from a bat/cmd file, from the ‘Run’ window (Win+R), from Task Scheduler and in many other ways.
merci, j’ai rΓ©ussi avec le planificateur de tΓ’ches.
I don’t know much about programming at all. Where is the command line parameter, and where exactly do I put “autohotkey.exe zwift-login-ahk /launch” in the text of “zwift-login-ahk”?
Thanks
You can always just start zwift-login from the installed shortcut in the WindowsWindows The Windows operating system from Microsoft. Start menu.
If the talk about command line arguments is nonsense for you then you probably don’t need this advanced feature at all π
The command line usage is definitely what I would call advanced usage. You can run this from a shortcut you create, from a bat/cmd file, from the βRunβ window (Win+R), from Task Scheduler and in many other ways if you are into automating things on your computer.
Hi another great tool! I can’t get it to run TR-Zmove when it launches though? All scripts are in scripts folder: trzmove, preferences and login? Any ideas? Thanks!
You found a bug! Don’t worry, a bug fix is on its way.
The fixed version (19) is ready now
This is GREAT! Recently, though, I’ve seen a script-error window pop up “between” the zwift script mini-window and the “lets go” window. Eventually that script-error window seems to disappear and things eventually load, but seems to be taking longer than normal. Just noting this as a potential new issue.
You get the same if you launch Zwift manually. It is an error from the Zwift launcher itself. For now just click yes to make it go away.
There’ll be a new version of zwift-login soon which can dismiss the script error window automatically.
The new version (v22) is available now.
It does not work today. probably they changed the login process π
I’ve just used it an hour ago without any problems. In which way did it fail for you?
we use it for two accounts, as mentioned in an earlier comment, and now it will remember the previously used login. Somehow the “remember” checkbox is always checked and I do not seem to be able to disable it.
Worked like a charm before.
You’re right! ‘Remember me’ has changed to checked as default in Zwift Launcher. I’ll release an update to handle it.
Great!
thanks a bunch!
The update is ready for download.
Hi. Great idea for a helper script, thanks for putting the effort in to developing it.
I can’t get the multi-user functionality to work for Zwift running on WindowsWindows The Windows operating system from Microsoft. 10. I’ve registered two users inside zwift-login but, regardless of which user I select before clicking ‘launch zwift’ it just loads Zwift up as the last logged in user. Any suggestions for how to debug?
Finally, I’d love to be able to execute this remotely from a linux machine using ssh to e.g. launch a Windows scheduled task. Any pointers or suggestions here? Every other aspect of my pain cave is automated – just this bit to fix!
Sounds like Zwift remembers the user, too. You have to start Zwift Launcher, choose ‘Change User’, clear the usename field + untick the ‘Remember me’ box, and attempt to log in. It fails, of course. Then just close the Zwift Launcher.
Hopefully this helps.
Read up on the command line switches – I think they will let you do what you are after.
Perfect, thanks Jesper. I’d previously enabled ‘capture usernames and passwords’ in iexplore to make logging in easier.