A centralized game library/collection management service with a focus on emulation
  • TypeScript 63.7%
  • Rust 34.7%
  • JavaScript 0.7%
  • CSS 0.2%
  • Dockerfile 0.2%
  • Other 0.3%
Find a file
semantic-release-bot b9127cf6b3 chore(release): 0.7.52
## [0.7.52](https://github.com/JMBeresford/retrom/compare/v0.7.51...v0.7.52) (2026-02-08)

### Features

* feat: flatpak client builds ([eab08318be](eab08318be))
  	The Retrom client is now available via FlatHub. This means it will be
	directly installable on SteamOS via the Discover Store!
2026-02-08 01:05:00 +00:00
.github chore(ci): fix announcements 2026-02-07 17:01:25 -08:00
docker Add rustfmt to service Dockerfile 2026-01-21 21:52:56 -08:00
docs@47708419ea
packages chore: clean up 2026-01-13 17:39:42 -08:00
plugins chore: clean up 2026-01-13 17:39:42 -08:00
screenshots
templates feat: flatpak client builds 2026-02-07 14:48:18 -08:00
.dockerignore
.gitignore
.gitmodules
.markdownlint.json
.npmrc
.nvmrc
.prettierignore
.prettierrc.json
.release-please-manifest.json chore(main): release 0.7.51 2026-01-18 15:56:08 -08:00
.sqlfluff
Cargo.lock chore(release): 0.7.52 2026-02-07 23:08:44 +00:00
Cargo.toml chore(release): 0.7.52 2026-02-07 23:08:44 +00:00
CHANGELOG.md chore(release): 0.7.52 2026-02-08 01:05:00 +00:00
CONTRIBUTING.md chore: init copilot cli 2026-01-31 12:19:17 -08:00
io.github.jmberesford.Retrom.desktop
io.github.jmberesford.Retrom.metainfo.xml doc: note server prereq in flatpak metainfo 2026-01-18 15:50:31 -08:00
io.github.jmberesford.Retrom.yml
LICENSE
mcp.json chore: init custom agents 2026-01-31 12:26:52 -08:00
nx.json
package.json feat: flatpak client builds 2026-02-07 14:48:18 -08:00
pnpm-lock.yaml feat: flatpak client builds 2026-02-07 14:48:18 -08:00
pnpm-workspace.yaml feat: flatpak client builds 2026-02-07 14:48:18 -08:00
README.md chore: init instructions 2026-01-31 13:22:49 -08:00
release-notes-template.js chore(ci): init new release action 2026-01-25 16:05:38 -08:00
release-please-config.json
release.config.js chore(ci): fix version rules 2026-02-07 15:04:31 -08:00
tsconfig.json
version-announcements.json

Banner

A centralized game library/collection management service with a focus on emulation. Configure once, play anywhere


Check out the quick start guide or the full wiki

Download the latest Client


Join the Discord server:

discord-badge

Table of Contents

Overview

Retrom is a centralized game library management service that allows you to host your games on a single device, and connect clients on any amount of other devices to (un)install/download and play them when and where you want to! Think of it as a sort of self-hosted Steam for your DRM-free game library.

Core Features

  • Host your own cloud game library service
  • Scan your filesystem for games/platforms and automatically add them to your library
  • Install/uninstall and play games from the service on any amount of desktop clients.
    • Support for Windows, MacOS, and Linux!
  • Access your library from anywhere with the web client.
  • Unify your emulation library with third party libraries
    • Steam
    • GoG (soon™)
    • Native PC / Linux / MacOS games (experimental)
  • Manage emulator profiles on a per-client basis, stored on the server for easily sharing configurations between devices or restoring them after a reinstall.
  • Launch all your games across any amount of emulators or platforms via your pre-configured profiles from a single library interface.
  • Automatically download game metadata and artworks from supported providers to showcase your library with style!

Screenshots

Home Screen

Game Details

In Game

Roadmap

Tip

The below list is often out-of-date, see the full roadmap here

  • Basic server functionality
    • Scan filesystem for library items
    • Add/remove library items
    • Edit library items
    • Download metadata
      • IGDB provider
      • SteamGridDB provider
    • Cloud save games / states / emulator NANDs
      • Built-in emulators
      • Standalone emulators
    • (Multi-)User authentication
    • Publish server binaries, as an alternative to Docker
  • Basic client functionality
    • View library items
    • Edit library metadata and artworks
    • Trigger library update jobs
      • Scan filesystem for new entries
      • Download/update metadata for new entries
    • Manage game files
      • rename
      • delete
      • set default (for launching via emulators)
    • Grid view (as opposed to default list view)
    • Fullscreen mode + controller support
  • Web (browser) client functionality (in addition to Basic functionality)
    • Download games
    • In-browser emulation via EmulatorJS
  • Desktop client functionality (in addition to Basic functionality)
    • Install/uninstall games
    • Configure locally available emulators
    • Configure multiple profiles per-emulator
    • Set default profiles per-platform
    • Launch games
    • Built-in emulator profiles for popular emulators