Universe
Ce qu’il fait
Toute la bibliothèque
Les jeux GOG, Steam, Epic et itch.io s’installent, se mettent à jour et se lancent depuis Universe. Au premier lancement, il reprend ce que Lutris, Heroic et Steam ont installé, et les dossiers de ROM des émulateurs : Dolphin, PCSX2, RPCS3, Ryujinx et les autres. Les jaquettes arrivent sans clé d’API.
Une page par jeu
La page affiche le temps de jeu, les sessions, les sauvegardes, la place sur le disque et les succès, avec une bannière en jeu quand l’un d’eux se débloque. Elle compare la version installée à la dernière sortie, et garde les réglages de lancement du jeu : runner, version de Proton, résolution, limite d’images par seconde.

Trois apparences, une bibliothèque
Universe, Switch 2 et PS5, qu’on change à chaud dans les réglages. Universe reprend Reprise, mon thème pour Pegasus. Le PS5 a pris une journée. Les thèmes des autres s’installent en extensions.
Sans lien avec Nintendo ni Sony. Nintendo Switch est une marque de Nintendo ; PlayStation et PS5 sont des marques de Sony Interactive Entertainment.
HOME par-dessus le jeu
Le bouton HOME met le jeu en pause et s’ouvre par-dessus : capture d’écran, MangoHud, limite d’images par seconde, volume, reconnexion d’une manette, quitter. Un appui long sur B ouvre le menu d’alimentation.
Canapé et Steam Deck
DualSense, DualShock 4, Xbox, Switch Pro, Switch 2 Pro et 8BitDo ont chacune leurs glyphes, et chaque émulateur reçoit une manette par joueur. Sur Steam Deck, l’interface passe en 16:10, avec la limite de puissance, la fréquence du GPU et le ventilateur dans les réglages. Universe tourne dans le mode jeu de Steam, ou dans sa propre session à l’écran de connexion, sans bureau, comme une console.
Deux applications et une CLI
Universe Big Screen se pilote à la manette, en PySide6 et QML. Universe Desktop se pilote à la souris et au clavier, en GTK4, libadwaita et Rust, et met les jeux dans la recherche de GNOME. La CLI fait tout ce que font les deux, avec une sortie JSON sur chaque commande.

universe # la bibliothèque, dernier joué en tête
universe play "dead cells" # par id, un mot ou un bout du titre
universe login gog # se connecter à une boutique
universe search hades --source gog # puis universe install <id>
universe saves backup "dead cells" # aussi list, restore, export, cloud
universe status --json # le jeu en cours, pour un script
Comment je l’ai construit
- jours prévus au plan
- ~80
- jour jusqu’au MVP accepté
- 1
- commits en 38 jours
- 1 212
- versions, de la v0.0.1 à la v0.0.13
- 13
Le plan
Le 11 septembre 2026, le plan comptait environ 80 jours en cinq jalons. Le MVP a été accepté le jour même, la v0.0.1 est sortie deux jours après. Depuis, 13 versions, en paquets pour l’AUR, COPR (Fedora) et Nix, plus un script d’installation pour SteamOS et Bazzite.
Écrit par des agents
L’architecture, les specs et la revue sont de moi. Le code, ce sont des agents qui l’écrivent, Claude Code et Codex, et je ne le lis pas. Les tests servent de spec, et un changement est fini quand un test montre qu’il marche. Il y en a 416 en Rust et 760 en Python. Un parcours automatique passe par chaque écran de chaque apparence, environ 6 000 appuis par apparence, et échoue au premier focus perdu ou à la première impasse.
L’architecture
Le cœur est une bibliothèque Rust sans démon. Chaque jeu tourne dans une unité systemd temporaire, et la fin de son cgroup clôt la session. On s’en sert de trois façons, sans IPC : la crate, un module Python (PyO3) et la CLI. Les modules et les sources de jeux sont des exécutables Python qui parlent JSON, et les données restent des fichiers qu’on peut lire, un game.toml par jeu et un sessions.jsonl.
25 sessions en parallèle
Le 10 octobre, j’ai dicté 16 points. Une session les a découpés en 25 tâches, les a lancées en sessions Claude parallèles, chacune dans son worktree git, puis a intégré leurs 255 commits.
La suite
La v0.1.0 est en cours : les mises à jour des jeux hors GOG, un README qui colle au site, et ce que les trois forks ont ajouté.
Plus loin, je veux faire du journal un vrai compagnon. Il écrit déjà une entrée par session à partir de l’enregistrement et des captures. J’aimerais lui parler à la voix en pleine partie, et qu’il réponde avec ce que le journal sait, ou en cherchant sur le web.
Et sur la liste : les trophées au-delà de GOG, des thèmes Wii U, Steam Big Picture et PS3, et ce que demanderaient Windows et macOS.
Liens
J'ai testé tous les launchers Linux, alors j'ai fait le mien
Steam, Heroic, Lutris, Pegasus, Big Picture. Ils ont tous un problème sur Linux, alors j'ai construit Universe, un launcher qui se pilote à la manette, overlay en jeu compris.
Ce qu’il fait, comment l’installer, le changelog.
Premier lancement, manettes, chaque section des réglages, et la référence de la CLI.
Arch (AUR), Fedora (COPR), SteamOS et les autres, Nix.
Sous licence MIT.