Detects games from Steam, Epic, Ubisoft, Xbox, and Amazon on Windows using Rust, tracks active sessions, and saves them to JSON.
Category
Tool
Status
Completed
GitHub Stats
Created
Dec 30, 2025
Last Updated
Jan 7, 2026
In this project, I developed a Rust tool that collects games installed on Windows from various launchers and tracks active game sessions through running processes.
It's difficult to see in one place which launcher games are installed from and if they are actually running at the moment. Since sources like Steam, Epic, Ubisoft, Xbox, and Amazon are kept separate, there is a need for a common detection layer.
In this project, I built separate detector modules that extract the game list from launcher data. I scanned Steam manifest files, Epic manifests, Ubisoft registry entries, Xbox packages, and the Amazon Games database, collecting potential main .exe files into a cache. Then, using WMI, I scanned running processes every second, monitored matching games as sessions, and wrote the active records to a JSON file.
The outcome is not just a script that lists installed games, but a simple, process-based game session tracker. The project is currently entirely written in Rust, works with a Windows focus, and saves active sessions to the active_sessions.json file.
Rust, WMI, Windows API, Serde, Serde JSON, Chrono, Winreg, Walkdir, Rusqlite, SQLite