Download, and the blue warning
Windows shows a blue "Windows protected your PC" window the first time you run the installer. That is expected. Here is why it appears, what to press, and where the app goes once it is running.
Is it safe to run?
You do not know me, and it is an .exe. So here is what you can check rather than believe.
- Built in public, not on my PC. GitHub builds every installer from the published source, and the build logs are there to read. GitHub signs a statement of which source the file came from.
- Every installer is sent to VirusTotal, where about 70 antivirus engines look at it. See the report for exactly this file and judge for yourself - right after a release it can still be running. Expect a few flags, and here is why: when this was last checked, Microsoft, Kaspersky, ESET, Malwarebytes, Sophos, Symantec and about 55 others found nothing, and BitDefender's engine - which several other products also use, so it shows up more than once - raised a heuristic for PowerShell scripts. That is a guess from behaviour, not a match with known malware, and the behaviour is real: the app uses small PowerShell scripts to look at two spots of the screen and to press keys for you, which is also what some malware does. The scripts are plain text in the source. If you run one of those antivirus products it may block the app.
- No administrator rights. It installs for your Windows user only: no service, no driver, nothing that starts with Windows. It uninstalls from Windows Settings like anything else.
- It talks to three places: this project's translator at translate.dotatranslator.live (the chat lines to translate, which it passes on to Google's Gemini; nothing said is logged), GitHub (updates, and one small settings file), and Valve's image server (a hero portrait, only if it is not found in your own Dota). No server of mine, no account, no tracking in the app.
- It listens to Dota and never writes to it. The game sends its chat to the app through Valve's own Game State Integration feed. To show who spoke, the app captures two thumbnail-sized spots of the game's picture and keeps nothing. It presses keys for you only when you press Ctrl+Enter in the game's chat. Each of those is one plain-text file, and automated tests fail if the app ever gains a way to open the game's process. What that means for your account is in the catch.
- Code scanning and dependency alerts are on. GitHub's scanner reads the code on every change, and watches the packages it is built from.
This version's fingerprint (SHA-256):
Compare it with your file in PowerShell: Get-FileHash Dota-Translator-Setup.exe
All of it, with the commands, is in SECURITY.md. If you would rather not run an installer at all, you can run it from the source.
Windows stops the installer
Run Dota-Translator-Setup.exe and a blue window appears in place of the installer. Press More info, and a Run anyway button appears.
Windows protected your PC
Windows protected your PC
- App:
- Dota-Translator-Setup.exe
- Publisher:
- Unknown publisher
Get-FileHash Dota-Translator-Setup.exe. And GitHub itself signs a statement of which commit the file was built from, which anybody with GitHub's command-line tool can check: gh attestation verify Dota-Translator-Setup.exe --repo sc0rebreaker/dota-translator.It installs by itself
No questions and no administrator password: it installs for your Windows user only, puts a shortcut on the Desktop and in the Start menu, and starts. The first time, it opens a window that says it is ready: restart Dota once, so the game picks up its chat feed, and play.
After that it lives by the clock
Dota Translator has no main window. It sits in the system tray, the row of small icons beside the clock, and draws only over Dota. Windows hides new tray icons behind the little ^ arrow: click it and look for the two chat bubbles.

Click the icon for the settings; right-click it to hide the translations or to quit. Starting Dota Translator again from its shortcut while it is already running opens the same settings window. Alt+D hides and shows the translations, Alt+Shift+D quits.