Skip to content

Usage Windows Steam Runtime

Alex edited this page Oct 2, 2026 · 2 revisions

Windows Steam runtime

Part of the Usage reference. · ← Previous: Proton & Wine runtimes · Next: Luxtorpeda native-engine plugin (Linux only) →

Some Windows games require a live Steam client for their Steamworks/DRM handshake. Aurelia can host a self-contained master Windows Steam prefix (a Wine prefix with Steam installed inside it) and start that Steam in the background purely to answer the in-prefix handshake, while the game itself is still launched directly by Aurelia (never through a steam://run / -applaunch handoff). It is the no-host-Steam path for play --steam: when you launch with --steam and no host Steam client is installed, Aurelia uses this in-Wine runtime for the DRM/Steamworks handshake (subject to the policy below).

New here? See WINDOWS_STEAM_RUNTIME.md for the exact step-by-step setup recipe, machine requirements (Vulkan + a DXVK/vkd3d runner), caveats, and troubleshooting. The rest of this section is the command reference.

Installing/repairing the master prefix needs a Wine/Proton runner configured as steam_runtime_runner: background Steam runs under bare Wine, not through Proton's proton run wrapper.

First-time setup. steam-runtime install fails until a runner is selected. Pick one from your installed runtimes and set it:

aurelia proton list                                 # see installed runtime names
aurelia config steam-runtime-runner GE-Proton9-20   # select one (or `experimental`, or a Wine path)
aurelia config steam-runtime-runner                 # verify — prints the bare Wine it resolves to
aurelia steam-runtime install                       # install Steam into the master prefix
aurelia config game <APP_ID> --steam-runtime on     # opt a game into using it at launch

The runner value is an installed runtime name (as shown by aurelia proton list) or an absolute path to a Wine build. A Proton runtime is accepted: Aurelia uses the bare Wine bundled inside it (files/bin/wine64) automatically, never proton run. If you have no runtime yet, install one first with aurelia proton install <NAME>.

Steam integration policy

A launch that asks for Steam integration (play --steam, forced on for Family-Shared games) resolves where the Steam client comes from from a policy, checked per-game first, then the global default:

Policy Behavior
auto (default) Prefer the host Steam client when one is installed. Otherwise fall back to the in-Wine Steam runtime.
on Always use the in-Wine Steam runtime, even if a host Steam client exists.
off Host Steam only, never the in-Wine runtime.
aurelia config steam-runtime-policy on         # global default: always use the in-Wine runtime
aurelia config steam-runtime-policy            # view the current global default
aurelia config game <APP_ID> --steam-runtime on   # per-game override (wins over the global default)

A game whose own policy is auto inherits the global default. on/off on the game override it. Installing the master prefix does not, by itself, route any game through it. A launch only uses the in-Wine runtime when it both asks for Steam (--steam) and the resolved policy selects it. When the policy selects the in-Wine runtime, Aurelia starts the master Steam client in Wine (on the configured runner) and points the game at it via STEAM_COMPAT_CLIENT_INSTALL_PATH, satisfying the Steamworks/DRM handshake without a host Steam client. --steam-prefix-mode shared|per-game chooses whether the game runs in the master prefix directly (shared, default) or gets its own copy (per-game).

aurelia steam-runtime install [-r] [--json]   # -r = --reinstall
aurelia steam-runtime repair    [--json]
aurelia steam-runtime uninstall [--json]
aurelia steam-runtime login     [--json]   # alias: relogin
aurelia steam-runtime status    [--json]
aurelia config steam-runtime-runner [<NAME>]    # view/set the runner (empty string clears)
aurelia config steam-runtime-policy [auto|on|off]   # view/set the global default policy
Subcommand Description
install Download SteamSetup.exe (if needed), install Steam into the master prefix, then start the Steam client. Waits for the installer and fails loudly if steam.exe does not appear. Requires steam_runtime_runner to be set.
install --reinstall Delete the existing master prefix first, then install a fresh copy. Use when Steam reports a corrupted install ("please reinstall"). Unlike repair, keeps no backup, a true clean slate.
repair Stop Steam, back up the master prefix to a timestamped .bak-<unix-time>, then reinstall, which recovers a corrupted install that passes the file-exists check but crashes on start. Since v0.1.37-2, every backup is kept: earlier backups are never deleted, so clean them up yourself when you no longer need them. Requires steam_runtime_runner.
uninstall Stop any Steam running in the prefix, then remove the whole master prefix (including every .bak-* backup). Reinstall later with steam-runtime install.
login (alias relogin) (Re-)start the in-Wine Steam client interactively so you can sign in again (after the runtime's Steam session expired, or to switch accounts) without reinstalling. Stops any silent background Steam in the prefix first so the login window opens. Requires an installed runtime. See Authentication below.
status Print the resolved master root, Wine prefix, layout kind, whether steam.exe is present, and whether a runtime runner is configured.

Runtime authentication

The in-Wine Steam runtime is a real Windows Steam client and keeps its own login inside the master prefix, separate from aurelia login (which authenticates Aurelia's own CM session for the library/downloads). Aurelia never injects its session into the in-Wine client.

  • First sign-in happens when you run steam-runtime install (the Steam client starts: sign in there, including Steam Guard). The login persists in the master prefix.
  • Later launches (play --steam in in-Wine mode) start that already-signed-in client silently (-silent): no per-launch login.
  • When the session expires (or to switch accounts), run aurelia steam-runtime login. It restarts the client with its UI so you can sign in again. install is not the right command for this (it's for a missing install), and repair is destructive (it reinstalls).

The in-Wine client must be signed into an account that owns/can access the game, or the DRM/Steamworks handshake won't pass. That account is independent of the one aurelia login uses, though it's normally the same person.

aurelia steam-runtime status
aurelia steam-runtime install
aurelia steam-runtime repair

Runner: the Windows-Steam installer and the background Steam client always run under a bare wine, never proton run (that wrapper derives its own prefix and expects the Steam Linux Runtime container). Pointing steam_runtime_runner at a Proton tree such as GE-Proton9-20 is still fine: the wine bundled inside it (files/bin/wine64) is used automatically.

Diagnostics: set AURELIA_DIAGNOSE_INSTALL=1 before install/repair to run the installer with verbose WINEDEBUG and capture its output to a timestamped log under ~/.config/Aurelia/logs/, useful for root-causing setupapi/file-copy failures. It has no effect on normal game launches.

Clone this wiki locally