CLI
Universe: launch, record and remember your games
Usage: universe [OPTIONS] [COMMAND]Options
Section titled “Options”--json: Print raw JSON instead of tables.
Commands
Section titled “Commands”universe ls: Library, last played first (default command)universe play: Launch a game (exact › word › substring or path) and wait for it to end; the game ends with this command (Ctrl-C stops it)universe stop: Stop the running sessionuniverse status: Current session and last sessionsuniverse info: Source, build, installed version, prefix, hours, modulesuniverse search: Search a source’s catalogueuniverse install: Install a title from a sourceuniverse update: The games with an update and how each is updated, then the store updates after asking; or update one gameuniverse rm: Remove a game: parks recordings and journal; –purge trashes the prefixuniverse restore: Bring back a game rm removed: unhides it and moves its recordings back, never over a file already thereuniverse uninstall: Uninstall a game: trashes its install folder, keeps it in the libraryuniverse data: Where a game’s data lives, each part’s size: install, prefix, saves, Universe’s files, recordings, logs; or act on its prefixuniverse storage: Universe’s folders with their size and free space, the games by size, and what no game holds any moreuniverse saves: A game’s saves through ludusavi: where they are, the backups kept, backing up, restoring, exportinguniverse add: Add a game by its file: a program, or a ROM, image or folder for an emulatoruniverse runner: Runners: what starts a game (proton, wine, linux and the emulators), where each was found, their optionsuniverse component: Components: the Proton and Wine builds, emulators and tools, those on the system and those Universe installs and updatesuniverse set: Set game keys: runner=dolphin proton=proton-em options.fullscreen=false capture.cursor=true hidden=trueuniverse launch-keys: The launch keys: whatsetandconfig set launch.*take, with each one’s type, default and scopeuniverse sessions: Sessions of a gameuniverse logs: What a session’s processes wrote: the unit’s journal, the launched command line firstuniverse journal: Journal entries of a gameuniverse recordings: Recordings of a gameuniverse media: Artwork of a game (allrefreshes every game)universe module: Modules and their settingsuniverse source: Sources and their settingsuniverse extension: Extensions: modules, sources and themes that do not ship with Universe, from its index, a URL, an archive or a folderuniverse sources: Sources and their state: login, cached library, install folderuniverse login: Log into a source (prints the URL, then takes the code)universe library: Owned titles of a sourceuniverse scan: Scan installed games of the sources (all by default)universe migrate: Import the Lutris library (report only without –apply)universe discover: What other launchers (Lutris, Steam, Heroic) and the emulators’ own folders hold on this machine, and what can be importeduniverse doctor: Check prerequisites of the core, the enabled modules and sourcesuniverse setup: After an install: put the desktop’s part in place (GNOME’s shell extension), then run doctoruniverse config: Global configuniverse output: Playback outputs; with an id, play through that one: the system default, as the desktop’s own picker sets ituniverse screenshot: Take a screenshot through the module that provides oneuniverse screenshots: The player’s own screenshots, newest first: of one game, or of every gameuniverse achievements: A game’s achievements, as its store last listed themuniverse controller: Controller macros: paddles and spare buttons bound to actionsuniverse network: Wi-Fi through NetworkManager: the networks in range (default), joining, forgettinguniverse bluetooth: Bluetooth through BlueZ: paired and found devices (default), pairing, forgettinguniverse rescan: Reload config, reread the library, add the games under the emulators’ own folders (universe discover lists them)
Games are named by id, whole word, substring or path; an ambiguous name asks on a terminal and fails elsewhere.A game starts through its runner: proton (umu-run), wine, linux, or an emulator (`universe runner ls`); `universe add <file> --runner <id>` adds one.A game runs as the transient unit universe-game-<id>-<session>.service; `universe session-end` closes it when its cgroup empties.
Files: ~/.config/universe/config.toml — paths, launch defaults, enabled modules and sources, [modules.<id>] and [sources.<id>] settings, keys ~/.local/share/universe/games/<id>/ — game.toml, sessions.jsonl, journal/, media/ ~/.config/universe/modules/<id>/, ~/.config/universe/sources/<id>/ — user modules and sources, overriding the shipped ones ~/.local/share/universe/modules/<id>/, ~/.local/share/universe/sources/<id>/ — their data: caches, logins ~/.local/share/universe/saves/<id>/ — a game's save backups, as ludusavi lays them out (paths.saves_root) ~/.local/share/universe/ludusavi/ — the config and manifest of Universe's ludusavi, apart from your own ~/.local/state/universe/current-session.json — the running session ~/.local/state/universe/logs/<id>/<session>/ — Proton's and DXVK's logs of a launch with debug_log on; the game's own output is the journal's (`universe logs`) $XDG_RUNTIME_DIR/universe/controller.lock — held by the one controller watcher (the launcher's, or a session's) $XDG_RUNTIME_DIR/universe/active-pad — the sysfs device of the pad a button was last pressed on: player 1 in the emulators
Environment: UNIVERSE_CONFIG_HOME, UNIVERSE_DATA_HOME, UNIVERSE_STATE_HOME — replace the XDG directories UNIVERSE_MODULES_PATH, UNIVERSE_SOURCES_PATH — extra module and source roots, colon-separated RUST_LOG — tracing filter, warn (and each screenshot's timings) by default
Errors are printed as `universe: <kind>: <message>` on stderr with exit status 1; --json works on every command.