Hestia is a Moonlight-Qt based desktop client focused on compatibility with Hermes, Apollo, Sunshine, and standard GameStream-compatible hosts.
Hermes is an Apollo-compatible host with extra Hestia protocol extensions. Hestia detects those extensions when they are available, while preserving the normal Moonlight/Apollo/Sunshine connection path for hosts that do not provide them.
Hestia's current focus is Linux (Arch/CachyOS first, with handhelds such as the Steam Deck in mind). That's where development, packaging, and CI are prioritized right now: continuous integration builds the client on Linux and produces an Arch/CachyOS package on every change.
This focus may broaden in the future. The codebase is inherited from Moonlight-Qt and still contains the Windows and macOS paths, but those are not a priority and are not actively tested at the moment — their CI is opt-in and may be broken. If you need Windows or macOS today, prefer upstream Moonlight-Qt.
- Hardware accelerated video decoding on Windows, macOS, and Linux.
- H.264, HEVC, and AV1 codec support where supported by the host and GPU.
- HDR streaming support where supported by the host and platform.
- Surround sound audio support.
- Gamepad support, including force feedback and motion controls where supported.
- Pointer capture and direct mouse control modes.
- Support for passing system-wide keyboard shortcuts to the host.
- Apollo/Sunshine-compatible streaming fallback.
- Hermes protocol support for host capability discovery, session preparation, session stop, diagnostics, and optional clipboard sync.
When connected to Hermes, Hestia can use the host's Hestia protocol v1 API for:
- Capability detection.
- Session preparation before streaming.
- Session cleanup after streaming.
- Host diagnostics display, including live runtime status: the real encoder in use (hardware vs software + codecs), active/streaming sessions, and live pipeline metrics (FPS, bitrate, encode time, capture→encode latency, and encoded/dropped frames) while a stream is running.
- Optional clipboard synchronization.
- Optional host-side display/session preferences.
Hestia does not assume Hermes-only features exist on every host. If a host does not expose a capability, Hestia falls back to the standard Moonlight-compatible behavior.
Some Hermes-focused features are based on ideas from ClassicOldSong's Android Moonlight fork, especially the Apollo-oriented client behavior that is useful for Hermes as an Apollo-derived host:
Arch/CachyOS is the primary target. A PKGBUILD lives in
packaging/arch/ and builds from a local checkout:
git clone --recurse-submodules https://github.com/MrOz59/Hestia.git
cd Hestia/packaging/arch
makepkg -siThe installed binary is moonlight. The same PKGBUILD is what CI uses to
produce the Arch/CachyOS package artifact on every change.
Install the base build dependencies:
sudo apt update
sudo apt install \
build-essential git pkg-config qmake6 qt6-base-dev libqt6opengl6-dev \
qt6-declarative-dev libqt6svg6-dev qt6-wayland qml6-module-qtquick \
qml6-module-qtquick-controls qml6-module-qtquick-templates \
qml6-module-qtquick-layouts qml6-module-qtquick-window 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-devThen build from the repository root:
git submodule update --init --recursive
qmake6 moonlight-qt.pro
make releaseThe development binary is produced at:
app/moonlightIf your Ubuntu/Lubuntu package set does not provide
qml6-module-qtqml-workerscript, omit it. Current Hestia builds do not require
that package on every Ubuntu release.
For standard Sunshine, Apollo, and Moonlight-compatible hosts, Hestia keeps using the normal pairing, app list, launch, and stream flow.
For Hermes hosts, Hestia enables extra behavior only after the host reports
support for it. Clipboard support depends on the host environment. On Linux
hosts, Hermes can report missing helpers such as wl-clipboard or xclip
through diagnostics, and Hestia displays those diagnostics to the user.
Hestia is based on Moonlight-Qt, the open source PC client for NVIDIA GameStream-compatible hosts and Sunshine.
Original Moonlight project links:
- Website: https://moonlight-stream.org
- Upstream Qt client: https://github.com/moonlight-stream/moonlight-qt
- Sunshine host: https://github.com/LizardByte/Sunshine