gitwtfhub

wtf is moonlight-qt?

moonlight-stream/moonlight-qt — explained in plain English

Analysis updated 2026-06-24

17,089C++Audience · generalComplexity · 3/5Setup · moderate

TL;DR

Open-source desktop client that streams games and desktop from a gaming PC running NVIDIA GameStream or Sunshine to another device over LAN or the internet.

Mindmap

mindmap
  root((moonlight-qt))
    Inputs
      Host PC video feed
      Controller input
      Keyboard and mouse
    Outputs
      Hardware decoded video
      HDR display
      7.1 surround audio
    Use Cases
      Stream PC games to a TV
      Play from a low power laptop
      Self host cloud gaming
    Tech Stack
      C++
      Qt
      Sunshine
      NVIDIA GameStream

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Why would anyone build with this?

REASON 1

Stream PC games from a gaming rig to a TV in another room

REASON 2

Play your Steam library from a laptop while traveling on your home network

REASON 3

Run a self-hosted cloud gaming setup using Sunshine as the host server

What's in the stack?

C++QtSunshineFFmpeg

How it stacks up

moonlight-stream/moonlight-qtdoitsujin/dxvkzlmediakit/zlmediakit
Stars17,08917,11717,030
LanguageC++C++C++
Setup difficultymoderatemoderatehard
Complexity3/53/54/5
Audiencegeneralgeneraldeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you spin it up?

Difficulty · moderate Time to first run · 1h+

Requires a host PC running Sunshine or NVIDIA GameStream and a stable wired or fast Wi-Fi link.

Wtf does this do

Moonlight PC is an open-source client application that lets you stream games and your desktop from a powerful gaming computer to another device over your local network or the internet. Think of it as a self-hosted version of cloud gaming, instead of paying a service to stream games from their servers, you stream from your own machine. It works by connecting to NVIDIA GameStream (a feature built into NVIDIA graphics cards) or Sunshine, an open-source alternative that works with any GPU. Your gaming PC does all the heavy work of running and rendering the game, then sends the video feed over the network to the Moonlight client on a less powerful machine. You play from there with a controller, keyboard, or mouse, and your inputs are sent back to the host. Moonlight PC supports hardware-accelerated video decoding, which means decoding the incoming video stream uses your GPU rather than your CPU, keeping performance smooth. It handles multiple video formats, HDR (high dynamic range for richer colors), 7.1 surround sound, and up to 16 simultaneous gamepads with force feedback and motion controls. The client runs on Windows, macOS, Linux, and Steam Link (a Valve streaming device). Mobile versions exist for Android and iOS as separate projects. The software is built in C++ using the Qt framework. You would use Moonlight if you want to play your gaming PC's library on a TV in another room, a laptop away from your desk, or any device that could not otherwise run demanding games on its own.

Yoink these prompts

Prompt 1
Walk me through installing Sunshine on my Windows gaming PC and pairing Moonlight from a Mac
Prompt 2
Diagnose stutter and input lag when streaming Moonlight over Wi-Fi and list fixes to try
Prompt 3
Configure Moonlight to stream HDR at 4K 120Hz with 7.1 surround sound to my LG OLED
Prompt 4
Set up Moonlight on a Steam Deck to stream from my desktop and bind the controller correctly

Frequently asked questions

wtf is moonlight-qt?

Open-source desktop client that streams games and desktop from a gaming PC running NVIDIA GameStream or Sunshine to another device over LAN or the internet.

What language is moonlight-qt written in?

Mainly C++. The stack also includes C++, Qt, Sunshine.

How hard is moonlight-qt to set up?

Setup difficulty is rated moderate, with roughly 1h+ to a first successful run.

Who is moonlight-qt for?

Mainly general.

View the repo → Decode another repo

This repo across BitVibe Labs

Don't trust strangers blindly. Verify against the repo.