Your Steam Frame, managed from your desk.
-See what the headset sees, install games and Android apps, move files and text across, and keep an eye on battery and status. All over SSH, with nothing to install on the Frame.
+See what the headset sees, install games and Android apps, move files and text across, and keep an eye on battery and status. Install Frame Control on your computer, then connect to your headset over SSH. This website provides downloads and instructions; it does not control the headset in your browser.
Also in your pocket
-The same features on iPhone and iPad, served from the Frame itself, so there's nothing to run on a computer. Build it from the repo in Xcode.
+The same features on iPhone and iPad, served from the Frame itself, so there's nothing to run on a computer. There is no App Store, TestFlight or iOS download in the current release. Building it requires a Mac, Xcode and your own signing team. iPhone build and pairing instructions.
@@ -186,23 +186,24 @@
One password, typed once
-Everything else happens on your computer.
+Connect your computer to the Frame
+First install and open the desktop app. Keep the headset awake, on the same trusted network as your computer. Guest Wi-Fi or client isolation can block the connection.
Turn on Developer Mode
-On the Frame: Steam Settings → System → Enable Developer Mode, then Set User Password in the Developer section.
+Prepare the headset
+On the Frame: Steam Settings → System → Enable Developer Mode, then Developer → Set User Password. Choose a password that isn't easy to guess; it also protects remote desktop and sudo.
Set up the connection
-Open Frame Control and choose Set Up Connection. It finds the headset, makes an SSH key, and asks for that password once.
+Run connection setup
+In the desktop app, choose Set Up Connection…. If you skipped the first prompt, use Frame → Set Up Connection…. A terminal opens. If discovery fails, find the Frame's IP in Quick Settings or Steam Settings → Internet. Windows/Linux setup prompts for it. On macOS, return to the app → Devices & connection → + Add a headset…, use SSH alias frame for the default headset, enter the IP in Address and choose Set Up….
That's it
-The app reaches the headset whenever it's awake and on the same network. For anywhere else, use Tailscale.
+Pair, with a password fallback
+Setup tries Valve's pairing first: open Developer → Pair new host in the headset and approve only your request. If it fails or times out, enter the Developer Mode password in the computer's terminal (typing may be invisible), then press Enter.
The devkit service and pairing-mode step were checked on a Frame; approval and key installation through that flow remain unverified. Pairing details. After setup succeeds, return to the app; future connections use SSH keys. Still offline? Check Developer Mode, the IP and network isolation, then rerun setup. For use away from home, see Tailscale.
Get Frame Control
-Free, with Python and adb built in. Version . Release notes
+Choose your computer’s OS and processor, not the headset’s. Python is bundled; Linux needs ssh, and arm64 Linux also needs your distribution’s adb for Android apps. Version . Release notes
macOS
Your systemmacOS
OS detectedCheck Apple menu → About This Mac for your chip. Open the DMG, drag Frame Control to Applications, then open it there. Allow local network access and Terminal control when asked.
+The app isn't notarized. macOS opening instructions.
Windows
Your systemWindows
OS detectedCheck Settings → System → About → System type. No native Windows ARM build is published. Run the installer, then open Frame Control from Start. The OpenSSH Client optional feature must be installed (it normally is). For portable use, extract the entire ZIP and run Frame Control.exe.
The installer isn't code-signed. SmartScreen instructions.
Linux
Your systemLinux
OS detectedssh
+ Run uname -m: x86_64 means x64; aarch64 means arm64. Install the matching .deb on Debian/Ubuntu and open Frame Control from your applications menu, or use AppImage on other distributions.
AppImage permissions and FUSE help. On arm64 Debian/Ubuntu, install adb with sudo apt install adb for Android apps.
Good questions
macOS says the app is damaged or can't be checked
-The app isn't notarized, because there's no paid Apple developer account behind it. Drag it to Applications, then clear the download quarantine once in Terminal:
+The app isn't notarized, because there's no paid Apple developer account behind it. Only for a download you trust from the releases linked above: drag it to Applications, then clear the download quarantine once in Terminal:
xattr -dr com.apple.quarantine "/Applications/Frame Control.app"
Windows SmartScreen says it protected my PC
The installer isn't code-signed. Choose More info → Run anyway, or use the portable .zip: unzip it anywhere and run Frame Control.exe.
How do I open the Linux AppImage?
+In a terminal in your download folder, use the exact filename for your architecture. For x64:
+chmod +x Frame-Control-linux-x86_64.AppImage
+./Frame-Control-linux-x86_64.AppImage
+ If FUSE is missing, install libfuse2 (Ubuntu 24.04+: libfuse2t64), or run the same AppImage with --appimage-extract-and-run. Install your distribution’s OpenSSH client if ssh is missing.
What does it change on my headset?
Only what you click. Installs go to your user account on the Frame, and nothing needs sudo except the power buttons. On your computer it adds a Host frame entry to ~/.ssh/config and two SSH keys.
-
+