nailuj05 / framemate
git clone https://github.com/nailuj05/framemate.git
v0.3.0 · 11d ago
Steam Frame Companion App
+0
stars, 24h · #38,829
+~0
stars, 7 days · #43,965
+116
stars, 30 days · #6,229
116
★ total
6
forks · 0 open issues
Star history (as recorded here)
LanguageRust
LicenseGPL-3.0
Created2026-10-02 (21d ago)
Last push1d ago
Watchers3
OwnerUser
Links
README excerpt
FrameMate A companion app for the Steam Frame : mirror the headset to your phone, receive phone notifications in VR, keep an eye on battery, controllers, downloads and what's playing. Demo Video ## At a glance ## Mirroring FrameMate mirrors what the headset shows to your phone. Show your friends what you're doing in VR, guide someone through their first session, or just check what's on screen. The picture is the actual view in the headset, passthrough included. Encoded using hardware acceleration to keep the load low. ## Notifications in VR Your phone's notifications show up in the headset as Steam notifications, so you don't have to take the headset off to check your phone. It is a opt-in feature: turn it on with the bell in the app's top bar. You can select which apps notifications you want in there. ## Features - **Headset battery** – the same percentage Steam shows in the headset, charging state, time left or time to full, and current power draw. - **Controller batteries** – both controllers, including while they sleep (the last known level is remembered across restarts). - **Now playing** – the running game with its Steam artwork. - **Downloads** – the Frame's download queue with progress, speed and time left, plus recently finished updates. Downloads of your other PCs (Steam Remote Downloads) are left out. - **Mirroring** – see above. - **Phone notifications in VR** – your phone's notifications show up in the headset as normal Steam toasts. It's opt-in: off by default, you turn it on with the bell in the app's top bar. Apps you don't want in there can be switched off in the settings. Turn it off again just as quickly, e.g. when someone else is wearing the headset. Nothing gets stored, it only goes from your phone to your Frame. - **System** – performance profile, CPU/GPU settings, network throughput, SteamOS and Steam client versions, battery temperature and health. - **Encrypted** – the phone talks to the Frame over TLS, pinned to the Frame's own key from the pairing code. Implementation inspired by KDEConnect - **Lightweight** – the agent on the Frame is a single static binary (~6.5 MB, a few MB of RAM) that idles at practically zero CPU. ## Installation You need a Steam Frame and an Android phone on the same network. ### 1. Agent on the Steam Frame Open a terminal on the Frame via SSH (recommended), or Desktop Mode → Konsole (see here), and run: [code] That installs the Flatpak, registers the user service, runs a self check and prints the pairing QR code. Re-run the same command to update. If you'd rather not pipe a script into a shell, read it first; it only runs the manual commands below. Or do it by hand [code] - `flatpak install` pulls the Freedesktop runtime from Flathub if it isn't installed yet (about 270 MB, once). - `install-service` registers a user service, so the agent starts with every boot (in Game Mode too) and restarts it right away, then runs a self check. In Desktop Mode it can't start the agent ri