Skip to content

Vasya1996/vael-desktop

Repository files navigation

Vael — desktop client

The open-source desktop client for Vael, an AI voice coach for Dota 2. This repository contains the full source of the app that runs on your machine, so anyone can read exactly what it does before installing it. The AI/coaching backend is a separate hosted service and is not part of this repo.


Quick start (for players)

1. Download & install. No account is needed just to download.

iwr https://vaelcopilot.tractioneye.xyz/download/Vael-Setup.exe -OutFile "$env:TEMP\Vael-Setup.exe"; & "$env:TEMP\Vael-Setup.exe"

On first run, Windows SmartScreen may warn about an "unknown publisher" — click More info → Run anyway (see Installing below for why that's normal).

2. Create an account. Open Vael and sign up with email or Google (or sign in if you already have an account).

3. Choose your push-to-talk key. Open Settings and pick the key you'll hold to talk to Vael.

Choose your push-to-talk key

4. Pick the game. In Library, select Dota 2 (the only supported game for now).

Pick Dota 2 in the Library

5. Launch with the coach. Hover the Dota 2 cover and click Play with AI companion — the game and Vael start together, and Vael tucks itself into the system tray.

Launch with the AI companion

6. Talk to Vael in-game. Once you're in a match, hold your push-to-talk key and ask a question — Vael answers out loud, right in the game.

Vael ready in-game


Is it safe? What the app actually does

Everything below is verifiable in this source tree — the relevant files are named.

How it reads the game

  • Game State Integration (GSI). Dota 2's own, Valve-sanctioned feature: the game POSTs match state to a localhost-only server the app runs on 127.0.0.1:53210, protected by a per-install token. Nothing here leaves your machine except what the app forwards to the Vael backend. See src-tauri/src/gsi.rs.
  • Optional screen reading (OFF by default). GSI never reveals the enemy draft, so — only if you turn it on — the app captures the Dota game window (via Windows Graphics Capture) to recognize enemy heroes from the top bar. Only the Dota window is captured, only while enabled. See src-tauri/src/vision/.

What it sends

  • Your own hero/state and (if enabled) recognized enemy heroes, plus your push-to-talk voice, go over an encrypted connection to the Vael backend, which returns the coach's reply (text + speech). You can see exactly what is sent in ui/app.js and src-tauri/src/.

What it does NOT do

  • It does not send input to Dota, automate play, or read the game's memory — it is read-only and never interferes with the match.
  • It does not log your keystrokes. It listens for the single push-to-talk hotkey you configure, nothing else. See the PTT handling in src-tauri/src/main.rs.
  • It does not capture your whole screen or other apps — only the Dota window, and only when screen-reading is switched on.
  • The microphone is held open only while Dota is running.

Updates are verifiable. Releases are built by this repo's public CI and signed with a minisign key. The app only accepts an update whose signature matches the public key baked into src-tauri/tauri.conf.json. Each GitHub Release also publishes SHA-256 checksums, so the installer you download can be checked against the one CI produced.


Installing (Windows SmartScreen)

When you run the installer, Windows SmartScreen may show a blue "Windows protected your PC — unknown publisher" warning. This is expected: Vael is open-source and is not signed with a paid Authenticode certificate, so Windows doesn't recognize the publisher. Click More info → Run anyway to continue.

This is normal for open-source software that ships without a code-signing certificate — it does not mean the app is unsafe. You can read every line of what it does in this repository, and each release ships a SHA-256 checksum so you can verify the installer matches the public build.


Build from source

Prerequisites: Rust (stable) and Node.js 20+, plus the Tauri prerequisites for Windows (WebView2 is present on Windows 10/11 by default).

npm ci
npm run build      # = tauri build -> installer in src-tauri/target/release/bundle/nsis

For a dev run: npm run dev.

A build from source runs the same code as the official release. Auto-update points at the same feed, so a self-built copy will update to the next official signed release unless you change the endpoint in src-tauri/tauri.conf.json.

Releases

Tagging desktop-v<version> triggers .github/workflows/release.yml, which builds, signs, and publishes the installer, its signature, latest.json, and SHA256SUMS.txt to GitHub Releases. Nothing but public source and public CI is involved.

License

MIT © 2026 Vasiliy Andronov (Vael).

Security reports: see SECURITY.md.

About

Open-source desktop client for Vael, an AI voice coach for Dota 2.

Topics

Resources

License

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors