Skip to content

CLI

Universe: launch, record and remember your games

Usage: universe [OPTIONS] [COMMAND]
  • --json: Print raw JSON instead of tables.
  • 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 session
  • universe status: Current session and last sessions
  • universe info: Source, build, installed version, prefix, hours, modules
  • universe search: Search a source’s catalogue
  • universe install: Install a title from a source
  • universe update: The games with an update and how each is updated, then the store updates after asking; or update one game
  • universe rm: Remove a game: parks recordings and journal; –purge trashes the prefix
  • universe restore: Bring back a game rm removed: unhides it and moves its recordings back, never over a file already there
  • universe uninstall: Uninstall a game: trashes its install folder, keeps it in the library
  • universe data: Where a game’s data lives, each part’s size: install, prefix, saves, Universe’s files, recordings, logs; or act on its prefix
  • universe storage: Universe’s folders with their size and free space, the games by size, and what no game holds any more
  • universe saves: A game’s saves through ludusavi: where they are, the backups kept, backing up, restoring, exporting
  • universe add: Add a game by its file: a program, or a ROM, image or folder for an emulator
  • universe runner: Runners: what starts a game (proton, wine, linux and the emulators), where each was found, their options
  • universe component: Components: the Proton and Wine builds, emulators and tools, those on the system and those Universe installs and updates
  • universe set: Set game keys: runner=dolphin proton=proton-em options.fullscreen=false capture.cursor=true hidden=true
  • universe launch-keys: The launch keys: what set and config set launch.* take, with each one’s type, default and scope
  • universe sessions: Sessions of a game
  • universe logs: What a session’s processes wrote: the unit’s journal, the launched command line first
  • universe journal: Journal entries of a game
  • universe recordings: Recordings of a game
  • universe media: Artwork of a game (all refreshes every game)
  • universe module: Modules and their settings
  • universe source: Sources and their settings
  • universe extension: Extensions: modules, sources and themes that do not ship with Universe, from its index, a URL, an archive or a folder
  • universe sources: Sources and their state: login, cached library, install folder
  • universe login: Log into a source (prints the URL, then takes the code)
  • universe library: Owned titles of a source
  • universe 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 imported
  • universe doctor: Check prerequisites of the core, the enabled modules and sources
  • universe setup: After an install: put the desktop’s part in place (GNOME’s shell extension), then run doctor
  • universe config: Global config
  • universe output: Playback outputs; with an id, play through that one: the system default, as the desktop’s own picker sets it
  • universe screenshot: Take a screenshot through the module that provides one
  • universe screenshots: The player’s own screenshots, newest first: of one game, or of every game
  • universe achievements: A game’s achievements, as its store last listed them
  • universe controller: Controller macros: paddles and spare buttons bound to actions
  • universe network: Wi-Fi through NetworkManager: the networks in range (default), joining, forgetting
  • universe bluetooth: Bluetooth through BlueZ: paired and found devices (default), pairing, forgetting
  • universe 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.