Frame Control sends anonymous usage statistics: that it was installed and opened, its version,
your operating system, your country (from the computer's time zone setting), which tabs you use, whether installs on the Frame worked, and how many headsets you use
(a one-way hash of each headset's machine ID, the same on every computer, so they're counted once). Never file names, paths,
addresses or anything you've typed, and it isn't linked to you. You can also share whether Android apps
worked and the details of errors, which helps fix problems faster.
Can't reach the Frame
Retrying every few seconds. Everything fills in when it answers.
Your Frame, at a glance
Control Center
Everything you can see, change and configure. Find a setting, check your headset, or pick up where you left off.
Steam Frame
Connect your Frame to read live metrics
BatteryUnavailableConnect to read charge and power
Storage freeUnavailableUser storage unavailable
Memory usedUnavailableMemory sensor unavailable
Compositor FPSUnavailableCompositor FPS · not game FPS
System information unavailable
Wi-Fi network
Unavailable
Wi-Fi signal
Unavailable
IP address
Unavailable
Uptime
Unavailable
Battery power · signed
Unavailable
Charger
Unavailable
Battery temperature
Unavailable
Battery health
Unavailable
Battery estimate
Unavailable
Positive battery watts mean charging; negative means discharge. Estimates are reported by the battery and may be unavailable.
No matching controls
Try a different word or browse all categories.
Press Capture to grab what the Frame is showing, or Live to keep it updating.
Live
The headset is showing a blank frame. It's probably asleep or not being worn. Put it on and capture again.
Device
—
Storage free
—
Memory used
—
Temperature
—
Wi-Fi
—
Uptime
—
SteamOS
—
—
VR comfort and performance
Waiting for the Frame
Compositor FPS measures SteamVR output, not game FPS. Application FPS is unavailable when no app supplies timing. GPU time is render time, not GPU utilisation. Temperature is the hottest readable sensor.
The HUD is ours and uses the Frame’s built-in tools. Place its panel with SteamVR’s Float in World or controller docking controls. It updates every two seconds until closed.
Playspace and seated comfort
Tracking-origin controls are not available yet: reversible changes still need an idle-headset test. Use SteamVR’s recenter and room setup for now. A seated origin only affects apps that use seated tracking; it cannot force a game into seated mode.
For motion comfort, choose snap-turn, teleport movement and a movement vignette in each game’s settings. SteamVR has no verified universal snap-turn or locomotion-vignette switch.
Optional VR software
None of Frame Control’s features needs these apps. Compatibility reports and account ownership are separate. Paid apps can only be installed here when already owned.
Load this optional list to check the Frame account.
Family and comfort
Share this screen with people in the room. Casting shows everything the wearer sees, including private content.
Checking session…
A one-minute warning, then Steam Home. Games stay running: save and pause first. Keep this app open and connected for notifications.
How sessions and alerts work
This is a reminder, not a parental lock. The timer continues on the Frame if you disconnect; a headset restart cancels it. Cancel before changing settings. Set break/check-in to 0 to turn them off.
Battery, heat and check-in alerts appear on connected companions during a session. Headset warnings and break reminders continue without a companion. iOS may suspend phone notifications in the background. Breaks and check-ins count SteamVR activity, not confirmed wear time.
Keyboard and trackpad
Types and points in apps on the Frame, such as Chromium or the desktop's Linux apps; Steam's own VR menus
don't take it. It works through KDE Connect, which comes with Frame Control: the first time, it copies Valve's build
for the Frame (3.6 MB, 18 MB unpacked) into your home folder there and pairs with it. No internet needed, and nothing
else to install. Licences
Screenshots
Loading…
Screenshots you take in the headset with Steam's screenshot shortcut. New ones appear on their own. Click one to open it in the viewer, Copy puts it on the clipboard, and Save copies it to ~/Pictures/SteamFrame. Right-click for more.
Installed
Loading…
Sideloaded titles
Loading…
Your own Linux or Windows builds, added to the Steam library as Devkit Games. Drop a game's
.zip, folder or .exe anywhere in this window.
Get games
Loading your library…
Install downloads a game you own straight to the Frame and accepts Steam's default options;
EULAs and license prompts still need answering in the headset. To buy, open the store page in your browser
(signed in to Steam) or in the headset, then Refresh and install. Ratings are Valve's Steam Frame
compatibility categories.
A little more possibility
Find your next favorite.
Great games and useful apps. All in one place, all free to explore.
On the Frame
Loading…
Each app runs in its own Lepton instance and keeps its data. It's in the Steam
library under its own name and opens in its own panel. Test launches it and records
whether it stays up; Report records how it worked for you.
Install queue
Games from the store, your Quest and your Meta library install one after another.
Remove takes a game out before it starts.
Import from my Quest
Plug your Quest into this computer by USB, put it on, then Look for my Quest.
Copies games you own from your own Quest (developer mode on) to the Frame. A game with
OBB data takes two imports: the first installs it; start it from the Steam library, then import again to
copy its data in. Frame Control never starts the game itself. Games that
use Meta's licence check install with a warning: on the Frame that check can't reach Meta, so they may quit,
hang, or run without online features. Frame Control won't remove that check. How it works
My Meta library
Experimental
Off. Nothing is sent to Meta until you connect.
Experimental. This uses Meta's undocumented internal API with your own Meta
access token. It may stop working whenever Meta changes things, and using it may be against Meta's terms; your
account is your responsibility. It only lists and downloads games your account owns, installs them as they are,
and never removes a licence check.
or paste your token:
How to get your token.
Sign in with Meta (desktop app) opens Meta's login page in its own Frame Control window and takes the token
from there; it never reads your browser.
Frame Control checks it with Meta, then keeps it in a private file on this computer (never on the Frame, and
never in reports). Disconnect deletes it.
Install downloads the game from Meta and installs it like Import from my Quest; a game with OBB
data takes a second Install while it is open. Install and test also starts it, adds its data, watches it for
about 30 seconds and records whether it ran; Test again does just the test. Results go to the compatibility
reports, shared only if you share compatibility results. How it works
Android display
Lepton
Open an Android app in the headset, then Refresh, to change its
resolution, UI scale and text size here.
Resolution
—
UI scale
—
Text size
—
Resolution
UI scale
Text size
Changes apply at once, and the app may redraw or restart its screen. They may not survive the app
relaunching (not yet verified). Sharp gives Android more pixels in the same panel, which should make text crisper.
Recent reports
Loading…
Reports change the verdicts in the catalogue. Any APK can be
reported, including ones not on F-Droid.
Find apps
Loading the catalogue…
Verdicts come from checks of each APK against what Lepton supports (Android 11,
64-bit ARM, no clipboard or Play Services) and from reports made on a Frame. See docs/apks.md.
Assistant and AI agents
Use your own model endpoint, or review a proposed MCP action. Nothing is sent to a model until you opt in.
Drop files here, or click to chooseTap to choose files
Files land in ~/Downloads. .apk files install as their own Android app;
a game's .zip, folder or .exe becomes a title in the Steam library.
You can also drop files anywhere in this window.
Clipboard
Clipboard needs the desktop panel open in the headset.
Media in the headset
Preview
Play your movies and stereo photos with Frame Control's own player.
Choose a file to begin.
H.264/H.265 video; SBS/OU PNG or JPEG photos. Screens follow your head.
Small .splat files show a stationary stereo preview (up to 20,000 Gaussians).
Native HEIC/MPO photos, large splat scenes, seeking and subtitles aren't supported yet.
Stop works from here; playback also ends after four hours.
Linux apps
Flatpak
Loading…
Library artwork settings
SteamGridDB supplies community artwork for sideloaded games. Without a key, Frame Control uses source images and creates the remaining art.
Choose a panel to show it in SteamVR. The headset switcher stays available from Steam's dashboard.
Saved spatial layouts are not available yet.
Mac in the headset
Windows
Loading…
Each window or screen becomes its own panel in the headset. Place it with the SteamVR dashboard
(Float in World, Move, Size). Point and click with the laser, scroll with the thumbstick, and type on the Mac's keyboard.
Privacy & updates
Contact email (optional)
Sent privately to the Frame Control maintainer, never shared or published.
Updates are occasional release notices; follow-up questions are mainly about problem reports you send.
Frame Control talks to one headset at a time. Each can be reached at several addresses;
it tries them all at once and uses the best one that answers on the network you're on.
This computer's network
Checking…
Networks are told apart by their router (its IP and hardware address), so this works on wired
networks and when your computer won't share the Wi-Fi name.
Pick a headset.
Drop to send to the FrameFiles go to ~/Downloads; .apk files install as Android apps;
a game's .zip, folder or .exe becomes a Steam library title.