Install
vrOS is distributed on Steam as app 3873610. Steam installs it like any other app: there is no separate download and no installer to run afterwards. vrOS 2.0.0 ships for Windows; Linux and native Steam Frame builds are in development and are not on Steam yet.
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 | In development | 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.
Linux support is in development. vrOS 2.0.0 on Steam is a Windows build, and there is no Linux build to install yet; this section describes what the Linux build is being built to do.
Two VR stacks exist on desktop Linux and each is missing the other’s overlay API, so vrOS has 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 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”Two things: vros.exe, and the vrOS SteamVR driver in a driver_vros folder
beside it, plus a build stamp and the third-party license notices. The action
manifest, the five controller binding files, and the SteamVR application manifest
are embedded in vros.exe 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 driver is only registered with SteamVR when you choose to set it up — see First run.
vrOS 1 and the legacy branch
Section titled “vrOS 1 and the legacy branch”vrOS 2 replaced vrOS 1 on Steam. vrOS 1 stays available for now on a beta branch:
in Steam, right-click vrOS → Properties → Betas and choose legacy. Choose “None”
to come back to vrOS 2.
The two versions keep their settings apart — vrOS 1 in %LOCALAPPDATA%\vrOS,
vrOS 2 in %APPDATA%\vrOS — so switching back and forth is safe. vrOS 2 does not
import vrOS 1’s settings, layouts or sign-ins, so it starts fresh. Both versions
file controller bindings under the same Steam app: if you customized vrOS 1’s
bindings, open vrOS in SteamVR’s Controller Bindings, switch to the default
binding, and customize from there. Release notes list the vrOS 1
features that are not in 2.0.0.
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.