explaingit

lizardbyte/sunshine

📈 Trending37,076C++Audience · developerComplexity · 4/5ActiveLicenseSetup · hard

TLDR

Self-hosted game streaming server that lets you play PC games remotely on phones, tablets, or TVs using the Moonlight client, an open-source alternative to NVIDIA's discontinued GameStream.

Mindmap

mindmap
  root((Sunshine))
    What it does
      Stream PC games remotely
      Encode with GPU hardware
      Forward controller input
      Browser config panel
    How it works
      Host captures screen
      Real-time low latency
      Moonlight client connects
      Gamepad emulation
    Supported hardware
      NVIDIA NVENC
      AMD AMF
      Intel QuickSync
      Apple VideoToolbox
    Use cases
      Play from couch
      Remote desktop access
      Stream to mobile
      Stream to TV
    Tech stack
      C++ language
      CMake build
      Docker image
      Flatpak package
    Platforms
      Windows host
      Linux host
      macOS host
      FreeBSD host

Things people build with this

USE CASE 1

Play demanding PC games from your couch on a TV using a streaming device or phone.

USE CASE 2

Access your desktop remotely from a laptop or tablet anywhere in your home.

USE CASE 3

Stream games to multiple devices without relying on proprietary cloud services.

USE CASE 4

Set up a gaming server that works with any GPU brand, not just NVIDIA hardware.

Tech stack

C++CMakeDockerFlatpak

Getting it running

Difficulty · hard Time to first run · 1day+

Requires GPU encoding support, proper codec configuration, network setup, and Moonlight client installation; multiple system dependencies and potential driver issues.

Open-source software allowing free use, modification, and distribution under the specified license terms.

In plain English

Sunshine is a self-hosted game streaming server that lets you play PC games remotely on other devices using the Moonlight client. The problem it solves is the same one NVIDIA's GeForce Experience (GameStream) was built for, streaming your gaming PC's screen over the network to a phone, tablet, TV, or another computer, but as a fully open-source, self-hosted alternative that works with any GPU, not just NVIDIA hardware. When NVIDIA discontinued GameStream, Sunshine became the primary community-supported replacement. The way it works is that Sunshine runs on your gaming PC (the "host") and captures the screen, encodes the video using your GPU's hardware encoder, and streams it over the network in real time at very low latency. Clients connect using the Moonlight app, which is available on iOS, Android, smart TVs, and other platforms. The encoding hardware used depends on your GPU: NVIDIA cards use NVENC, AMD uses AMF (on Windows), Intel uses QuickSync or VAAPI, and Apple silicon Macs use VideoToolbox. A browser-based configuration panel lets you manage the app list and pair client devices without touching the command line. Gamepad input from the client is emulated on the host, so the game sees a real controller. Keyboard and mouse input from the remote device is also forwarded. You would use Sunshine when you want to play games from your powerful desktop PC while sitting somewhere else in the house, on a couch connected to a TV via a streaming device, on an iPad, or on a laptop. It is also used for general remote desktop access, not just games. The tech stack is C++ with CMake, runs on Windows, Linux, macOS, and FreeBSD, and is available as a Docker image, Flatpak, or native installer.

Copy-paste prompts

Prompt 1
How do I install and set up Sunshine on my Windows gaming PC to stream games to my iPad?
Prompt 2
What GPU hardware encoders does Sunshine support, and how do I check which one my card uses?
Prompt 3
Show me how to configure Sunshine's browser panel to add games and pair a Moonlight client.
Prompt 4
How do I deploy Sunshine in Docker so I can stream games from a Linux server?
Prompt 5
What are the network requirements and latency expectations for streaming games with Sunshine?
Open on GitHub → Explain another repo

Generated 2026-05-18 · Model: sonnet-4-6 · Verify against the repo before relying on details.