Moonlight PC is an open source PC client for NVIDIA GameStream and Sunshine.
Moonlight also has mobile versions for Android and iOS.
You can follow development on our Discord server and help translate Moonlight into your language on Weblate.
Hardware accelerated video decoding on Windows, Mac, and Linux
H.264, HEVC, and AV1 codec support (AV1 requires Sunshine and a supported host GPU)
YUV 4:4:4 support (Sunshine only)
HDR streaming support
7.1 surround sound audio support
10-point multitouch support (Sunshine only)
Gamepad support with force feedback and motion controls for up to 16 players
Support for both pointer capture (for games) and direct mouse control (for remote desktop)
Support for passing system-wide keyboard shortcuts like Alt+Tab to the host
Windows, macOS, and Steam Link
Snap (for Ubuntu-based Linux distros)
Flatpak (for other Linux distros)
AppImage
Raspberry Pi 4 and 5
Generic ARM 32-bit and 64-bit Debian packages (not for Raspberry Pi)
Experimental RISC-V Debian packages
NVIDIA Jetson and Nintendo Switch (Ubuntu L4T)
Hosting for Moonlight's Debian and L4T package repositories is graciously provided for free by Cloudsmith.
Qt 6.7 SDK or later (earlier versions may work but are not officially supported)
Visual Studio 2022 (Community edition is fine)
Select MSVC option during Qt installation. MinGW is not supported.
7-Zip (only if building installers for non-development PCs)
Graphics Tools (only if running debug builds)
Install "Graphics Tools" in the Optional Features page of the Windows Settings app.
Alternatively, run dism /online /add-capability /capabilityname:Tools.Graphics.DirectX~~~~0.0.1.0
and reboot.
Qt 6.7 SDK or later (earlier versions may work but are not officially supported)
Xcode 14 or later (earlier versions may work but are not officially supported)
create-dmg (only if building DMGs for use on non-development Macs)
Qt 6 is recommended, but Qt 5.9 or later is also supported (replace qmake6
with qmake
when using Qt 5).
GCC or Clang
FFmpeg 4.0 or later
Install the required packages:
Base Requirements: openssl-devel SDL2-devel SDL2_ttf-devel ffmpeg-devel libva-devel libvdpau-devel opus-devel pulseaudio-libs-devel alsa-lib-devel libdrm-devel
Qt 6 (Recommended): qt6-qtsvg-devel qt6-qtdeclarative-devel
Qt 5: qt5-qtsvg-devel qt5-qtquickcontrols2-devel
Base Requirements: libegl1-mesa-dev libgl1-mesa-dev libopus-dev libsdl2-dev libsdl2-ttf-dev libssl-dev libavcodec-dev libavformat-dev libswscale-dev libva-dev libvdpau-dev libxkbcommon-dev wayland-protocols libdrm-dev
Qt 6 (Recommended): qt6-base-dev qt6-declarative-dev libqt6svg6-dev qml6-module-qtquick-controls qml6-module-qtquick-templates qml6-module-qtquick-layouts qml6-module-qtqml-workerscript qml6-module-qtquick-window qml6-module-qtquick
Qt 5: qtbase5-dev qt5-qmake qtdeclarative5-dev qtquickcontrols2-5-dev qml-module-qtquick-controls2 qml-module-qtquick-layouts qml-module-qtquick-window2 qml-module-qtquick2 qtwayland5
Debian/Ubuntu:
RedHat/Fedora (RPM Fusion repo required):
Building the Vulkan renderer requires a libplacebo-dev
/libplacebo-devel
version of at least v7.349.0 and FFmpeg 6.1 or later.
Steam Link SDK cloned on your build system
STEAMLINK_SDK_PATH environment variable set to the Steam Link SDK path
Install the latest Qt SDK (and optionally, the Qt Creator IDE) from https://www.qt.io/download
You can install Qt via Homebrew on macOS, but you will need to use brew install qt --with-debug
to be able to create debug builds of Moonlight.
You may also use your Linux distro's package manager for the Qt SDK as long as the packages are Qt 5.9 or later.
This step is not required for building on Steam Link, because the Steam Link SDK includes Qt 5.14.
Run git submodule update --init --recursive
from within moonlight-qt/
Open the project in Qt Creator or build from qmake on the command line.
This build will lack windowed mode, Discord/Help links, and other features that don't make sense on an embedded device.
For platforms with poor GPU performance, add "CONFIG+=gpuslow"
to prefer direct KMSDRM rendering over GL/Vulkan renderers. Direct KMSDRM rendering can use dedicated YUV/RGB conversion and scaling hardware rather than slower GPU shaders for these operations.
For Windows builds, use scriptsbuild-arch.bat
and scriptsgenerate-bundle.bat
. Execute these scripts from the root of the repository within a Qt command prompt. Ensure 7-Zip binary directory is on your %PATH%
.
For macOS builds, use scripts/generate-dmg.sh
. Execute this script from the root of the repository and ensure Qt's bin
folder is in your $PATH
.
For Steam Link builds, run scripts/build-steamlink-app.sh
from the root of the repository.
To build a binary for use on non-development machines, use the scripts in the scripts
folder.
To build from the command line for development use on macOS or Linux, run qmake6 moonlight-qt.pro
then make debug
or make release
To create an embedded build for a single-purpose device, use qmake6 "CONFIG+=embedded" moonlight-qt.pro
and build normally.
Fork us
Write code
Send Pull Requests
Check out our website for project links and information.