# moonlight-xbox puts GeForce Experience and Sunshine games on a console

> moonlight-xbox is a UWP port of Moonlight Stream for the Xbox One and Xbox Series X|S family, so a PC running GeForce Experience or Sunshine can be streamed to the living room console. The README is blunt about its state, describing the application as still in early stages of development with things expected to work badly.

**TheElixZammuto/moonlight-xbox** — Moonlight port for Xbox One/Series Family of Console

- Repository: https://github.com/TheElixZammuto/moonlight-xbox
- Stars: 611 · Forks: 65
- Language: C++
- License: GPL-3.0
- Published: 2026-10-22 · Updated: 2026-10-22 · Language: en
- Canonical page: https://hysenlabs.com/projects/theelixzammuto-moonlight-xbox

## A console client for an already running game streaming host

moonlight-xbox is a port of Moonlight Stream for playing games using GeForce Experience or Sunshine for the Xbox One and Xbox Series X|S family of consoles. The division of labour is the same as on other Moonlight targets, and it is worth being explicit about it. The PC side runs the host application, either NVIDIA's GeForce Experience or the Sunshine server, and that is where the game is rendered, captured and encoded. The Xbox side is the client: it displays the video, sends input back and handles pairing. So this project is not a game streaming server and does not replace Sunshine or GeForce Experience, it is the receiver for them. The project language is C++, and the repository is built around the libgamestream client library from Moonlight, with the C++ UWP and WinUI application code on top, an App.xaml entry point and XAML pages. The published package on the Microsoft Store carries a Get it from Microsoft badge, which tells you the retail path is a normal Store app rather than a sideloaded bundle.

## The retail route, which is the one most people want

The retail installation is deliberately simple and the README marks it as the option you probably want. You open Microsoft Edge and click the Get it from Microsoft button, download Moonlight UWP from the Microsoft Store, open Moonlight on the Xbox and, if not already, your host app, then press the plus button, insert your PC IP address and press Connect. You pair if needed, choose from the list the application you want to run, and the README's own step seven is a literal question mark followed by profit. That joke is doing real work, because the gap between step six and the result is where the early stage caveat bites. The point about opening the host app is easy to miss and matters: the Xbox client cannot discover a host that is not advertising itself, so a PC sitting idle with the host application closed simply does not appear in the list. The pairing step is where the client and the host exchange keys, and it is where most first-time setups stall, because the PIN has to be typed on both ends.

## Dev mode and the sideloaded package set

The alternative path exists for people who want the standard dev mode builds or the bleeding edge ones. The standard dev mode builds are linked from the repository's releases, and the bleeding edge builds come from the GitHub Actions runs, which is where continuous integration output for a project like this naturally lands. The installation itself has more steps than the retail route, and the dependency handling is the part that catches people out. You enable Dev Mode on your Xbox following the documentation linked in the README, then use the Device Portal to install the Application, moonlight-xbox-dx.msixbundle, and in the following step add the required dependencies, Microsoft.UI.Xaml.2.7.appx and Microsoft.VCLibs.x64.14.00.appx. Those two dependency packages are the WinUI and C++ runtime pieces the app links against, and they have to be present on the console or the bundle will not launch. The repository's file list shows the build produces exactly that bundle name, and the setup-dev.ps1 script at the root of the tree is the convenience path for setting up a development environment.

## What the feature list says works, and what it says does not

The README has a section titled What does work and a section titled What does NOT work, and together they are the most useful paragraph in the repository. Working: connection and pairing, application list fetching, video streaming, which is configurable on a host basis in the settings, gamepad input with rumble, battery reporting and a mouse mode to move the pointer using the gamepad, keyboard support both on screen and with a hardware one, graceful disconnection, host configuration for resolution and bitrate with saved host history, audio, and HDR. Not working: hardware mouse, and the documentation attributes that to UWP limitations, with the word sadly. Then a catch-all line saying everything else not listed above does not work. The list is honest in a way that most project READMEs are not, and it tells you the interesting limitation is structural. A console client that can emulate a mouse with the gamepad's right stick is workable for most console games, which do not need a pointer, but it is not a substitute for a real mouse in a desktop-style session.

## Building from source: vcpkg, submodules and an out of support SDK

Building the project takes Visual Studio 2022 on Windows 10 with the WinUI Application Development Workload, the Windows 10 SDK at 10.0.19041.0, the Universal Windows Platform Tools and the C++ v141, v142 and v143 Universal Windows Platform Tools. The SDK pin comes with a warning: it is marked as out of support as of Visual Studio 2022 version 17.10 but is still necessary for CMake. That is a maintenance cost worth pricing in now, because a toolchain component that is out of support and still required is a future breakage point. The build itself has two routes. The documented one is to clone the repository with submodules enabled, install VCPKG and all dependencies, then work through a specific order. The dependency step runs git submodule update --init --recursive, then vcpkg\bootstrap-vcpkg.bat, then installs the dependencies with the vcpkg executable using the x64-uwp triplet. The project generation step runs generate-thirdparty-projects.bat to generate the moonlight-common-c VS project, then you go to libgamestream and run build-uwp.bat to generate the libgamestream VS project. Only after those do you open moonlight-xbox-dx.vcxproj and build the projects in the stated order of enet, moonlight-common-c and gamestream. The simpler route is to clone the repository and run ./setup-dev.ps1, which the README describes as the fun option.

