A centralized game library/collection management service with a focus on emulation
  • TypeScript 60.7%
  • Rust 36.9%
  • Nix 0.8%
  • JavaScript 0.7%
  • CSS 0.2%
  • Other 0.5%
Find a file
semantic-release-bot bb0be8f1d9 chore(release): 0.8.2
## [0.8.2](https://github.com/JMBeresford/retrom/compare/v0.8.1...v0.8.2) (2026-05-17)

### Bug Fixes

#### fix(client): update changelog rendering ([b78dd2f2](b78dd2f28a))
#### fix(docker): remove legacy web server ([92f065b3](92f065b354))
The Retrom API server has been serving the web client for a while now,
however it seems the unused legacy web server was never removed. This fixes the
docker image such that the legacy web server is now no longer started.

#### fix(docker): startup failure due to node version mismatch ([c94dc86f](c94dc86f33))
Updates the node.js version used in the docker image to match
what the Retrom expects. This should resolve the startup failures
in the latest release.
2026-05-17 20:52:10 +00:00
.cargo chore: fix cargo caching on macOS 2026-03-03 11:55:48 -08:00
.github chore(ci): fix windows client build args 2026-03-26 14:07:00 -07:00
docker fix(docker): remove legacy web server 2026-05-16 14:25:07 -07:00
docs@34150015d6 docs: update docs 2026-04-08 11:30:09 -07:00
nix chore(release): 0.8.2 2026-05-17 20:52:10 +00:00
packages fix(client): update changelog rendering 2026-05-17 13:19:23 -07:00
plugins feat: support custom TLS certificates for clients 2026-04-03 17:20:13 -07:00
screenshots chore: include screenshots 2025-11-22 18:31:34 -08:00
templates chore: update flatpak manifest template 2026-03-08 19:02:00 -07:00
.dockerignore feat: allow single file lib structure 2024-09-21 22:49:43 -07:00
.gitignore chore: init webdav service 2026-03-07 15:47:45 -08:00
.gitmodules init wiki 2025-01-12 22:38:09 -08:00
.markdownlint.json chore(ci): init markdownlint 2025-10-11 16:44:02 -07:00
.npmrc chore: migrate ui components to @retrom/ui package (#345) 2025-07-13 14:36:23 -07:00
.nvmrc chore: bump node + pnpm versions 2025-12-20 15:12:53 -08:00
.prettierignore chore(ci): no format changelog 2025-10-11 17:01:04 -07:00
.prettierrc.json chore fix example json 2024-10-10 12:14:06 -07:00
.release-please-manifest.json chore(main): release 0.7.51 2026-01-18 15:56:08 -08:00
.sqlfluff feat: initial emulatorJS and cloud save support 2025-06-14 17:11:01 -07:00
Cargo.lock chore(release): 0.8.2 2026-05-17 20:52:10 +00:00
Cargo.toml chore(release): 0.8.2 2026-05-17 20:52:10 +00:00
CHANGELOG.md chore(release): 0.8.2 2026-05-17 20:52:10 +00:00
CONTRIBUTING.md chore(docs): update contrib guide 2026-02-08 10:10:03 -08:00
flake.lock chore: fix nix cargo git-based deps 2026-03-08 15:11:37 -07:00
flake.nix chore(ci): update cachix cache 2026-03-03 11:37:13 -08:00
io.github.jmberesford.Retrom.desktop fix: notifications before setup 2025-12-08 20:54:08 -08:00
io.github.jmberesford.Retrom.metainfo.xml chore(release): 0.8.2 2026-05-17 20:52:10 +00:00
io.github.jmberesford.Retrom.yml feat: flatpak manifest generation (#436) 2025-11-30 19:39:10 -08:00
LICENSE Initial commit 2024-04-18 17:05:32 -07:00
mcp.json chore: init custom agents 2026-01-31 12:26:52 -08:00
nx.json feat: cloud save support for standalone emulators 2026-03-07 15:47:45 -08:00
package.json chore: fix changelog generator 2026-05-17 12:46:22 -07:00
pnpm-lock.yaml chore: fix changelog generator 2026-05-17 12:46:22 -07:00
pnpm-workspace.yaml chore: fix changelog generator 2026-05-17 12:46:22 -07:00
README.md chore: init instructions 2026-01-31 13:22:49 -08:00
release-notes-template.js chore: use short commit hash in changelog 2026-05-17 13:34:41 -07:00
release.config.js chore: fix release config 2026-05-17 13:46:45 -07:00
tsconfig.json feat: cloud save support for standalone emulators 2026-03-07 15:47:45 -08:00
version-announcements.json Change announcement level from warning to error 2025-09-02 10:00:42 -07:00

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