{"id":15126195,"url":"https://github.com/steamgriddb/steam-rom-manager","last_synced_at":"2025-05-14T05:10:33.261Z","repository":{"id":37180538,"uuid":"89850983","full_name":"SteamGridDB/steam-rom-manager","owner":"SteamGridDB","description":"The bulk game importer and artwork manager for Steam! ","archived":false,"fork":false,"pushed_at":"2025-05-11T08:14:52.000Z","size":54858,"stargazers_count":2069,"open_issues_count":49,"forks_count":131,"subscribers_count":35,"default_branch":"master","last_synced_at":"2025-05-11T09:24:04.454Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://steamgriddb.github.io/steam-rom-manager/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SteamGridDB.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":"funding.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"cbartondock","buy_me_a_coffee":"cbartondock","patreon":"SteamROMManager","polar":"SteamGridDB"}},"created_at":"2017-04-30T13:01:27.000Z","updated_at":"2025-05-09T21:58:49.000Z","dependencies_parsed_at":"2023-02-02T20:30:40.668Z","dependency_job_id":"7d6938e4-5685-4397-b2d4-02f8b8ebe6aa","html_url":"https://github.com/SteamGridDB/steam-rom-manager","commit_stats":null,"previous_names":[],"tags_count":162,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SteamGridDB%2Fsteam-rom-manager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SteamGridDB%2Fsteam-rom-manager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SteamGridDB%2Fsteam-rom-manager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SteamGridDB%2Fsteam-rom-manager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SteamGridDB","download_url":"https://codeload.github.com/SteamGridDB/steam-rom-manager/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254076850,"owners_count":22010611,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-09-26T02:02:29.679Z","updated_at":"2025-05-14T05:10:33.190Z","avatar_url":"https://github.com/SteamGridDB.png","language":"TypeScript","funding_links":["https://github.com/sponsors/cbartondock","https://buymeacoffee.com/cbartondock","https://patreon.com/SteamROMManager","https://polar.sh/SteamGridDB","https://www.patreon.com/steamgriddb"],"categories":[],"sub_categories":[],"readme":"# Steam ROM Manager\n\n[![Build Status](https://github.com/SteamGridDB/steam-rom-manager/actions/workflows/main.yml/badge.svg)](https://github.com/SteamGridDB/steam-rom-manager/actions/workflows/main.yml)\n[![GitHub commit activity](https://img.shields.io/github/commit-activity/w/SteamGridDB/steam-rom-manager?logo=github\u0026label=commits)](https://github.com/SteamGridDB/steam-rom-manager/commits/master)\n[![GitHub all releases](https://img.shields.io/github/downloads/SteamGridDB/steam-rom-manager/total?logo=github)](https://github.com/SteamGridDB/steam-rom-manager/releases)\n[![Discord](https://badge.cbartondock.mywire.org/badge.php?id=488621078302949377)](https://discord.gg/bnSVJrz)\n[![Chocolatey](https://img.shields.io/chocolatey/dt/steam-rom-manager?color=blue\u0026label=Chocolatey%20package)](https://community.chocolatey.org/packages/steam-rom-manager)\n[![Crowdin](https://badges.crowdin.net/steam-rom-manager/localized.svg)](https://crowdin.com/project/steam-rom-manager)\n\n\u003c!-- Discord Tags are broken by discord rate limiting, see https://github.com/badges/shields/issues/10223\n[![Discord](https://img.shields.io/discord/488621078302949377?color=5865F2\u0026label=SRM\u0026logo=discord\u0026logoColor=white)](https://discord.gg/bnSVJrz)\nA temporary fix is to host the tag service myself--\u003e\n\n# Overview\n\nSteam ROM Manager (SRM) is a super flexible tool for adding non-Steam games to Steam in bulk and managing their artwork assets and controller templates. Added games could be ROMs for emulators, games from other stores such as Epic or GOG, or even not games at all. Have you always wanted your notes from junior year as a category in steam? If so that's pretty weird! But now it's possible.\n\nFor an overview of how SRM works see [here](https://steamgriddb.github.io/steam-rom-manager/). There is plenty of documentation available in the app's built in FAQ and documentation, and if you need further help there are expert users to be found on the [SGDB discord](https://discord.gg/bnSVJrz) under the Steam ROM Manager category and the [SRM subreddit](https://www.reddit.com/r/SteamRomManager/).\n\nCheck out the [releases page](https://github.com/SteamGridDB/steam-rom-manager/releases) for compiled downloads for Windows (exe, msi), macOS (dmg), and Linux (AppImage, deb).\n\nThe Windows version is also available as a [Chocolatey package](https://community.chocolatey.org/packages/steam-rom-manager).\n\nThe Linux version is also available as a [Flatpak](https://flatpak.org) at [Flathub/steam-rom-manager](https://flathub.org/apps/details/com.steamgriddb.steam-rom-manager). Linux caveats:\n\n- On some distributions Flatpak must be [pre-configured manually](https://flatpak.org/setup).\n- The AppImage needs to be [made executable](http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80) after download.\n\nIf you're on a Steam Deck we recommend setting everything up through [EmuDeck](https://www.emudeck.com/), as it will install and automatically configure Steam ROM Manager and whatever emulators you want.\n\n# Support SteamGridDB\n\nIf you enjoy Steam ROM Manager and want it to continue to be useful consider supporting [SteamGridDB](https://www.steamgriddb.com/)'s Patreon. [SteamGridDB](https://www.steamgriddb.com/) hosts all of the artwork Steam ROM Manager uses to make your Steam library the envy of the town, so we should probably help them keep their lights on.\n\n\u003ca href=\"https://www.patreon.com/steamgriddb\"\u003e\n    \u003cimg src=\"https://c5.patreon.com/external/logo/become_a_patron_button@2x.png\" height=\"38\"\u003e\n\u003c/a\u003e\n\n# Parsers\n\nParsers are the heart and soul of SRM. If Steam is the octopus, then these are its tentacles \u0026mdash; reaching into your ROM directories and the databases and manifest files of other game stores and pulling out the games you want.\n\n## ROM Parsers\n\nROM parsers allow one to import shortcuts using search strings, e.g. `games/${title}.@(iso|rvz)`, or in the case of the manual parser by specifying ROM locations directly.\n|Parsers|Windows|Mac OS|Linux|Description|\n|---|---|---|---|---|\n|Glob|✅|✅|✅|Parsing using simple `glob` style search strings|\n|Glob-regex|✅|✅|✅|Parsing using `reg-ex` style search strings|\n|Manual|✅|✅|✅|Parsing using a JSON file specifying locations|\n\n## Platform Parsers\n\nIn addition to flexible importing of ROMS, SRM now has several _platform parsers_ for importing from popular game stores:\n\n| Parser                                                             | Windows | Mac OS | Linux | Launch Modes                                                          |\n| ------------------------------------------------------------------ | ------- | ------ | ----- | --------------------------------------------------------------------- |\n| [Amazon Games](https://gaming.amazon.com/amazon-games-app)         | ✅      | 🟦     | 🟦    | \u003cul\u003e\u003cli\u003eLaunch via Amazon Games\u003c/li\u003e\u003cli\u003eLaunch via executable\u003c/li\u003e    |\n| [EA Desktop](https://www.ea.com/ea-app)                            | ✅      | 🟦     | 🟦    | \u003cul\u003e\u003cli\u003eLaunch via EA Desktop\u003c/li\u003e\u003cli\u003eLaunch via executable\u003c/li\u003e      |\n| [Epic](https://store.epicgames.com/en-US/)                         | ✅      | ✅     | 🟦    | \u003cul\u003e\u003cli\u003eLaunch via Epic\u003c/li\u003e\u003cli\u003eLaunch via executable\u003c/li\u003e            |\n| [GOG Galaxy](https://www.gog.com/galaxy)                           | ✅      | ✅     | 🟦    | \u003cul\u003e\u003cli\u003eLaunch via GOG Galaxy\u003c/li\u003e\u003cli\u003eLaunch via executable\u003c/li\u003e      |\n| [Itch.io](https://itch.io/app)                                     | ✅      | ✅     | ✅    | \u003cul\u003e\u003cli\u003eLaunch via executable\u003c/li\u003e\u003c/ul\u003e                               |\n| [Legendary](https://github.com/derrod/legendary)                   | ✅      | ✅     | ✅    | \u003cul\u003e\u003cli\u003eLaunch via Legendary\u003c/li\u003e\u003cli\u003eLaunch via executable\u003c/li\u003e\u003c/ul\u003e  |\n| [Ubisoft Connect](https://ubisoftconnect.com/en-US/)               | ✅      | ❌     | 🟦    | \u003cul\u003e\u003cli\u003eLaunch via Ubisoft Connect\u003c/li\u003e\u003cli\u003eLaunch via executable\u003c/li\u003e |\n| [UWP/XBox](https://www.xbox.com/en-US/xbox-game-pass/pc-game-pass) | ✅      | 🟦     | 🟦    | \u003cul\u003e\u003cli\u003eLaunch via UWP\u003c/li\u003e\u003cli\u003eLaunch via executable\u003c/li\u003e             |\n| [Battle.net](https://battle.net)                                   | ✅      | ❌     | 🟦    | \u003cul\u003e\u003cli\u003eLaunch via Battle.net\u003c/li\u003e\u003c/ul\u003e                               |\n\n✅ Implemented\n❌ Planned\n🟦 Store not present\n\nWe are open to suggestions and pull requests if you would like a platform parser added!\n\n## Artwork Only Parsers\n\nArtwork only parsers allow you to change the artwork for existing non-SRM games. Put it simply they just change artwork, they don't add shortcuts.\n|Parser|Windows|Mac OS|Linux|Description|\n|---|---|---|---|---|\n|Steam|✅|✅|✅|Manages artwork for Steam Games|\n|Non-SRM Shortcuts|✅|✅|✅|Manages artwork for Steam Shortcuts not added via SRM|\n\n# For developers\n\n## Command Line Interface\n\nSRM has a fully featured command line interface, documented in the [wiki](https://github.com/SteamGridDB/steam-rom-manager/wiki/Command-Line-Interface).\n\n## Building SRM\n\nTo compile this app, you'll need the latest `Node.js` and `yarn`. Every script will need to be run from the project directory.\n\nBefore running any scripts, dependencies must be installed using:\n\n```\nyarn install\n```\n\nUnfortunately, because of an issue with `better-sqlite3` you will most likely also have to run `yarn install` after building for windows if you want `yarn run start` to work. Otherwise, you will likely see the runtime error `better-sqlite3 is not a valid win32 application`.\n\n## Scripts\n\nAll script must be run using `yarn run` command. For example, `yarn run watch:renderer`.\n\n| Script           | Function                                                            |\n| ---------------- | ------------------------------------------------------------------- |\n| `postinstall`    | Recompiles native apps to match Electron's NodeJS version if needed |\n| `start`          | Launches compiled app                                               |\n| `watch:main`     | Compiles Electron app and watches for changes                       |\n| `watch:renderer` | Compiles a renderer for an Electron app and watches for changes     |\n| `build:main`     | Compiles Electron app in production mode                            |\n| `build:renderer` | Compiles a renderer for an Electron app in production mode          |\n| `build:dist`     | Runs `build:main` and `build:renderer`                              |\n| `build:win`      | Compiles an executable installer for Windows                        |\n| `build:linux`    | Compiles a `deb` package and `AppImage` for linux                   |\n| `build:linuxdir` | Builds an unpacked linux x64 version for use with flatpak           |\n| `build:flatpak`  | Builds a flatpak from the unpacked linux version                    |\n| `build:docker`   | `build:win` and `build:linux` joined together                       |\n| `build:mac`      | Compiles a `dmg` package for MacOS                                  |\n\n## Debugging an app\n\nRun `watch:main` (usually once since one rarely changes anything in the main Electron process) and `watch:renderer`.\nEach command creates separate `webpack` instance which will watch referenced files for changes and will recompile app.\n\nApp can be run using `start` script or `npx electron .` (if you want to test the CLI use `npx electron . [command] [flags]`). After every recompile by `watch:renderer`, app can be refreshed using `Ctrl + R`, however `watch:main` requires need a restart.\n\n`Ctrl + Shift + I` can be used to launch Chrome inspector once the app is running. This works even in the release version.\n\n### For Windows\n\nScripts must be run in this order:\n\n```\nyarn run build:dist\nyarn run build:win\n```\n\n### For MacOS\n\nScripts must be run in this order:\n\n```\nyarn run build:dist\nyarn run build:mac\n```\n\n### For linux\n\nScripts must be run in this order:\n\n```\nyarn run build:dist\nyarn run build:linux\n```\n\n### For linux flatpak\n\nUnfortunately electron-builder does not yet competently build flatpaks, and the older approach using electron-packager and electron-installer-flatpak can't handle native modules. A work-around is to use electron-builder for the packaging step and electron-installer-flatpak for the actual flatpak creation.\n\nFirst you need to run `yarn install -g @malept/electron-installer-flatpak` (this can't be added as dev-dependency since it is not cross-platform and yarn doesn't allow optional dev-dependencies).\n\nThen\n\n```\nyarn run build:dist\nyarn run build:linuxdir\nyarn run build:flatpak\n```\n\nIn order for this to work you must have already installed `flatpak-builder` using your favorite package manager (e.g. `sudo pamac install flatpak-builder`) and run:\n\n```\nflatpak install flathub org.freedesktop.Platform//19.08;\nflatpak install org.freedesktop.Sdk//19.08;\nflatpak install org.electronjs.Electron2.BaseApp/x86_64/stable\n```\n\n## Updating dependencies\n\nUse `npx ncu` to list available dependency updates, and `npx ncu -u target [target]` to update, where `[target]` is either `patch`, `minor`, `latest`, `greatest`, or `newest`.\n\n## Related Projects\n\nSome other projects in the emulation-adjacent space we think you might be interested in!\n\n### Front ends\n\n- [ES-DE](https://gitlab.com/es-de/emulationstation-de) - A top tier emulation front end.\n- [Playnite](https://github.com/JosefNemec/Playnite) - A general purpose front end with lots of importers.\n- [Firelight](https://github.com/firelight-emulator/firelight) - An upcoming front end specifically for emulation with built in achievements.\n\n### Configurators\n\n- [EmuDeck](https://github.com/dragoonDorise/EmuDeck) - A collection of scripts for downloading and managing emulators and front ends alike.\n- [RetroDeck](https://retrodeck.net/) - Configurator for downloading and managing emulators and front ends alike, focused on the Steam Deck and Linux Desktop.\n\n### ROM Managers\n\n- [Romm](https://github.com/rommapp/romm?tab=readme-ov-file) - A rom manager with a web UI.\n- [Oxyromon](https://github.com/alucryd/oxyromon) - A CLI based rom manager.\n- [JRomManager](https://github.com/optyfr/JRomManager) - A java based rom manager.\n\n### Steam Artwork Tools\n\n- [Steam Art Manager](https://github.com/Tormak9970/Steam-Art-Manager) - An artwork manager for Steam games.\n- [SGDBoop](https://github.com/SteamGridDB/SGDBoop) - Tool to enable choosing artwork for in Steam directly from steamgriddb's website.\n\n## Our Competition\n\n[![Star History Chart](https://api.star-history.com/svg?repos=SteamGridDB/steam-rom-manager,scottrice/Ice,PhilipK/BoilR,brenoprata10/steam-deck-romate\u0026type=Date)](https://star-history.com/#SteamGridDB/steam-rom-manager\u0026scottrice/Ice\u0026PhilipK/BoilR\u0026brenoprata10/steam-deck-romate\u0026Date)\n\nThese tools are the closest to SRM in function, that is importing games/ROMs into Steam.\n\n- [Steam Rom Mate](https://github.com/brenoprata10/steam-deck-romate) - An alternative to SRM made with the Steam Deck in mind.\n- [BoilR](https://github.com/PhilipK/BoilR) - An alternative to SRM focused on importing from other game libraries.\n- [Ice](https://github.com/scottrice/Ice) - The steam importer that started it all, now defunct.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsteamgriddb%2Fsteam-rom-manager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsteamgriddb%2Fsteam-rom-manager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsteamgriddb%2Fsteam-rom-manager/lists"}