Open-source desktop app that backs up your video game save files to Google Drive.
QSave detects installed games using the Ludusavi manifest, and syncs your saves to Google Drive with built-in versioning. Restore them on any device — even across operating systems.
| Game library | Version restore |
|---|---|
![]() |
![]() |
| Search | Add manual game |
|---|---|
![]() |
![]() |
- 19,000+ games — Scans for save files using multiple community-maintained manifests covering Steam, GOG, Epic, Origin, Uplay, Battle.net, and standalone games
- Store integration — Detects Steam, GOG, and Epic Games Store installations to resolve save paths and match store-specific manifest conditions
- Platform badges — Shows which store each game belongs to (Steam, GOG, Epic)
- Manual games — Add any game with custom save paths for full coverage
- Steam Cloud indicator — Shows which games already have Steam Cloud saves, with a toggle to hide them
- Instant launch — Cached game list loads immediately while a fresh scan runs in the background
- Google Drive sync — One-click upload of save files with automatic versioning
- Streaming transfers — Large saves are streamed and uploaded via resumable protocol, keeping memory usage low
- Up to 5 backups per game — Keep multiple versions of your saves
- Change detection — Fingerprint-based tracking skips uploads when saves haven't changed
- Conflict detection — Warns when local saves changed before restoring, or when another device uploaded a newer backup before syncing
- Sync history — See recent backup and restore operations with timestamps and status
- Quick restore — One-click restore of the latest backup
- Version picker — Browse and restore from any of your saved versions
- Cross-platform restore — Backups use relative paths, so you can back up on one OS and restore on another
- Cloud-only games — See and restore games backed up from other devices, even if the game isn't installed locally
- Custom restore location — Pick any folder as the restore target
- Backup deletion — Remove individual backup versions from the cloud
- System tray — Runs in the background; closing the window hides to tray
- Autostart — Optional launch at system startup
- Native notifications — OS notifications when sync or restore completes
- Auto-updater — In-app updates delivered automatically
- Dark/Light mode — Follows your system theme
English, French, Spanish, German, Italian, Portuguese, Russian, Japanese, Chinese, Korean
- Tauri 2 — Desktop framework (Rust backend + web frontend)
- React 19 + TypeScript
- Tailwind CSS v4 + shadcn/ui
- TanStack Query + Zustand
- Rayon — Parallel disk scanning in Rust
- Node.js 24 (LTS)
- pnpm 10
- Rust (stable)
- Tauri 2 prerequisites
cd qsave
pnpm installStore secrets in your OS secret store (one-time setup):
macOS (Keychain):
security add-generic-password -a "$USER" -s "qsave-google-client-id" -w "YOUR_CLIENT_ID" -U
security add-generic-password -a "$USER" -s "qsave-google-client-secret" -w "YOUR_CLIENT_SECRET" -U
security add-generic-password -a "$USER" -s "qsave-tauri-signing-key" -w "YOUR_SIGNING_KEY" -U
security add-generic-password -a "$USER" -s "qsave-tauri-signing-key-path" -w "YOUR_KEY_PATH" -U
security add-generic-password -a "$USER" -s "qsave-tauri-signing-password" -w "YOUR_KEY_PASSWORD" -ULinux (libsecret):
# Install: sudo apt install libsecret-tools
secret-tool store --label="qsave-google-client-id" service "qsave-google-client-id" <<< "YOUR_CLIENT_ID"
secret-tool store --label="qsave-google-client-secret" service "qsave-google-client-secret" <<< "YOUR_CLIENT_SECRET"
secret-tool store --label="qsave-tauri-signing-key" service "qsave-tauri-signing-key" <<< "YOUR_SIGNING_KEY"
secret-tool store --label="qsave-tauri-signing-key-path" service "qsave-tauri-signing-key-path" <<< "YOUR_KEY_PATH"
secret-tool store --label="qsave-tauri-signing-password" service "qsave-tauri-signing-password" <<< "YOUR_KEY_PASSWORD"source scripts/load-env.sh && pnpm tauri devpnpm test:runpnpm tauri build- Create a project in Google Cloud Console
- Enable the Google Drive API
- Create OAuth 2.0 credentials (Desktop app type)
- Configure the consent screen
- Copy the client ID and secret to your
.envfile
Releases are automated with semantic-release. Pushing to main triggers a stable release; pushing to alpha or beta creates a prerelease.
Versions are determined from conventional commits:
fix:→ patch bump (0.1.0 → 0.1.1)feat:→ minor bump (0.1.0 → 0.2.0)BREAKING CHANGE:→ major bump (0.1.0 → 1.0.0)
The CI pipeline bumps versions across package.json, tauri.conf.json, and Cargo.toml, generates a changelog, tags the release, and builds macOS (ARM + Intel) and Windows installers.
QSave uses the following manifests to detect games and their save file locations:
- Ludusavi Manifest — primary game database, sourced from PCGamingWiki
- Ludusavi Extra Manifests — community-contributed games missing from the primary manifest
- Ludusavi Manifests (hvmzx) — additional save paths for existing games
The primary manifest data comes from PCGamingWiki. If you find missing or incorrect save locations, please contribute back to the wiki so improvements benefit everyone.



