A standalone, open-source Xbox Cloud Gaming (xCloud) client for the Nintendo Switch (homebrew). Sign in with your Microsoft account and stream your Game Pass library natively — WebRTC connection, hardware H.264 decoding and GPU rendering are all done on the console, with no companion apps or PCs involved.
Fully working: sign-in, game library with box art and search, and smooth 720p / 1080p / 1080p HQ streaming with audio and full controller input.
- Microsoft device-code sign-in (no password typed on console); tokens cached on SD
- Game library with box-art covers, quality settings, and search that covers the whole xCloud catalog — titles you cannot stream yet are flagged with what they need (Game Pass, ad-supported), and a game that is not on xCloud at all says so instead of "nothing found"
- Native WebRTC streaming: ICE (Teredo), DTLS-SRTP, SCTP data channels, RTP video/audio, NACK/PLI recovery — implemented on-console
- Hardware H.264 decoding (NVDEC via FFmpeg's NVTEGRA hwaccel) with zero-copy GPU rendering (deko3d) — the decoded surface goes straight from the decoder to the screen
- Opus audio, 60 fps video, three quality tiers (720p / 1080p / 1080p HQ)
- Ad-supported streaming for free-to-play titles: no subscription needed, streamed from Microsoft's ad-supported offering (sessions are capped by the server, and the console tells you before you start)
- A Nintendo Switch running the Atmosphère custom firmware
- An Xbox Game Pass subscription for the subscription catalog — every tier (Essential, Premium, Ultimate) includes Cloud Gaming; Ultimate streams the largest catalog at the highest quality. Games you already own stream without one, and so do free-to-play titles offered with ads
- A 5 GHz Wi-Fi connection is recommended
- Copy
green-nx.nrotosdmc:/switch/on your SD card. - Launch in title mode — hold R while starting an installed game. (Applet mode does not have enough memory for hardware video decoding.)
- Sign in once with the device code shown on screen (
microsoft.com/link). Tokens and the game list are cached insdmc:/switch/green-nx/.
| Context | Buttons |
|---|---|
| Library | Left stick / d-pad move · A play · Y search · X refresh · ZL settings · - sign out · + exit |
| Settings | Stream quality (720p / 1080p / 1080p HQ) · button layout (positional / labels) |
| In stream | Xbox controls mapped from the Switch pad · hold - + + to quit |
No local toolchain needed — everything builds inside the
devkitpro/devkita64 Docker image:
# 1. Build the WebRTC dependencies once (libpeer, libsrtp, usrsctp, mbedTLS)
bash deps/build-switch.sh
# 2. Build the app
docker run --rm -v "$PWD":/src -w /src devkitpro/devkita64 makeThe result is green-nx.nro. A small desktop harness
(make -f Makefile.pc) builds the core (auth/catalog/signaling) for
development on a PC:
./build/pc/greennx login # device-code sign-in
./build/pc/greennx games # the playable library, with names
./build/pc/greennx search cyberpunk # the whole catalog, with availability
./build/pc/greennx stream-test FORTNITE --ads # ad-supported offeringsrc/core/ auth, catalog, HTTP, xCloud session + protocol
src/switch/ UI (SDL2), covers, input
src/switch/stream/ streaming engine: WebRTC glue, RTP jitter buffer,
NVDEC decoder, deko3d zero-copy renderer, Opus audio
shaders/ deko3d video shaders (compiled by uam during make)
deps/ build script + patches for the WebRTC stack
green-nx builds on these open-source projects:
| Project | License | Use |
|---|---|---|
| libpeer (patched) | MIT | WebRTC: ICE / DTLS-SRTP / SCTP |
| libsrtp | BSD-3 | SRTP encryption |
| usrsctp | BSD-3 | SCTP data channels |
| mbedTLS | Apache-2.0 | TLS / DTLS crypto |
| FFmpeg (devkitPro build with averne's NVTEGRA hwaccel) | LGPL-2.1+ | H.264 hardware decoding |
| deko3d | zlib | GPU rendering |
| SDL2, SDL2_ttf, SDL2_image | zlib | UI rendering, input |
| Opus | BSD-3 | Audio decoding |
| libcurl | curl | HTTPS |
| nlohmann/json | MIT | JSON |
| devkitPro / libnx | various | Switch toolchain and OS interface |
The patches applied to libpeer (keyframe requests, NACK, receiver reports,
REMB, data-channel fixes, Switch port) are in deps/patches/.
green-nx is a fun, experimental, non-commercial hobby project, provided as-is for personal use. It is not affiliated with, endorsed by, or supported by Microsoft or Nintendo in any way. Xbox, Xbox Cloud Gaming and Game Pass are trademarks of Microsoft. Nintendo Switch is a trademark of Nintendo. You need your own valid Game Pass subscription; this project only implements a client for a service you already pay for.