NoSteam2Steam is a tool designed to manage non-Steam games by allowing users to:
Automatically detect and add non-Steam games to the Steam library (with artwork, icons, and the best available compatibility tool)
Sync and back up save files
Restore lost saves from previously added games
While it's optimized for the Steam Deck, it can also be used on other platforms with some adjustments—particularly related to OS-specific path conversions.
This project uses Game Backup Monitor (GBM) as the main reference/tool for creating backups on Windows. However, NoSteam2Steam can be used as a standalone tool on the Steam Deck.
Backups are expected to follow the same folder structure as GBM. To sync save files between local Steam Deck data and Windows saves, we use Syncthing (known as Syncthingy on the Steam Deck). That said, any folder synchronization tool with similar functionality can be used.
If you’re only interested in:
Adding non-Steam games to Steam with artwork, or
Backing up and restoring save files locally on the Steam Deck, including restoring saves from previously added games
...then NoSteam2Steam can handle it all on its own — no additional tools required.
(They are already bundled in the executable (released version))
py7zr for .7z file manipulationzenity for the graphical user interfacerequests for external API queriesvdf for handling Steam configuration filesGo to the following URL and download the latest release of noSteam2Steam:
https://github.com/JesusSolisOrtega/NoSteam2Steam/releases/tag/v1.1.0
Place the downloaded file wherever you prefer — for example, in ~/Desktop.
Double-click the noSteam2Steam.bin file to run the app.
If it doesn't start, you may need to make it executable first. To do that, open a terminal in the same folder and run:
chmod +x noSteam2Steam.bin
After that, you can double-click it or run it from the terminal with:
./noSteam2Steam.bin
Important: After adding games with NoSteam2Steam, you need to restart Steam for it to recognize the changes and properly show the new games.
noSteam2Steam uses ad default folder for games ~/Games, and ~/Games/Heroic, So it will find games on those folders. Backups are by default on ~/Backups. You can add or delete folders to Sync.
Available options include:
The program consists of three (actually four) main modules, each handling a specific task:
Game Identification: Searches the designated sync folder for game executables and supplements this with Lutris data. It also auto-select the best available launcher if it have x86, x64 and/or Vulkan executables.
Steam Integration: Steam Integration: Adds games to Steam, associates images, calculates game IDs, and automatically selects the most suitable compatibility tool available on the system.
Save File Sync: The core feature—reads backups from the designated folder and syncs them with local save files of Steam-added games. It relies on the backup structure from Game Backup Monitor (GBM) and configuration files from GBM and Ludusavi.
*The fourth module is manual game detection, which functions similarly to the first module but allows user selection and overwrites previous entries if a game was already associated with an executable. Automatic detection respects manual selections.
*Additional functionalities include resetting configurations for troubleshooting or clean setups. The program prioritizes reliability (e.g., avoiding overwriting saves if uncertain) while minimizing user prompts for efficiency. Once a file is synced or manually entered, it assumes this behavior for future runs.
Both the first and second modules update data if changes are detected (except for images, which are not redownloaded once found).
Most menu options are self-explanatory:
Automatic Sync → Full process: identifies, adds, and syncs saves.
Automatically Add Games to Steam → Runs the first two modules (identification + Steam integration).
Manual Save Sync → Syncs saves.
Reset Configuration → Options to clear game/sync settings.
Enable/Disable Syncthing → Toggles Syncthing for sync folder management in Steam Game Mode (Note: Syncthing works well for saves but struggles with large game files—consider alternatives for game transfers).
Change Synced Game Folders → Adjusts folders for synced games (default: $HOME/games).
** Based on tests, SyncThing works well for backups of saved games, but it has caused problems with games for large files, so other methods or programs are recommended to transfer games to the device from Windows (or do it manually).
Key projects used as references for game/save file identification:
GBM -> https://mikemaximus.github.io/gbm-web/
Ludusavi Manifest -> https://github.com/mtkennerly/ludusavi-manifest
Lutris
Additional repositories for Steam shortcut manipulation and ID calculations:
Steam Shortcut Manager -> https://github.com/CorporalQuesadilla/Steam-Shortcut-Manager
Heroic Games Launcher -> https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher/tree/main
SteamGridDB -> https://github.com/SteamGridDB/steam-rom-manager/blob/master/src/lib/helpers/steam/generate-app-id.ts
Copyright (c) 2025 Jesús Solís Ortega
This software is distributed for educational and personal use only. Commercial use, distribution, sublicensing, sale, or integration into for-profit products/services is prohibited without the copyright holder's consent. Non-commercial use, copying, and modification are permitted, provided this copyright notice remains intact.
For commercial inquiries, contact the author.
NO WARRANTIES, EXPRESS OR IMPLIED, ARE PROVIDED.
For questions or suggestions, open an issue in the repository or contact me directly. For commercial integration projects, reach out—I’m likely open to collaboration. Thanks for using NoSteam2Steam!
If you find NoSteam2Steam useful and wish to support my work:
$ claude mcp add NoSteam2Steam \
-- python -m otcore.mcp_server <graph>