Sunshine

Self-hosted game streaming host

Media & Streaming GPL-3.0 intermediate ★ 41,721 stars

What is Sunshine?

Sunshine is a self-hosted game stream host for the Moonlight client. It streams your desktop and games from your own PC to other devices over the network, giving you a private remote gaming setup without relying on a commercial streaming service.

Best for

Gamers who want to stream from their own PC to other screens

Why choose Sunshine

Sunshine is the open-source half of the best game-streaming setup available: it runs on your gaming machine and streams to Moonlight clients on a television, laptop or phone. Because it uses hardware encoding on the GPU, latency is genuinely low on a decent network, and because you host both ends, there is no subscription and no stream passing through a company's servers. For playing your own library on another screen in the house, it is close to a solved problem.

Replaces

  • Steam Link
  • GeForce NOW
  • Parsec

Key features

  • Streams your desktop or games to Moonlight clients
  • Hardware encoding on NVIDIA, AMD and Intel GPUs
  • Web UI for pairing clients and tuning encoders
  • Works over LAN or through a VPN for remote play

What to watch out for

The name of the game here is network quality. On a wired local network it is excellent; over Wi-Fi, or remotely through the internet, stutter and latency depend on your connection far more than on the software. Hardware encoding support varies by GPU generation and drivers, and getting it working well on some AMD and Intel setups takes experimentation. This is also software that acts as a deep system integration — it captures the screen and injects input — so it will occasionally interact badly with anti-cheat systems and is not the tool for competitive online play.

How to deploy

  • Windows installer
  • Linux packages
  • Docker

Getting started

Start on a wired connection between host and client, with a modern GPU and updated drivers, and get a stable 1080p stream working before changing any settings. Pair a client through the web interface and note that each client has its own configuration, so tune for the device rather than globally. Set up a VPN if you want to play away from home instead of exposing the host directly to the internet, which is the mistake to avoid. Test with a game that is not sensitive to input latency, and keep the host awake and free of other GPU load while you tune.

Typical setup

The host is the gaming machine itself, and clients are whatever is on the other end of the network — a television with a small media box, a laptop, a phone. On a wired local network the experience is close to native; over the internet it goes through a VPN so the host is never exposed directly. People tune encoder settings per client, which matters because a phone and a 4K television want very different streams.

Who should look elsewhere

Not worth setting up for competitive online games, where the extra latency is a genuine disadvantage and overlay or anti-cheat interactions are an ongoing risk. It is also a poor fit on weak Wi-Fi or a slow internet connection: the software is rarely the bottleneck, and no amount of tuning fixes a bad link.

Project health

  • GitHub stars: 41,721
  • Last code push: 2026-10-01
  • Open issues: 167
  • Status: actively developed

Figures pulled from the GitHub API and refreshed periodically.

More in Media & Streaming