Install
vrOS is distributed on Steam as app 3873610. One purchase covers every platform it supports, and Steam installs the build for the machine you are on. There is no separate download and no installer to run afterwards.
A headset is optional at install time. vrOS starts as a desktop application and attaches to a VR runtime when one is present, so you can install it, open it, and look around before you put anything on your head.
What you need
Section titled “What you need”| Windows | Linux | Steam Frame | |
|---|---|---|---|
| Operating system | Windows 10 version 1903 or later, or Windows 11 | x86-64 desktop Linux, or SteamOS | SteamOS on ARM64 |
| VR runtime | SteamVR | SteamVR, or Monado / WiVRn | In development |
| Overlay path | OpenVR IVROverlay |
OpenVR IVROverlay on SteamVR; OpenXR XR_EXTX_overlay on Monado / WiVRn |
Not settled |
| Window capture | Windows.Graphics.Capture | PipeWire through xdg-desktop-portal |
Not settled |
| Graphics | Direct3D 11 | Vulkan | Vulkan |
| Status | Supported | Supported | In development |
Windows
Section titled “Windows”Windows 10 version 1903 is the floor because window capture uses Windows.Graphics.Capture, which arrived in that release. Windows 11 is supported throughout.
SteamVR is the VR runtime on Windows. SteamVR implements no OpenXR overlay
extension, so overlays go through OpenVR IVROverlay; vrOS resolves
openvr_api.dll from your SteamVR installation rather than shipping its own.
Install SteamVR through Steam if you do not already have it. You do not need to
start it first — see First run.
Two VR stacks exist on desktop Linux and each is missing the other’s overlay API, so vrOS ships both backends and uses whichever runtime you are running:
- SteamVR for Linux — overlays through OpenVR
IVROverlay. - Monado / WiVRn (including Envision) — overlays through OpenXR
XR_EXTX_overlay, which Monado implements. There is no OpenVR on this stack at all.
Capture goes through PipeWire and xdg-desktop-portal, which means your desktop
environment shows its own picker when vrOS asks for a window or a display. That
is deliberate: the portal picker is the grant. X11 and XComposite are used only
where a session needs them.
The tray icon uses StatusNotifierItem. KDE shows it as-is. GNOME needs a shell extension for tray icons before it will appear.
Steam Frame
Section titled “Steam Frame”There are two ways to use vrOS with a Steam Frame, and only one of them is ready.
Streaming from your PC works today. The Frame’s primary mode is wireless PCVR streaming from a Windows or Linux PC. In that mode vrOS is running on the PC, inside SteamVR, exactly as it does for any other PCVR headset. Nothing Frame-specific is involved and no separate build is needed.
Running natively on the Frame is in development. Two questions stay open until they are answered on the device: which overlay path the on-device runtime actually exposes, and what can be captured there. Until both are settled, native Frame is listed as in development and not as supported.
What Steam installs
Section titled “What Steam installs”The depot is a single executable. The action manifest, the four controller binding files, and the SteamVR application manifest are embedded in it and written into vrOS’s data directory the first time it attaches to a runtime, so there is nothing to register by hand and nothing to copy into SteamVR.
The playtest branch
Section titled “The playtest branch”A separate Steam app, 3893370, carries the opt-in playtest. Builds land there before they reach the main app.
One thing to know if you use both: SteamVR files controller bindings under the Steam app that launched the process. Bindings you customize on the playtest build are stored against the playtest app, not against the main one, so a customization made in the playtest does not follow you to the release build.
First run covers what happens the first time you open it, and what to do if the Dash does not show up.