## Packaging, signing and the store artefact

The final build step in the documented sequence is packaging rather than compiling, and it is the step most people get stuck on. In the solution explorer you expand the moonlight-xbox-dx (Universal Windows) project and double click Package.appxmanifest, then under the Packaging tab, next to Publisher, you click the Choose Certificate button. If you already have a certificate you select it and skip to the final step. Otherwise, in the Choose a Certificate window that appears you click the Create... button and fill out the create prompt, and the README notes that a password is unnecessary if only building for personal use and for debugging purposes. A self signed certificate is enough for sideloading onto your own console, which is why dev mode exists, and it is also why a certificate is required at all: a UWP package must be signed before it can be installed. The repository carries a Package.appxmanifest at the root, an Assets directory, and an appxmanifest-driven packaging flow, and the produced artefact is the same moonlight-xbox-dx.msixbundle that the Device Portal installation step expects.

## Maintenance state and what the release history shows

The project is not archived, and the last push to the repository was on 2026-10-17, so the tree is actively being worked on. The recent releases are 1.18.2 on 2026-09-27, 1.18.1 on 2026-06-16 and 1.18.0 on 2026-01-11. The version numbering in the 1.18 series with patch releases spread across the year suggests a project that ships a release every few months rather than one that follows a rapid cadence, and the gap between 1.18.0 in January and 1.18.1 in June is wide enough to set expectations. The licence is GPL-3.0, which is the copyleft end of the scale and carries a real condition for anyone who modifies and redistributes the client, though running it on your own console is not a distribution event. The repository also carries a TODO file at the root, which given the two work and does not work sections is the file to read if you want to know what the author considers unfinished next. The upstream dependencies, libgamestream and moonlight-common-c, are consumed as submodules, so an update to Moonlight itself flows into this port through the submodule pointer rather than through a merge.

## Conclusion

Adopt moonlight-xbox if you own an Xbox and want to stream games from a PC that runs GeForce Experience or Sunshine, and you are the kind of user who can install a dev mode package and sideload dependencies. Do not adopt it as a stable daily driver, since the README states the application is still in early stages of development and expects things to not work or work badly, and do not adopt it if you need a hardware mouse, which the documentation lists as not working because of UWP limitations. Verify two things before you commit: that your console is in the right mode, retail for the Store build or dev mode for the sideloaded packages, and that your host side is one of the two supported ones, GeForce Experience or Sunshine. The practical first step is the retail route, which is a Microsoft Store download and a host entry with your PC IP address, so you can confirm streaming works before touching any sideloading.

## FAQ

### What is moonlight-xbox?

It is a port of Moonlight Stream for playing games using GeForce Experience or Sunshine for the Xbox One and Xbox Series X|S family of consoles. It is the client side, not the host, and the repository is written in C++.

### How do I install moonlight-xbox on an Xbox?

For retail mode, open Microsoft Edge, click the Get it from Microsoft button, download Moonlight UWP from the Microsoft Store, open Moonlight and your host app, press the plus button, enter your PC IP address and press Connect, then pair if needed.

### What do I need to sideload the dev mode build?

Enable Dev Mode on the Xbox, then use the Device Portal to install moonlight-xbox-dx.msixbundle and the required dependencies Microsoft.UI.Xaml.2.7.appx and Microsoft.VCLibs.x64.14.00.appx.

### Does the hardware mouse work in moonlight-xbox?

No. The README lists hardware mouse under what does not work, attributing it to UWP limitations. A mouse mode is available that moves the pointer using the gamepad instead.

### What are the build requirements for moonlight-xbox?

Windows 10, Visual Studio 2022 with the WinUI Application Development Workload, the Windows 10 SDK 10.0.19041.0, the Universal Windows Platform Tools and the C++ v141, v142 and v143 UWP tools. The SDK version is out of support as of Visual Studio 2022 version 17.10 but is still needed for CMake.

### Which features of moonlight-xbox work today?

The README lists connection and pairing, application list fetching, video streaming configurable per host, gamepad input with rumble, battery reporting and a mouse mode, keyboard support both on screen and with hardware, graceful disconnection, host configuration for resolution and bitrate with saved history, audio and HDR.

## Sources

- [Issues](https://github.com/TheElixZammuto/moonlight-xbox/issues)
- [License: GPL-3.0](https://github.com/TheElixZammuto/moonlight-xbox/blob/master/LICENSE)
- [README](https://github.com/TheElixZammuto/moonlight-xbox/blob/master/README.md)
- [Releases](https://github.com/TheElixZammuto/moonlight-xbox/releases)
- [TheElixZammuto/moonlight-xbox on GitHub](https://github.com/TheElixZammuto/moonlight-xbox)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/theelixzammuto-moonlight-xbox
