MCPcopy Index your code
hub / github.com/rommapp/romm

github.com/rommapp/romm @4.9.2

repository ↗ · DeepWiki ↗ · release 4.9.2 ↗ · What it actually does → · Ask this repo → · + Follow
4,570 symbols 17,828 edges 620 files 1,479 documented · 32% updated today5.0.0-beta.1 · 2026-07-04★ 10,370164 open issues
README

romm logo

A beautiful, powerful, self-hosted ROM manager and player.

discord-badge-img docs-badge-img license-badge-img release-badge-img docker-pulls-badge-img

Overview

RomM (ROM Manager) allows you to scan, enrich, browse and play your game collection with a clean and responsive interface. With support for multiple platforms, various naming schemes, and custom tags, RomM is a must-have for anyone who plays on emulators.

Features

  • Scan and enhance your game library with metadata from IGDB, Screenscraper and MobyGames
  • Fetch custom artwork from SteamGridDB
  • Display your achievements from Retroachievements
  • Metadata available for 400+ platforms
  • Play games directly from the browser using EmulatorJS and RuffleRS
  • Share your library with friends with limited access and permissions
  • Official apps for Playnite, Android and CFWs
  • Supports multi-disk games, DLCs, mods, hacks, patches, and manuals
  • Parse and filter by tags in filenames
  • View, upload, update, and delete games from any modern web browser

Preview

🖥 Desktop 📱 Mobile
desktop preview mobile preview

Installation

To start using RomM, check out the Quick Start Guide in the docs. If you are having issues with RomM, please review the page for troubleshooting steps.

Contributing

To contribute to RomM, please check Contribution Guide.

Community

Here are a few projects maintained by members of our community. Please note that the RomM team does not regularly review their source code.

Mobile

Desktop

Handhelds

Other

[🔷] Official first-party app

Join us on Discord, where you can ask questions, submit ideas, get help, showcase your collection, and discuss RomM with other users.

discord-invite-img

Technical Support

If you have any issues with RomM, please open an issue in this repository.

Financial Support

Consider supporting the development of this project on Open Collective. All funds will be used to cover the costs of hosting, development, and maintenance of RomM.

oc-donate-img

Our Friends

Here are a few projects that we think you might like:

  • EmulatorJS: An embeddable, browser-based emulator
  • RetroDECK: Retro gaming on SteamOS and Linux
  • ES-DE Frontend: Emulator frontend for Linux, macOS and Windows
  • Gaseous: Another ROM manager with web-based emulator
  • Retrom: A centralized game library/collection management service
  • Drop: Steam-like experience for DRM-free games
  • LanCommander: Digital game platform for PC games
  • Steam ROM Manager: An app for managing ROMs in Steam

    hackernews badge   selfh.st badge   Aikido Security Audit Report

Extension points exported contracts — how you extend this code

LegacyRuffleAPI (Interface)
(no doc)
frontend/src/types/ruffle.d.ts
RufflePlayerElement (Interface)
(no doc)
frontend/src/types/ruffle.d.ts
RuffleSourceAPI (Interface)
(no doc)
frontend/src/types/ruffle.d.ts
DBSnapshot (Interface)
(no doc)
frontend/src/utils/indexdb-monitor.ts
Change (Interface)
(no doc)
frontend/src/utils/indexdb-monitor.ts

Core symbols most depended-on inside this repo

get
called by 1232
backend/handler/netplay_handler.py
add_device
called by 101
backend/handler/database/devices_handler.py
filter
called by 98
backend/handler/database/users_handler.py
_get_env
called by 94
backend/config/__init__.py
get_rom
called by 91
backend/handler/metadata/ss_handler.py
update
called by 69
backend/endpoints/sockets/scan.py
CustomJSON
called by 60
backend/utils/database.py
delete
called by 60
backend/handler/netplay_handler.py

Shape

Method 2,244
Function 1,361
Class 657
Route 285
Interface 23

Languages

Python89%
TypeScript11%

Modules by API surface

backend/tests/handler/metadata/test_launchbox_handler.py164 symbols
backend/tests/endpoints/test_saves.py151 symbols
backend/tests/endpoints/roms/test_rom.py81 symbols
backend/tests/handler/filesystem/test_roms_handler.py73 symbols
backend/tests/handler/metadata/test_base_handler.py72 symbols
backend/tests/handler/metadata/test_ss_handler.py71 symbols
backend/tests/adapters/services/test_screenscraper.py68 symbols
backend/tests/handler/filesystem/test_resources_handler.py67 symbols
backend/tests/handler/filesystem/test_base_handler.py62 symbols
backend/handler/database/roms_handler.py59 symbols
frontend/src/stores/galleryFilter.ts54 symbols
backend/tests/adapters/services/test_steamgriddb.py53 symbols

Dependencies from manifests, versioned

@eslint/js10.0.1 · 1×
@mdi/font7.4.47 · 1×
@tailwindcss/vite4.3.1 · 1×
@types/js-cookie3.0.6 · 1×
@types/lodash4.17.16 · 1×
@types/node22.13.14 · 1×
@types/qrcode1.5.5 · 1×
@types/semver7.7.0 · 1×
@vitejs/plugin-vue6.0.7 · 1×
@vue/tsconfig0.7.0 · 1×
@vueuse/core13.7.0 · 1×
axios1.16.0 · 1×

For agents

$ claude mcp add romm \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact