Run your gaming PC from the couch.
Couchside puts a remote and a controller for your living-room Linux gaming PC on your phone, with a live dashboard of the box beside them. When the TV goes black, your phone is the screen: see whether the box is alive, read the logs, restart the display, or pick up a virtual controller. None of it leaves your Wi-Fi.
steamdeck ● online os SteamOS 3.6 service 2.9.117 tls pinned mode Game cpu 47.0°C batt 100% charging mem 6.1 / 15.6 GB /home 118 / 512 GB display 1920×1080 @ 60 Hz · HDMI · docked audio HDMI uptime 9h 12m
Free for a week, then a one-time $7.99 unlock.
one payment · no subscription · no accounts · no ads · or build it yourself
● LIVE the real app, running in your browser against a mocked box
app 2.9.60 · web build · nothing here talks to a real machine
Settle in. Take control.
An easier first setup, clearer wake progress, and lighting that follows your timing.
Feel at home from the start
A welcome guide helps you connect your first box and discover optional integrations. Live vitals and box settings now share one place.
See your box coming back
Wake Box shows progress and confirms reconnection, with better Ethernet detection and faster relay handling on supported networks.
Make it feel like yours
Smoother optional animations, swipe navigation, and custom lighting sequences with more accurate timing and real strobe effects.
Install the service on the box.
One command. It installs a small stdlib-only Python service with no dependencies, prints a PIN and a QR, and stays running. Re-run it any time; it keeps your token and pairings.
Linux
$ curl -fsSL https://couchside.tv/install.sh | bashRead the script first → New Steam Deck? Run passwd once in Desktop Mode so the installer can ask for permission. With Decky Loader installed, the same command adds a Couchside panel to the Quick Access Menu.
Windows 10 / 11 beta
> irm https://couchside.tv/install.ps1 | iexPowerShell; it asks for admin via UAC. Read the script first → Linux came first and is the more polished of the two; the Windows service is newer, so file anything you hit. Unprivileged service, fixed allowlist, no root daemon.
Scan for your box, type the PIN
Open Couchside and tap Scan for boxes. The box shows a short PIN on its own screen; type it in and you are paired. No IP addresses or tokens to copy. The QR the installer prints works too.
Stay on the couch
Watch the vitals, restart a wedged display, tail the logs, or flip to the controller. You never have to go find a keyboard again.
Extra powers stay off by default
couchside allow-system-updates on, allow-updates, allow-launchers. Each is enabled only on the box, never from the phone, and each grants one fixed root-owned wrapper rather than a blank sudo. Details in the README →
What it does.
Vitals, rescue and input for the machine under the TV. The parts you reach for from the couch, one line each.
| Capability | Detail | Where |
|---|---|---|
| Live dashboard | CPU temperature (Linux; on Windows it depends on the motherboard), load, memory, per-disk usage, uptime, every GPU, the Display / Audio signal actually going to the TV, and the health of every service you watch. Refreshed every few seconds. | linux · windows |
| Rescue actions | Restart the display session (the wedged gamescope black screen), reboot, power off. Grouped by danger, double confirm on the destructive ones. | linux · windows |
| Desktop ⇄ Game Mode | One tap either way, no keyboard or mouse. Optionally hold the Guide button on a controller to trigger the handoff without the phone. | steamos · bazzite |
| Virtual controller | A standard Xbox pad the box cannot tell from plastic: sticks, D-pad, ABXY, triggers, haptics. Landscape full-screen mode, a one-handed MOVE mode, and controller themes. | linux (uinput) · windows (ViGEmBus) |
| Swipe, trackpad, keyboard | An Apple-TV-style swipe surface for Kodi and Big Picture, a relative-mouse trackpad, and a keyboard that types straight into the box. Combos panel for copy, paste, undo and media keys. | linux · windows |
| What to play next | A Play tab with suggestions from your box’s game history, a now-playing card, and another pick when you want something different. Optional demo mode lets you explore with sample games. | app · supported gaming boxes |
| Your Steam library | Browse installed games and launch them on the box. Connect your Steam account on the box to add profile stats, playtime and achievement progress. | linux · account features opt-in |
| Wishlist and deals | See Steam specials and discounted wishlist games. Optional Steam and IsThereAnyDeal integrations add price-drop alerts and historical-low comparisons; these features contact their respective online services. | linux · opt-in |
| Log viewer | Recent error logs for any watched service, from your phone, without an SSH session. | journald · event log |
| Pairing | PIN shown on the box's screen, or the QR the installer prints. No IP addresses, no tokens to copy. | all |
| TV and power | A real remote for a smart TV on your network: D-pad, OK/Back/Home, power, volume, input, an on-screen keyboard. LG webOS, Roku, Android / Google TV, Hisense; Samsung in beta. HDMI-CEC and RS-232 where the box has them; a spare Raspberry Pi adds CEC via the Pi bridge. Box-side volume, mute, sleep and wake. | linux (roku on windows) |
| Remote desktop | See and drive the whole desktop. Hardware-decoded H.264 where the box can encode, still frames where it cannot. Tap where you want to click. | linux / wayland · opt-in |
| Audio output | Move sound between HDMI, a Bluetooth speaker and the built-in output in one tap, including whatever is already playing. | pipewire / pulseaudio |
| Front-panel light | Colour, brightness, off. Light-bar sequences on hardware that has them. | where supported |
| Decky Loader | Install, repair, update or remove Decky and its plugins from Setup. Opt in once on the box; a box without Decky is left untouched. | steamos · bazzite |
| Skins and colour packs | Six skins with a live preview, colour packs (OLED Black, Steam, Nord, Dracula), accents, an optional alarm pulse for a hot vital. | app |
Recorded on a real box.
A phone driving Steam Big Picture over home Wi-Fi. Nothing mocked up.
What talks to what.
Tap a task to watch where the traffic goes. Then pull the internet cable and see what changes. (Spoiler: almost nothing.)
The app and the service speak plain HTTP with a bearer token, phone to box, on your Wi-Fi. Pick a task above to see exactly what moves where.
Pay once. Or don't pay at all.
The service on your box is fully open source (MIT). The app is source-available: read it, or build it onto your own phone for free for personal use. The one-time price buys the ready-made build from the stores, kept updated, and supports the work behind it.
“I love opening my phone, finding my favorite game, and hitting launch, so by the time I've walked over to my gaming spot it's loaded and ready to go. Once it fits your setup, you'll get it. That's why the unlock is one payment instead of another monthly bill.”Taylor, maker of Couchside
Try free for 7 days, then unlock once
Download it free and use every feature for a full week, no commitment. If it earns a spot in your living room, keep it forever. One payment, one time, no accounts. Everything is a subscription these days. I hate that, so Couchside isn't one. The money funds this project and supports my family.
Compile it from source
The app's full source is on GitHub: read it, compile it onto your own phone with Expo, tweak it for yourself. Source-available for personal, noncommercial use (PolyForm Noncommercial); the service and installer are MIT, so you can even build your own client. Same software, your labor instead of $7.99. All I ask is that you don't repackage and sell it.
Local control, clear boundaries.
Your phone controls the service on your own LAN without a cloud relay. Updates, purchases and optional integrations use internet services.
- Token auth. Control requests require the box’s credential, stored in your phone’s keychain. Discovery and pairing have separate gates; native images and uploads can use scoped tickets.
couchside new-tokenrevokes paired phones together. - Pinned TLS for supported controls. Paired API and WebSocket connections verify the box’s key. Legacy HTTP remains available; native image and file-transfer payloads use HTTP tickets and are not encrypted.
- Defined controls. The service uses predefined operations and validated arguments, with specific permissions for privileged tasks. A paired phone can still type and control the box’s user session; these checks are not a sandbox around a token holder.
- Optional online services. App stores, updates and integrations make their own network requests. Website purchases and optional email news are separate from local box control. See the transport and privacy details.
- Auditable. The service is MIT and a single stdlib-only Python file. The app's source is public too. The security page also says what this design does not protect against.
curl http://YOUR-BOX.local:8787/api/pingThe discovery surface: version, hostname, ports, fingerprints. No token, no control.
curl -i http://YOUR-BOX.local:8787/api/statusReturns 401 without authorization. Native file uploads can instead use a short-lived, single-use upload ticket.
What people are saying.
Real reviews from the App Store and Google Play, shown word for word. Names removed; the full, unfiltered ratings live on the stores.