STREAM FRAME BY BOXTREE
Support & setup
Stream Frame brings video from your Steam Frame to macOS, Windows, Linux, Android, iPhone, and iPad. The native Linux app can also run directly on your Steam Frame to preview and record without another device. Need help? Email support@boxtree.gg with your device model, app version, and a description of the issue. Never send SSH passwords or private keys.
Windows installation and updates
Windows 10 22H2 (build 19045) or later, including Windows 11, is required. The experimental virtual webcam feature requires Windows 11 and is hidden on Windows 10. Choose the standard Windows download for Intel or AMD PCs, or the ARM build for Windows on ARM. Run the installer; the verified publisher is Boxtree, Inc. In Settings, use Check for updates or enable automatic checks. Finish streaming, recording, and transfers before installing an update. Windows N editions also need the Media Feature Pack. For SSH connections, enable the Windows OpenSSH Client optional feature if it is missing.
For network streaming, allow Stream Frame through Windows Firewall on your trusted private network. The headset must be able to send UDP video back to your PC on the port shown in Settings (8090 by default). When running Windows in a virtual machine, use bridged networking so the headset can reach it.
Linux installation and updates
The native Linux app supports Intel/AMD and ARM64 computers, including Steam Frame. Follow the Linux / Steam Frame install guide to add the Stream Frame Flatpak source in Discover, then install Stream Frame. Keep Flathub enabled so Discover can install the shared KDE runtime. If the app has not appeared in search, open it directly in Discover. Discover also handles updates.
From a Mac, Windows, or Linux computer already connected to the headset, choose Install App on Steam Frame to install the headset app over SSH or USB. On Linux, the action is in the Help menu. The app confirms when installation is ready or shows an error if it fails. Open the installed app from the headset’s KDE Launcher.
Run directly on Steam Frame
Launch the native Linux app on the headset and choose This Steam Frame. On a fresh installation, the app detects the headset and selects this mode automatically, with live preview enabled. No SSH password, network connection to another device, or second computer is needed for local capture.
Press Record, then Stop Recording to save an MP4 in /home/steamos/Videos/StreamFrame. Enable Recording only before capture if you do not need a preview; screenshots are unavailable in that mode. Audio recording is off by default. Your saved settings take precedence over the defaults.
On another Linux computer, choose Network (SSH) or USB (ADB) instead and use the connection steps below. This Steam Frame requires the headset’s capture device; it is not a general Linux desktop recorder.
Video tutorial and Tailscale
Follow the Getting Started tutorial for desktop, mobile, and headset recording. For different networks or Wi-Fi that blocks local mDNS, use the Tailscale setup guide to connect with a MagicDNS name such as frame.
Connect from another device over the network
These steps apply to Network (SSH) connections from a computer or phone. Direct recording with the Linux app on the headset does not require SSH or a second device.
- Connect the headset and viewing device to the same local network.
- Enable Developer Mode and SSH on your Steam Frame and set an SSH password.
- Ensure ffmpeg with libx264 is installed on the headset and can read /dev/video99.
- Enter
frame.local, the headset’s local IPv4 address, or a reachable DNS name, then select Stream. On Android, iPhone, and iPad, the default SSH username is steamos; change it in Settings if needed. - Verify the SSH fingerprint against your headset before trusting a new connection. Allow Local Network access when prompted.
See Valve’s developer documentation for headset setup. The iOS and Android apps connect directly to the headset; a Mac or PC is not required.
USB on macOS, Windows, and Linux
Install Android SDK Platform-Tools, enable and authorize USB debugging on the headset, and connect it with a data-capable USB cable. The headset must appear as frame in adb devices. In Stream Frame, select USB (ADB), then Stream. Video and selected headset audio travel through the USB cable; no Wi-Fi or SSH password is required. End stops the remote ffmpeg process and closes the USB session.
On Mac, Stream Frame looks for adb in the standard Homebrew or Android Studio SDK locations. On Windows and Linux, make Android Platform-Tools available to the app; confirm that adb devices lists the authorized headset before connecting. Network (SSH) remains available with frame.local, an IPv4 address, or a DNS alias. VPN aliases require working DNS and a route for return UDP video; a working SSH login alone does not guarantee that route.
Mac sidebar and full screen
Audio and video controls are in the recording settings sidebar. Use the sidebar button in the upper-right corner to show or hide it. It opens by default and collapses when streaming starts. Full-screen streaming hides settings and connection controls, keeping Record, Screenshot, and Exit Full Screen available. Press Escape to return to windowed mode.
Video quality
Before connecting, expand Video settings. Choose Native, 720p, or 480p; the lower resolutions preserve aspect ratio and reduce bandwidth and recording size. Choose 15, 20 (default), or 30 fps. Higher frame rates use more headset power and bandwidth. Encoder presets range from ultrafast to medium: slower presets compress better but can add latency or dropped frames. CRF ranges from 18 to 35, default 23. Lower values preserve more detail at higher stream bandwidth. Settings are remembered. They affect the live stream and saved recordings; end the stream before changing them.
Record and capture
Select Record during a stream to start an MP4 recording, then stop it when finished. Select Screenshot to save the current video frame as a PNG. On iPhone and iPad, open Captures to preview, share, export with Save to Files, or delete a capture. Files are also available under On My iPhone/iPad → Stream Frame. On Mac or PC, choose a save location when prompted.
Trust this Mac
In the Mac password dialog, optionally check Trust this Machine. After a successful login, Stream Frame adds its dedicated public key to the connected headset account’s ~/.ssh/authorized_keys, preserving existing entries. Future connections and recording downloads use that key. Your password is never saved. The private key stays on your Mac at ~/Library/Application Support/Stream Frame/ssh/id_ed25519, protected by account-only file permissions. If enrollment fails, the app reports it and lets the current connection continue. To revoke access, remove the matching StreamFrame key line from the headset’s authorized_keys.
Recording on the headset from another device
When connecting from a computer or phone, Record on headset is on by default. The same headset encoder saves an MP4 before sending the live preview over the network. Starting or stopping a recording briefly restarts the encoder, so the preview can pause. When finished, the app downloads the original over encrypted SSH/SFTP, or authorized USB on macOS, Windows, or Linux, and verifies its checksum. Screenshots still capture the displayed frame.
The headset needs ffmpeg, ffprobe, available storage, and a writable /home/steamos/Videos/StreamFrame folder. Network downloads also require the SSH server’s SFTP subsystem on mobile. Completed originals remain on the headset after downloading. A failed transfer shows the headset file path; in mobile Captures, reconnect and choose Download. Deleting a local copy does not remove its headset original. Delete from headset requires confirmation. Mac offers Retry headset download; you can also retrieve the displayed path with SCP. Files ending in .partial may still be finalizing or require manual recovery after an abrupt power loss.
Keep the app open while a download completes. If your device suspends it, reconnect from Captures and retry. Turn Record on headset off before streaming to use device-side recording instead. The choice is remembered between launches.
Recording without a preview
Turn on Recording only before connecting, choose Connect, then press Record. Stream Frame starts the headset encoder only while recording and writes directly to an MP4 without transmitting preview video or audio. The preview area shows recording status instead of video; screenshots are disabled. Stop recording to save the original and, when connected from another device, download it. Choose End to finish and disconnect. The option is off by default and saved between launches. It always records on the headset and uses your existing audio and video settings. Keep the app connected while recording and downloading. Stop the recording and let the transfer finish before closing the app. The sample demo still uses local playback and recording.
Audio recording
Audio recording defaults to off on every platform: macOS, Windows, Linux (including directly on Steam Frame), iOS, and Android. To include sound, enable Record audio or Record headset audio before starting a stream or recording. Existing saved choices are preserved, so an installation where you previously enabled audio may still have it on. Open Audio settings to toggle Game audio and Headset microphone independently and set the balance from all game to all mic. The default is 35% game / 65% mic. A single enabled source records at full volume. Your choices are remembered after relaunch; end the stream before changing them.
Audio is captured on the Steam Frame, not from the viewing computer or phone microphone. It requires ffmpeg with PulseAudio input and AAC encoding, and the headset’s game-monitor and microphone sources. If audio sources are unavailable, turn Record audio off and reconnect. Live preview stays silent; play the saved MP4 to hear audio.
Audio quality on Mac
Open Audio settings → Audio quality. Low is the default and uses 24 kHz mono audio at 64 kbps with faster AAC encoding. Balanced uses 48 kHz stereo at 128 kbps with faster encoding. High uses 48 kHz stereo at 192 kbps. The setting is remembered and applies to both recording locations. If you still see dropped frames, compare with Record audio off and see the recording FAQ.
Use the stream as a webcam
On macOS, Windows 11, or Linux, enable Surface Virtual Webcam in Video settings, then choose Stream Frame Camera in Discord, OBS, or another video app. This experimental feature is off each time you launch Stream Frame and shares video only. macOS needs Camera Extension approval; Linux needs your distribution’s v4l2loopback module and may request administrator setup. Follow the virtual webcam tutorial for setup and troubleshooting.
Try the mobile apps without hardware
In Stream Frame for iOS or Android, open Settings → Try sample stream. The clearly labeled, video-only DEMO plays a bundled sample through the actual video decoder. You can try recording, screenshots, Captures, and full-screen viewing without a network connection or headset. Select End to finish.
On Android, open Captures to preview MP4 recordings and PNG screenshots, share them with another app, save them through the system file picker, or delete them. Captures remain in private app storage until exported. Android 10 or later is required.
If the network connection fails
- Check the IP address, SSH username and password, and that the headset is awake.
- Check Local Network permission in your iPhone/iPad’s system settings.
- Guest Wi-Fi and client isolation can prevent devices from reaching one another. Use a network that permits device-to-device traffic.
- The headset must accept SSH on port 22, and the receiving device must be reachable on UDP port 8090.
- A changed fingerprint is deliberately blocked. Verify the new identity on the headset before using Forget trusted identity in Settings.
If video does not arrive
Confirm that ffmpeg is available on the headset and that /dev/video99 can be read. For Network (SSH), check that the network allows return UDP traffic. For USB, confirm the headset is authorized in adb devices. For local capture, confirm This Steam Frame is selected. Turn off Recording only if you want a preview. Live preview is silent. Recordings can include selected headset game and microphone audio when audio recording is enabled. It does not control the headset’s games. To connect across networks, configure Tailscale on both devices.
Ending a session
Select End to stop capture and close the active connection. Stop recording and wait for saving or downloads to finish before closing the app or powering off the headset. When running directly on Steam Frame, the saved file stays on the headset; there is no remote download.
Privacy and licensing
Read the Privacy Policy and terms and licenses. Stream Frame is an independent Boxtree utility, not an official Valve project.