Desktop companion app for defrag.racing. Runs in the tray, automatically backs up new Quake 3 Defrag demos to your account, and opens defrag:// links from the website directly in your engine of choice (oDFe or iDFe).
Built with Tauri 2, Vue 3, and Rust.
- Auto demo backup — watches your
defrag/demos/folder and uploads new demos to defrag.racing. Deduplicated by MD5, so re-scanning is free. Opt-in; requires a personal access token from the website. - Engine auto-detect — scans the usual install paths on Windows, macOS and Linux (including Steam, Flatpak) for oDFe and iDFe. Never picks for you — always shows a list and lets you choose.
defrag://protocol handler — clicking a server link on defrag.racing (defrag://1.2.3.4:27960) opens the configured engine with+connect 1.2.3.4:27960and brings the connect prompt up immediately.
The auth token is stored in the OS keyring (Windows Credential Manager / macOS Keychain / libsecret). No secrets on disk.
Grab the installer for your platform from Releases:
- Windows:
.msior.exe - macOS:
.dmg(pick Apple Silicon for M1/M2/M3, Intel for older Macs) - Linux:
.AppImage(portable) or.deb
After installing, open your defrag.racing profile → Settings → Security → Launcher tokens, generate a token, and paste it into the launcher on first run.
Updates are automatic — future versions install themselves on launch (you can opt out in settings).
Prerequisites:
- Rust (stable)
- Node.js 20+
- Platform deps for Tauri: see tauri.app/start/prerequisites/
npm install
# Run against production defrag.racing
npm run tauri dev
# Run against a local Laravel instance
DEFRAG_API_URL=http://localhost npm run tauri dev
# Build a release bundle (installer for the current OS)
npm run tauri buildPush a tag named launcher-vX.Y.Z to trigger the matrix build workflow:
git tag launcher-v0.1.0
git push --tagsGitHub Actions builds Windows / macOS (Intel + Apple Silicon) / Linux installers in parallel and attaches them to a draft GitHub Release. Review the release and mark it published when ready.
Tauri updater goes forward-only by default. To roll users back:
- Re-release trick: tag
launcher-v0.1.3that checks outv0.1.1code, bumps the package version to0.1.3and releases. Users on the broken0.1.2auto-update to the identical-code-but-higher-version0.1.3. - Delete the release on GitHub: only affects new installs; does not roll back existing clients.
A proper kill-switch manifest endpoint on defrag.racing can be added later if we need true downgrade enforcement.
MIT. See LICENSE.