Perhaps the first thing I would recommend is Steam's built-in Remote Play feature along with their apps. This is the most dummy-proof method, though you can get better/more customizable results with Sunshine/Moonlight and of course you aren't tied down to Steam if you are using Sunshine/Moonlight. (Not that being tied down to Steam is particularly limiting since Steam can launch non-Steam applications and games)
There are a lot of YouTube guides out there if you prefer that way, or another way to go is to have an AI help you.
For example, I had some trouble recently getting my streaming setup to work and I just kept asking AI what to investigate, and it turned out my Linux distro software firewall was defaulted to blocking the streaming ports on my desktop system.
I recommend trying local network only to get started and only worry about Internet streaming later as that process is a little more involved. Though, maybe it's not if you already have your own home VPN like Wireguard or Tailscale.
It'll really work best if your desktop is wired. Clients being on WiFi is usually okay, especially if you have 6Ghz support...of course, wired everywhere is most ideal.
Admittedly, none of this is anywhere near as convenient as the black magic that PS Remote Play does. That is a downright incredible user experience. But still, I encourage you to give it another go!
Sunshine/Moonlight kind of works and in the desktop it works fine but when I open a game the display scales wrong on my client device despite looking fine on the host.
So does this create like a virtual desktop? How does that work? Is this just a separate "screen" or is this more like an entirely separate compositor instance (if thats the right term here)?
> Isolated streaming sessions: Each stream runs in its own compositor, completely separate from your desktop environment.
So yes, a compositor per session. I love the idea of a gaming box that can host multiple instances; that would be very very good.
Note that Moonlight also has a fork, Artemis.
I'm genuinely not sure what difference Sunshine/Moonlight has vs somewhat newer Apollo/Artemis, but kind of just posting here to let folks know there are already some fairly active forks from Sunshine, the classic way to host a server for Moonlight clients.
Is this basically Apollo but for Linux?
EDIT: maybe you're mixing up Sunshine and Moonshine (this project)?
The only downside was that the game had to be running, visibly, on the screen of the desktop machine, meaning the desktop is unusable for anything else - ie. if someone else wanted to play the game while I was working on the desktop.
This appears to solve that. Sunshine/Moonlight was already cake with a fair layer of icing. This is a sprinkling of glacé cherries on top. I love glacé cherries.
Tricky was probably my favorite, but they were all great.
On a big screen TV with the upscaled graphics made it feel a lot less like retro-gaming too.
I can’t have played it in fifteen or twenty years but I still think about Tokyo Megaplex every month or two. It tapped into something deep in my brain.
Thanks for the reminder of it. I won’t know what heaven looks like until I’m at its gates, but when I die, I hope I get to ascend via that weird updraft tube, and ride those red and white candy cane rails for eternity. If not, God might have missed a trick. What an incredible piece of work that game is.
Gaming is something I do to relax and I eventually decided it wasn't worth it since I had spent a week of my limited downtime messing around with codecs, latency, wifi settings, trying different apps, etc. and not gotten any kind of usable results.
I guess it was about three years ago. Have things improved since then?
There are some people who it seems to be working for, but I think it still needs a lot more work to iron out all of the issues.
In case it makes a difference, I was also using Tailscale.
I was quite excited by that, I even got a controller that could clamp on to the phone. Just couldn't get it to work reliably.
1. Connect my Dualsense controller to my macbook
2. Open moonlight on my macbook
3. Connect to my gaming desktop in full screen mode
3. Launch my AAA game on Steam
4. Profit
Over Wifi 7 I get basically no discernable lag, which was crazy to me the first time I tried it. I also have a Minisforum attached to my large screen TV and the process is identical except I push a different combo on the Dualsense controller to connect to the Minisforum. Because apollo saves settings, I can pretty seamlessly switch between the two with basically no issues.
First there was Nvidia Gamestream, which was proprietary and later deprecated by Nvidia themselves.
Then came Sunshine and Moonlight, open source server and client implementations of the protocol to allow low latency streaming for all platforms.
Along the way the Game on Whales project started, to allow multi seat streaming plus virtual displays so currently logged in user sessions aren't impacted. Basically this is a whole "host your own Stadia/Geforce Now" solution. But instead of running already setup applications as an existing user, you run these curated containers of Steam, Firefox, etc.
Then someone forked Sunshine and Moonlight into Apollo and Artemis, to make streaming from a virtual display turnkey and OOTB easy. Sadly the virtual display feature of Apollo is in practice Windows only.
And then there's this, Moonshine, in a way doing what Apollo brings to the table but for Linux servers.
Oh, and along the way someone forked Apollo into Vibepollo, an almost fully vibecoded "enhancement". Personally not touching that.
Did I miss anything?
While the hardware is no longer being sold the software sort of lives on. In an android app among other things.
Tangentially it almost feels like steam could make a stadia like thing work. They have most of the moving parts including crucially, the bit google didn't, an established base of customers. Tomorrow steam could introduce a "play your games anywhere on any hardware" feature and no one would be surprised.
GoW had that advantage over Sunshine, that it allowed selecting any resolution, it didn't require hdmi connector that simulated a monitor.
If it’s pass-through like the README makes it seem, then I’m instantly sold.
Hi, creator of Moonshine here.
I'll try to answer some common questions here instead of replying the same thing everywhere:
What is it?
At it's core it's similar to Sunshine but with one important difference: Moonshine creates its own compositor and does not rely on an existing desktop environment. The benefits:
- You do not need a running desktop environment: it can run headless.
- The compositor is created with any resolution and any refresh rate, without requiring a dummy plug.
- Because Moonshine controls the compositor, it has HDR support out-of-the-box, even if your monitor does not support HDR (ongoing development, it works in the games I tested).
- If you do have a running desktop environment, you can keep using it while streaming a game at the same time.
On a more technical level: I like the narrow focus that Moonshine has. Only one encoder (Vulkan), only one OS supported (Linux), no GUI, no compatibility with old Moonlight clients. The codebase is intentionally "lean". Of course this also has disadvantages like requiring semi-recent GPUs & drivers, only working on Linux and newer Moonlight clients, but I can live with that.
Why create it?
The short answer: a lazy girlfriend and a stubborn Linux user.
The long answer: Moonshine is a hobby project that I've been working on for a few years (first commit goes back to 2022). It was (and still is) a fun exercise and helped me learn a lot, which if it never became functional would have been a nice outcome already. In fact, in earlier README's I advise people not to use it because at the time it did what Sunshine does but worse. I removed that section when I started adding features that made it different from Sunshine.
Should I use it?
Today I would say to a new user: use Sunshine, there's tons of guides and online information and it will likely work fine for you.
If you like tinkering and trying out new things: sure, why not :).
I understand (well, "guess" more than understand when it comes to graphic stack in Linux) that it being it's own compositor probably means running a full desktop environment in it is infeasible, but a good way to run software remotely is painfully missing in Linux right now, even one app at a time. The built in servers in kde/gnome are problematic in general and require the monitor to be turned on.
Although I can't use my PC at the same time as streaming, I'm really happy with my janky setup for now, but kinda really want to try this!
We needed an old version of Ubuntu hence the VM. And gpu pass through is needed for gazebo simulations.
I started with RDP but the desktop was super laggy and unresponsive. Sunshine/moonlight has made it usable.
scales nicer for multiple clients, keeps dependencies far away from my host
and lets me use NvFBC for lower latency, which yes you can easily patch onto consumer nvidia gpus
However, I had a cold a month or so ago and wanted to play Oxygen Not Included from the couch from my old-ass Linux laptop which couldn't run it. I set up Sunshine and Moonlight in about... 5 minutes? And it "just worked". And worked well. I was able to play perfectly, and that is including my host machine being on WiFi even though all the documentation says use Ethernet if at all possible (which ofc would be better).
It was honestly the most magical thing I've done with technology in the past few years.
Disclaimer: this was only for local/wifi streaming.
Every time I've tried PC gaming on undersized screens, every single inch makes a big difference to the immersiveness and reduced eye-fatigue. It just ends up being something I have to put down early because of that. 8 inch is the smallest I can go where the compromise makes sense.
Where I see bigger issues is: 1. Economics. GeForce Now for a 5080 is 20ct/h. At retail prices you may get close in electricity.
2. Others want to game when I want to game. What good is offering my PC up at 5am? Who would want to use the service if you can’t reliably get access when you want it. Not to speak of the issue of getting kicked out when the owner wants their PC back.
3. The whole: do you trust someone else’s computer/do you trust others on your computer. Users don’t want their login details stolen or get banned for using a cheaters PC and providers don’t want you to cheat or do other nasty stuff. You can’t really do VMs because consumer GPUs don’t really support virtualization so dual booting
4. You need to dedicate a ton of disk space. Because of 3 you can’t really share and now you have to deal with some system to have the relevant games available.
Just for discussion though: Economics don’t necessarily dominate these markets when providers aren’t informed - Uber drivers w/ depreciation for example. If your GPU is a sunk cost, and your electricity is cheap enough, it might be attractive (think consumers mining crypto back when).
A floating market rate or “surge pricing” could come into play. Outside of the top 10% of gamers by playtime, there’s plenty of idle compute during prime hours.
A secure environment would definitely be essential. SteamOS could be a great tool for that: dual boot SteamOS and make SteamBucks while you’re not using your computer.
You could only offer your machine for the titles you have downloaded. This again could be addressed by a market: popular titles could get more utilization, but obscure titles could command a premium.
No guarantee any of this would actually work, but it’d be an interesting model to explore if I were at Steam. They have hardware survey data, user activity, etc; to check viability.
If there weren't, I think token prices would be higher than they are, downtime would be higher than it is, and there would be far fewer free tiers or more restrictions on free tiers.
https://www.reuters.com/business/meta-sell-excess-ai-computi...
It is built-in on every Steam. You can basically press two buttons and stream from your desktop to laptop if both have Steam with same accounts logged in.
> Tangentially it almost feels like steam could make a stadia like thing work. They have most of the moving parts including crucially, the bit google didn't, an established base of customers. Tomorrow steam could introduce a "play your games anywhere on any hardware" feature and no one would be surprised.
Already possible. While not so optimized as Games-on-whales.
A truly headless solution with a web ui would get me really interested.
gamescope \
--backend headless \
-W 1920 -H 1080 \
-w 3840 -h 2160 \
-r 60 \
--cursor-scale-height 1080 \
--force-grab-cursor \
-- steam -gamepadui -pipewire-dmabuf
You still need the initial setup for pairing.But it has many issues compared to Games on Whales, for example, which is much more efficient and scales cursor better.
Not to mention greater security concerns.
VPN having issues, can't connect to any of my stack? Atleast I have a desktop on my LAN I can remote into...from my phone...
Basically anytime I have network issues while I'm away, reliable Steam Link connects me back to my infra ~97% of the time.
For the record, I always wondered why I couldn't do something like this with whatever magic is happening under the hood with Syncthing.
I've been doing networking related things for over 20 years, and it's still wild what doesn't click for me...
Once I'm remote on the desktop, I can access my home-lab locally instead of via VPN. Before I moved to Tailscale, my self-hosted Wireguard setup was pretty shaky, and was running on an old Pi that had seen better days.
It's basically just using Steam to jump-box to my LAN, and from there you can do whatever you desktop can do on the LAN. (Steam Link has some oddities around UAC prompts, usually requiring input from the host and refusing from the client.)
You could probably use anything....Parsec, Moonlight, RDP, etc. But Steam is always running on my Desktop, and the phone-app helps a lot. I've used Parsec as well, but sometimes if using a commercial VPN Parsec is unable to connect. Steam tends to still create a session in these scenarios, but YMMV...I'm sure there's some config issues in my setup
Nothing seems to do exactly that, though this (moonshine) seems like it might be the closest yet.
Can it run a desktop environment as the "Application" that it's streaming?
It took a fair bit of iteration to get my setup to the point where it mostly works the way I like, but it's been pretty stable for months now. I game exclusively on my handheld streamed from my desktop, and on my local network the input lag is pretty consistently low enough that I don't notice any difference from when I had tried to play things locally on SteamOS, only I can easily max the graphics settings on most games I play (and on the rare ones that do struggle, there's often not a ton of downside to lowering the resolution a bit due to the handheld only being 1200p).
Does anyone happen to know how to make a Windows machine, the extended display of a Linux machine? Both machines are on the same network.
I'm looking to use a Windows laptop as a mere HDMI monitor for the Linux laptop. I don't need gaming/streaming requirements. Like, can anyone list our options in 2026 as the parent comment did?
I assume one can use this Moonshine on the server (Linux laptop) and run Moonlight on the client (windows laptop)?
At least on Sway (and I imagine other wlroots-based compositors) it's very easy to do: create a virtual output and start a VNC server attached to it. Start your vnc client on windows. A comment I posted 5 years ago: https://news.ycombinator.com/item?id=25892128
The comment linked above is on the topic of Deskreen, which is a tool that does that.
Funilly, I also commented something similar there: https://news.ycombinator.com/item?id=34010970 the article explains how to do it on a lower level (pretending a display is connected to the GPU), works under X11 too.
A few days ago, an update locked me out of my server. I used a cheap USB HDMI capture card to use my laptop as a screen, which worked very well: that could be another option.
Then I guess that there is this option, which is new to me. It feels like this could be a toogle in sunshine, somehow :)
If you have claude code installed (or ssh access for it), you can ask it to investigate your entire boot chain. It can find and fix it in 5 minutes.
And yeah, I did try out various LLMs (including Claude) when it first started happening, but none of them were able to point me towards anything definitive about the cause, let alone the fix. In general I think it might be worth giving someone asking a question about something like this the benefit of the doubt about whether they've tried it, especially if you have outsized assumptions about how likely they are to solve problems. My experience is that when someone mentions having an issue, telling them "just ask Claude/Codex/etc." doesn't tend to end up being a very valuable contribution to discussions; people who are open to using LLMs for things will almost definitely have already done so, and people who haven't already are a lot more likely no to have done so for other reasons than the idea not having occurred to them. It's pretty hard to go more than even a few minutes into any sort of discussion about tech nowadays without someone bringing them up, so I think it's a pretty safe assumption that most people are well aware of them and considered them for whatever problem they're having.
To be clear, I'm not trying to berate you or anything but genuinely give feedback that might be helpful for you when trying to give advice on things like this in the future. Trying to give advice in a way that people will be receptive to can be difficult, especially when they're strangers on the internet, but I also think it's a a valuable way to spend time compared to a lot of other ways to spend time online, so I think it's worthwhile to invest time and effort into figuring out the best ways of doing it.
On windows, is it possible to use the server at the same time as someone is remote gaming? Most virtual display solutions I found just turn the server display off.
Windows requires an active user session with a connected display(physical or virtual) in order to build a desktop to render something. RDP can create a backgorund session, but on non-Server editions of Windows, you can't have a background RDP session while you are using it. It only allows one active session unless you patched the RDP service.
About Apollo, someone started a fork of Sunshine to be the equivalent of Apollo (with virtual displays) for linux, it's called Polaris https://github.com/papi-ux/polaris (nb, it's not the apache polaris). It's very Alpha right now and the UI feels wonky but it's promising.
What was the motivation? Games on Whales seems to work perfectly in my experience.
So if I used sunshine, and streamed a game, the display of the box running sunshine would be showing the game? and this moonshine allows us to do away with that, to be able to run headless, or to run multiple games at once or something?
Is that correct?
Afaict, Moonshine relies on a separate graphical session running on your monitor and that's how it gets around that limitation of Nvidia GPUs. If I had a monitor plugged in to my box, Sunshine would work just as well.
EDIT: Ok, correction, I bothered to go unplug the dummy plug and it still works. So I was wrong, Sunshine does not need a dummy plug at all, not even on Nvidia. Now it remains a mystery why I have one in the first place if it's useless after all…
Is it just a new implementation? is that it?
[EDIT] all answered here: https://news.ycombinator.com/item?id=48976789
Steam has had good built-in streaming for a long time.
Those implementations don't have access to the low level encoding Nvidia has.
There is a rumour, that they did this because of GeForce now, because there never will an open source implementation/ service competition for GeForce now.
Comparatively, Moonshine "just worked". Claude set it up, porting across relevant settings from Sunshine, I connected to it, punched the client pairing code into the server, and then I was able to play Clair Obscur on my TV without being logged into my workstation. Pretty cool!
While I haven't tried this yet, I do have a Bazzite box that would be a good fit. I wouldn't treat the rough edges as a deterrent the way we have in the past.
I much prefer the idea of this where I don't have to worry about resizing the existing screen.
SpecialistK•17h ago
Shame it needs such a modern GPU and $feature which isn't offered by my preferred Alpine Linux. But that shouldn't detract from what it's promising.
Grombobulous•16h ago
If you go back much further your client device might just have enough horsepower to run the game you're trying to play without streaming at all!
ZekeSulastin•15h ago
I Googled a little to see if the GTX 1660/Ti supported Vulkan Video and found this page from Nvidia[1] that says Pascal or later, so I wonder what the blocker is in this program.
1: https://developer.nvidia.com/vulkan/video/get-started
Gigachad•14h ago
Grombobulous•6h ago
For example, in Elden Ring an optimized 800p with mixed low to medium settings will hit 45 FPS.
On a 5700XT you’re looking at the high 90fps range for 1080p medium settings.
So it’s really in all practical purposes 2-3 times better and your steam deck has a maximum refresh rate of 90Hz anyway. On a screen that size you’ll barely see the difference between medium and ultra settings.
Something notable is that because of how math maths, 45FPS is a LOT better looking than 30FPS.
Finally, I’ll point out that anyone with hardware this old still has the option of using normal sunshine. Or you can just get a 6000 series card, the difference in cost between a 6600XT and a 5700XT is less than $50.