romm: Manage and Play a Self-Hosted ROM Collection

Summary
RomM scans, organizes, enriches, and lets you play a retro game collection through a self-hosted app. It suits emulator users who want centralized metadata, browser play, and save syncing across devices.
At a glance
- Language
- Python
- License
- AGPL-3.0
- Stars
- 13.2k
- Forks
- 744
- Added to OSRepos
- November 16, 2025
- Last analyzed
- October 3, 2026
Use at your own risk
OSRepos shares public repositories for knowledge and discovery only. Any installation, execution, configuration, or use of code from these repositories is the user's own responsibility. Always review the repository, source code, dependencies, licenses, and security implications before running or installing anything. OSRepos is not responsible for issues, damages, or losses resulting from third-party repositories.
Overview
RomM is a self-hosted manager for ROM collections. It helps emulator users scan and browse their games, fill in metadata and artwork, and play supported titles in a browser, bringing library management and access together in one app.
It is a good fit for people with collections spanning multiple platforms who want control over their data and a shared library for different devices. Browser play, save syncing, user permissions, and companion apps extend its use beyond cataloging.
Key Features
- Scan and enrich collections with metadata from providers including IGDB, Screenscraper, LaunchBox, and MobyGames.
- Browse metadata for more than 400 platforms, with support for multi-disk games, DLCs, mods, hacks, and manuals.
- Play supported games in a browser using EmulatorJS and RuffleRS.
- Sync saves and states across devices, with conflict resolution.
- Fetch custom artwork and track achievements through integrations.
- Apply ROM hacks and translations with the built-in patcher.
- Share a library using per-user permissions and OIDC single sign-on.
- Connect companion apps for Playnite, Android handhelds, and custom firmware devices.
Use Cases
- An emulator enthusiast can centralize a multi-platform collection and enrich it with game metadata and artwork.
- A household or group can share a library while assigning different permissions to individual users.
- Someone who plays on multiple devices can sync saves and states rather than managing them separately.
- A self-hosting user can play supported titles in a browser without setting up a separate emulator client.
- Owners of supported handhelds can use companion apps to browse or download games and sync saves.
Project Facts
- Language: Python
- License: AGPL-3.0
- Stars: 13.2k
- Forks: 744
- Topics: emulation, open-source, retrogaming, rommapp, self-hosted
- Archived: No
Getting Started
Follow the Quick Start Guide for installation and setup. See the README for project details and related apps.
Considerations
- RomM is self-hosted, so you need to deploy and maintain the app and provide access to your ROM collection.
- Metadata enrichment and related integrations use external services and may require their configuration or credentials.
- Browser play is provided through EmulatorJS and RuffleRS, so it is not a general replacement for every emulator or platform setup.
- The project is licensed under AGPL-3.0. Review the license terms if you plan to modify or redistribute it.
- ROM files may be subject to copyright restrictions. Ensure you have the rights to store and use your collection.
Source repository
Open the original repository on GitHub.
16 counted GitHub visits
Related repositories
Similar repositories that may be relevant next.

agentevals: Evaluate AI Agents from OpenTelemetry Traces
October 4, 2026
agentevals scores AI agent behavior from existing OpenTelemetry traces, without rerunning agents or making extra model calls. It suits teams building instrumented agents that need local evaluation, golden-set checks, or CI quality gates.

web-design: Create Consistent Web Pages with a Claude Code Skill
October 3, 2026
web-design is a Claude Code skill that turns product briefs, reference URLs, or screenshots into an editable design specification before generating web code. It is suited to developers and designers who want a repeatable, spec-led workflow for building consistent pages.

oomwoo: Build a DIY Robot Vacuum
October 2, 2026
OOMWOO is a planned, hackable robot vacuum built around Raspberry Pi, ROS2 and 2D LiDAR. It is aimed at makers who want to build and customize a locally controlled vacuum, but its hardware and build instructions are still in development.

shepherd: Supervise Agents with Reversible Execution Traces
October 2, 2026
Shepherd records agent work as inspectable, reversible execution traces and keeps changes as proposals for review. It is aimed at developers building systems that supervise, replay, or manage the work of other agents.