Universe
What it does
The whole library
GOG, Steam, Epic and itch.io games install, update and launch from Universe. The first run picks up what Lutris, Heroic and Steam installed, and the emulators’ ROM folders: Dolphin, PCSX2, RPCS3, Ryujinx and the rest. Art comes without an API key.
A page for every game
The page shows play time, sessions, saves, disk use and achievements, with an in-game banner when one unlocks. It compares the installed version with the latest release, and holds the game’s launch settings: runner, Proton build, resolution, frame cap.

Three looks, one library
Universe, Switch 2 and PS5, switched live in the settings. Universe is a port of Reprise, my Pegasus theme. The PS5 one took a day. Other people’s themes install as add-ons.
Not affiliated with Nintendo or Sony. Nintendo Switch is a trademark of Nintendo; PlayStation and PS5 are trademarks of Sony Interactive Entertainment.
HOME over a running game
The HOME button pauses the game and opens over it: screenshot, MangoHud, frame cap, volume, reconnect a controller, quit. Holding B opens the power menu.
Couch and Steam Deck
DualSense, DualShock 4, Xbox, Switch Pro, Switch 2 Pro and 8BitDo pads each get their own glyphs, and each emulator gets one pad per player. On a Steam Deck the layout goes 16:10, with power limit, GPU clock and fan in the settings. Universe runs inside Steam’s Game Mode, or in its own session at the login screen, with no desktop, like a console.
Two apps and a CLI
Universe Big Screen is driven with a controller, in PySide6 and QML. Universe Desktop is for mouse and keyboard, in GTK4, libadwaita and Rust, and puts your games in GNOME’s search. The CLI does everything both apps do, with JSON output on every command.

universe # your library, last played first
universe play "dead cells" # by id, a word or part of the title
universe login gog # sign in to a store
universe search hades --source gog # then universe install <id>
universe saves backup "dead cells" # also list, restore, export, cloud
universe status --json # the running game, for a script
How I built it
- days in the plan
- ~80
- day to an accepted MVP
- 1
- commits in 38 days
- 1,212
- releases, v0.0.1 to v0.0.13
- 13
The plan
On 11 September 2026 the plan counted about 80 days over five milestones. The MVP was accepted the same day, and v0.0.1 shipped two days later. Since then, 13 releases, packaged for the AUR, COPR (Fedora) and Nix, plus an install script for SteamOS and Bazzite.
Written by agents
The architecture, the specs and the review are mine. The code is written by agents, Claude Code and Codex, and I don’t read it. The tests are the spec, and a change is done when a test shows it working. There are 416 in Rust and 760 in Python. A crawler walks every screen of each look, about 6,000 presses per look, and fails on the first lost focus or dead end.
The architecture
The core is a Rust library with no daemon. Each game runs in a transient systemd unit, and the end of its cgroup closes the session. It is reached three ways, with no IPC: the crate, a Python module (PyO3) and the CLI. Modules and game sources are Python executables that speak JSON, and the data stay plain files, one game.toml per game and a sessions.jsonl.
25 sessions at once
On 10 October I dictated 16 items. One session split them into 25 briefs, ran them as parallel Claude sessions, each in its own git worktree, then landed their 255 commits.
What’s next
v0.1.0 is under way: updates for games outside GOG, a README that matches the site, and whatever the three forks added.
Further out, I want to turn the journal into a real companion. It already writes one entry per session from the recording and the screenshots. I’d like to talk to it mid-game and have it answer from what the journal knows, or from the web.
Also on the list: trophies beyond GOG, Wii U, Steam Big Picture and PS3 themes, and what Windows and macOS would take.
Links
I tried every Linux launcher, so I made my own
Steam, Heroic, Lutris, Pegasus, Big Picture. They all have a problem on Linux, so I built Universe, a launcher you drive with a controller, in-game overlay included.
What it does, how to install it, the changelog.
First run, controllers, every settings section, and the CLI reference.
Arch (AUR), Fedora (COPR), SteamOS and the rest, Nix.
MIT licensed.