A self-hosted ROM library manager. Point it at your ROM folders, and it handles the rest: identifies games, fetches metadata and artwork from ScreenScraper, and lets you build collections to send directly to your devices. Discover curated collections from the community or share your own.
- Scans your ROM directories and identifies games automatically
- Fetches cover art, screenshots, and game metadata from ScreenScraper.fr
- Build collections to curate your favorites, top lists, or themed sets
- Browse community collections at romhoard.cubical.fyi and import them into your library
- Send collections or individual games to handhelds via FTP/SFTP, with images
- Includes presets for common device OSes (MuOS, KNULLI, Batocera, etc.)
Collections are game lists you can share, export, and sync to devices. Create a "Top 20 SNES" list, import someone else's curated RPG picks, or build themed sets for different handhelds. Collections track games by name, so they work even if your ROM files are named differently.
Browse and download community-curated collections at romhoard.cubical.fyi. Find ready-made lists like "Best GBA RPGs" or "Hidden SNES Gems" and import them directly into your library. Collections are just game lists, no ROMs are uploaded or downloaded.
You can also export your own collections and share them with the community. Build something great? Upload it to the hub for others to discover.
Select games or an entire collection and send them directly to your handheld over FTP or SFTP. RomHoard maps systems to the right folders based on device presets, so ROMs end up where your emulator expects them, with the images.
RomHoard didn't start as a ROM manager. The original idea was to discover and share curated game lists, because having 2000 ROMs and not knowing what to play is a real problem.
I wanted to send those collections straight to my retro handhelds. Turns out you need to manage ROMs to do that, so here we are.
Romm is great if you want to carefully curate your library with metadata from lots of sources.
RomHoard is collections-first: discover curated lists, share your own, and send them to your devices. The ROM management exists to support that.
You can run both, they're good neighbors.
RomHoard runs as a Docker container with PostgreSQL.
mkdir romhoard && cd romhoardcurl -O https://raw.githubusercontent.com/cubicalbatch/romhoard/master/docker-compose.ymlBy default, the container looks for ROMs in a ./roms folder. Edit the compose file to mount your actual ROM directory:
volumes:
- /path/to/your/roms:/romsdocker compose up -dOpen http://localhost:6766 in your browser.
Most things are configured through the web UI. For ScreenScraper metadata fetching, you'll need a free account at screenscraper.fr.
See documentation/docker.md for environment variables and advanced configuration.
Django, PostgreSQL, HTMX, Alpine.js, Tailwind CSS, Procrastinate for background jobs.
Contributions for targeted bug fixes are welcome. For new features, please open an issue to discuss with me first before submitting a pull request.



