RomM
Beautiful, powerful, self-hosted rom manager and player
Alternative to: antstream arcade
4.8.0
2026-04-01Highlights
Client API tokens
API tokens are a safer way for apps and devices to connect without sharing user credentials. A new QR-based pairing flow makes setup quick, with support for regeneration and revocation when needed. #3114
Chunked uploads
Goodbye failed uploads and incessant timeouts! ROMs will now upload in smaller chunks, allowing for more reliable transfers even on spotty connections. #3076
Local LaunchBox metadata import
Have a local LaunchBox installation packed with games? You can now import metadata directly from it, including cover art, screenshots and video previews. #2922
Minor changes
- Add config option to use local video paths in gamelist.xml export by @JamieeBond in https://github.com/rommapp/romm/pull/3082
- Add additional cover styles for boxart to prevent cropping by @Drarox in https://github.com/rommapp/romm/pull/3060
- Fetch games on search view mount and reset search state on input clear by @zurdi15 in https://github.com/rommapp/romm/pull/3080
- Add
video_normalizedmedia type option for ScreenScraper scans by @gantoine in https://github.com/rommapp/romm/pull/3088 - Scrape and store age rating data from ScreenScraper.fr by @gantoine in https://github.com/rommapp/romm/pull/3089
- Make invite token expiration configurable by @gantoine in https://github.com/rommapp/romm/pull/3094
- Click to zoom game cover image by @gantoine in https://github.com/rommapp/romm/pull/3093
- Add more platforms to cover styles by @Drarox in https://github.com/rommapp/romm/pull/3098
- Show filtered ROM count in the gallery AppBar and filter drawer by @gantoine in https://github.com/rommapp/romm/pull/3097
- Show firmware count in scan results to improve BIOS detection discoverability by @gantoine in https://github.com/rommapp/romm/pull/3111
- Per-platform metadata coverage and region breakdown to server stats by @cciollaro in https://github.com/rommapp/romm/pull/3110
- Use PICO-8 built-in cover art from .p8.png cartridge files by @gantoine in https://github.com/rommapp/romm/pull/3119
- Auto-update game status from RetroAchievements award kind during progress sync by @gantoine in https://github.com/rommapp/romm/pull/3118
- Add Bulgarian (bg_BG) translation by @DenislavDenev in https://github.com/rommapp/romm/pull/3159
Fixes
- Fix platform aspect ratio not applying in gallery view by @gantoine in https://github.com/rommapp/romm/pull/3083
- Fix metadata IDs not persisting when handler is disabled or game not found by @gantoine in https://github.com/rommapp/romm/pull/3085
- Hack for natural sorting of ROMs by @gantoine in https://github.com/rommapp/romm/pull/3086
- Always sub dash with colon for launchbox matching by @gantoine in https://github.com/rommapp/romm/pull/3090
- Fix 500 error when loading platforms with ROMs whose filenames start with region tags by @gantoine in https://github.com/rommapp/romm/pull/3091
- Fix M3U generation to exclude raw .bin tracks when .cue files are present by @gantoine in https://github.com/rommapp/romm/pull/3100
- Filesystem watcher and scheduled scan skip when no metadata sources configured by @gantoine in https://github.com/rommapp/romm/pull/3106
- Replace deep watch with computed to reduce reactivity overhead by @cciollaro in https://github.com/rommapp/romm/pull/3104
- Add missing platforms to playable game filter by @Bergbok in https://github.com/rommapp/romm/pull/3121
- Default to querying all roms by @camhorn in https://github.com/rommapp/romm/pull/3122
- Remove cover image card bevel by @gantoine in https://github.com/rommapp/romm/pull/3131
- Auto-select firmware when only one option is available by @gantoine in https://github.com/rommapp/romm/pull/3150
- Fix IntegrityError when updating favourites after ROM rescan by @Copilot in https://github.com/rommapp/romm/pull/3166
- Fix mod_zip UTF-8 filename handling for non-ASCII downloads by @tmgast in https://github.com/rommapp/romm/pull/3171
Other changes
- Typed API form fields by @gantoine in https://github.com/rommapp/romm/pull/3036
- Fix OAuth token expiry and implement refresh token rotation by @HydroSulphide in https://github.com/rommapp/romm/pull/3102
- Add property for path_video and refactor places which use similar logic by @JamieeBond in https://github.com/rommapp/romm/pull/3116
- Move “Clean up All” missing ROMs deletion to background task by @gantoine in https://github.com/rommapp/romm/pull/3109
- Allow partial updates to ROM user props via typed payload schema by @gantoine in https://github.com/rommapp/romm/pull/3124
- Switch ACCESS_TOKEN_EXPIRE_MINUTES to SECONDS by @gantoine in https://github.com/rommapp/romm/pull/3096
- Update RAHasher to version 1.8.3 and add Wii platform support by @zurdi15 in https://github.com/rommapp/romm/pull/3145
- Add OIDC_SERVER_METADATA_URL to support providers with non-standard discovery URLs (e.g. Google) by @gantoine in https://github.com/rommapp/romm/pull/3099
- Fix OIDC login role downgrading for users without claims by @pacnpal in https://github.com/rommapp/romm/pull/3103
- Implement OIDC RP-Initiated Logout (end-session endpoint) by @gantoine in https://github.com/rommapp/romm/pull/3107
- Make OAuth token expiry configurable via env vars by @HydroSulphide in https://github.com/rommapp/romm/pull/3126
- Remove Non-Argosy Android app references from README by @milktoastrat in https://github.com/rommapp/romm/pull/3130
- Lockdown package installs by @gantoine in https://github.com/rommapp/romm/pull/3203
- Bump authlib from 1.6.6 to 1.6.7 by @dependabot[bot] in https://github.com/rommapp/romm/pull/3070
- Bump tar from 7.5.9 to 7.5.10 in /frontend by @dependabot[bot] in https://github.com/rommapp/romm/pull/3075
- Bump joserfc from 1.3.5 to 1.6.3 by @dependabot[bot] in https://github.com/rommapp/romm/pull/3064
- Bump tornado from 6.5.1 to 6.5.5 by @dependabot[bot] in https://github.com/rommapp/romm/pull/3123
- chore(deps): bump authlib from 1.6.7 to 1.6.9 by @dependabot[bot] in https://github.com/rommapp/romm/pull/3138
- chore(deps): bump memray from 1.17.2 to 1.19.2 by @dependabot[bot] in https://github.com/rommapp/romm/pull/3141
- chore(deps): bump socket.io-parser from 4.2.5 to 4.2.6 in /frontend by @dependabot[bot] in https://github.com/rommapp/romm/pull/3144
- chore(deps-dev): bump flatted from 3.3.4 to 3.4.2 in /frontend by @dependabot[bot] in https://github.com/rommapp/romm/pull/3146
- chore(deps-dev): bump picomatch from 2.3.1 to 2.3.2 in /frontend by @dependabot[bot] in https://github.com/rommapp/romm/pull/3177
- chore(deps): bump requests from 2.32.4 to 2.33.0 by @dependabot[bot] in https://github.com/rommapp/romm/pull/3186
- chore(deps-dev): bump handlebars from 4.7.8 to 4.7.9 in /frontend by @dependabot[bot] in https://github.com/rommapp/romm/pull/3188
- chore(deps): bump cryptography from 46.0.5 to 46.0.6 by @dependabot[bot] in https://github.com/rommapp/romm/pull/3196
- chore(deps): bump pygments from 2.19.2 to 2.20.0 by @dependabot[bot] in https://github.com/rommapp/romm/pull/3199
[!NOTE] Environment Variables
UPLOAD_TIMEOUThas been removed in favour of chunked uploadsOAUTH_ACCESS_TOKEN_EXPIRE_SECONDS: Access token lifetime (in seconds, default 30 minutes)OAUTH_REFRESH_TOKEN_EXPIRE_SECONDS: Refresh token lifetime (in seconds, default 7 days)INVITE_TOKEN_EXPIRY_SECONDS: Invite token lifetime (in seconds, default 10 minutes)OIDC_SERVER_METADATA_URL: URL to the OIDC provider metadata endpointOIDC_RP_INITIATED_LOGOUT: Enable RP-initiated logout flow (defaultfalse)OIDC_END_SESSION_ENDPOINT: OIDC end-session endpoint override URL
New Contributors
- @gravelfreeman made their first contribution in https://github.com/rommapp/romm/pull/2922
- @Drarox made their first contribution in https://github.com/rommapp/romm/pull/3060
- @alanfrigo made their first contribution in https://github.com/rommapp/romm/pull/3076
- @pacnpal made their first contribution in https://github.com/rommapp/romm/pull/3103
- @cciollaro made their first contribution in https://github.com/rommapp/romm/pull/3104
- @HydroSulphide made their first contribution in https://github.com/rommapp/romm/pull/3102
- @Bergbok made their first contribution in https://github.com/rommapp/romm/pull/3121
Full Changelog: https://github.com/rommapp/romm/compare/4.7.0…4.8.0