SwitchNOW is a native Nintendo Switch homebrew client for GeForce NOW. It is
distributed as an .nro and combines a controller-first Borealis launcher with
native WebRTC signaling, H.264 video, Opus audio and low-latency input delivery.
[!IMPORTANT] SwitchNOW is an unofficial community project. It is not affiliated with or endorsed by NVIDIA or Nintendo. A valid GeForce NOW account is required, and game availability, session duration and queues depend on the selected NVIDIA membership and region.
| Component | Implementation |
|---|---|
| Target platform | Nintendo Switch homebrew / Horizon OS |
| Package | Native .nro application |
| UI | Borealis, controller-first navigation, touch support |
| Signaling and media | Secure WebSocket signaling and WebRTC with ICE |
| Video codec | H.264 |
| Video decoder | Tegra X1 NVDEC, software FFmpeg fallback, automatic safe mode |
| Stream presets | Safe: 720p30 at 8 Mbps; Balanced: 720p60 at 12 Mbps; Quality: 1080p60 at 20 Mbps |
| Custom bitrate steps | 8, 12, 16, 20 or 25 Mbps |
| Quality modes | Adaptive, Clarity and Original |
| Audio | Opus, 30-100 ms configurable buffer, 8x-16x gain options |
| Input | Xbox-compatible gamepad reports, relative mouse and keyboard over the stream data channel |
| Interface languages | English, Simplified Chinese, Spanish, Russian, Italian, French, Polish and Ukrainian |
| In-game languages | 30 selectable locale profiles, sent when supported by the game |
| Local data | sdmc:/switch/SwitchNOW/ |
Auto selects NVDEC first and falls back to software decoding if hardware
initialization fails or the previous hardware session did not shut down cleanly.
The app avoids building an unlimited frame backlog: on congestion it drops stale
work, requests a clean reference frame and resumes from the newest valid image.
| Input | Action |
|---|---|
| Left stick / D-pad | Move focus through buttons, settings and game tiles |
A | Select or activate the focused item |
B | Go back or close a dialog |
L / R | Switch between Store, Library and Settings |
Y | Open search in Store or Library |
ZL / ZR / X | Context actions shown in the toolbar, such as filter, sort and load more |
Vertical game-grid movement keeps the closest column instead of returning to the first tile in every row.
| Switch input | Xbox-compatible action sent to the game |
|---|---|
A, B, X, Y | Xbox face buttons according to the selected layout |
L / R | LB / RB |
ZL / ZR | Full-value LT / RT |
| Left / right stick | Left / right analog stick |
| Stick clicks | L3 / R3 |
| D-pad | Xbox D-pad |
- | View / Select |
Short + press | Menu / Start |
Hold + for at least 500 ms | Nexus / Guide |
ZL + ZR + - | Safely stop streaming and return to the game page |
The default Xbox layout maps the physical Switch positions to Xbox labels:
A -> B, B -> A, X -> Y, Y -> X. Select Switch in
Settings > Controls to send matching letters instead.
| Input | Action |
|---|---|
- + Y | Open the transparent in-stream keyboard |
A | Select a key / confirm inside the keyboard |
ZL | Send Esc to the remote game while the keyboard is open |
+ | Submit the entered text and close the keyboard |
B | Close the keyboard without submitting |
| Touch | Reposition the remote cursor to the touched point and perform a left click |
| Touch drag | Hold the left mouse button and move the remote cursor |
L + X in NTE | Start the configured Neverness to Everness auto-login sequence |
B during NTE auto-login | Cancel the sequence |
Game input is blocked while the keyboard or NTE login automation owns input, so typing cannot accidentally trigger gameplay actions.
Select the launcher language in Settings > Interface > Language and press X
to save. The in-game language is configured separately in Settings > Game.
Supported games can also preserve graphics options changed inside a stream.
Existing installations are migrated automatically from
sdmc:/switch/OpenNOWSwitch to sdmc:/switch/SwitchNOW on first launch.



SwitchNOW.nro and the icons to sdmc:/switch/SwitchNOW/.R while opening an
installed game.Application data, settings and optional debug logs are stored in
sdmc:/switch/SwitchNOW/.
C:\msys64, or an equivalent Unix/MSYS2 shell.devkitA64, Switch portlibs and CMake/Ninja.extern/.Build from PowerShell:
.\build-switch.ps1
Output:
build/switch/SwitchNOW.nro
Create a conventional release archive:
.\scripts\package-release.ps1 -Version 1.1.7
app/src/ Application, GFN API and streaming implementation
resources/ Fonts, icons and RomFS resources
extern/ Pinned third-party dependencies
tests/ Host-side policy and parsing tests
scripts/ Switch build and release packaging
CMakeLists.txt Switch build definition
build-switch.ps1 Windows build entry point
The repository contains no accounts, passwords, tokens, logs or device data. Saved credentials are created only at runtime on the user's SD card. Password storage is optional and uses the encrypted local credential vault.
SwitchNOW is free and open source. If you enjoy the project and would like to support its continued development, you can make an optional cryptocurrency contribution through NOWPayments.
Open the SwitchNOW contribution page
Contributions are entirely voluntary, are processed by the third-party NOWPayments service, and do not unlock features or create any obligation or warranty.
SwitchNOW would not exist without the following open-source projects. Reference projects inspired the architecture and user experience; they are not copied into or linked directly with the SwitchNOW binary.
The vendored Borealis and libpeer trees also contain components from GLFW, SDL, fmt, Tweeny, Yoga, NanoVG, tinyxml2, libromfs, switch-libpulsar, libsrtp, usrsctp, Mbed TLS, cJSON, FreeRTOS coreHTTP and FreeRTOS coreMQTT. Platform-specific and optional components are selected by the build configuration.
Each upstream project remains subject to its own license and copyright notices. This acknowledgement list does not replace the license files shipped with the source and dependency trees.
SwitchNOW is a native Nintendo Switch homebrew client for GeForce NOW. It is
distributed as an .nro and combines a controller-first Borealis launcher with
native WebRTC signaling, H.264 video, Opus audio and low-latency input delivery.
[!IMPORTANT] SwitchNOW is an unofficial community project. It is not affiliated with or endorsed by NVIDIA or Nintendo. A valid GeForce NOW account is required, and game availability, session duration and queues depend on the selected NVIDIA membership and region.
| Component | Implementation |
|---|---|
| Target platform | Nintendo Switch homebrew / Horizon OS |
| Package | Native .nro application |
| UI | Borealis, controller-first navigation, touch support |
| Signaling and media | Secure WebSocket signaling and WebRTC with ICE |
| Video codec | H.264 |
| Video decoder | Tegra X1 NVDEC, software FFmpeg fallback, automatic safe mode |
| Stream presets | Safe: 720p30 at 8 Mbps; Balanced: 720p60 at 12 Mbps; Quality: 1080p60 at 20 Mbps |
| Custom bitrate steps | 8, 12, 16, 20 or 25 Mbps |
| Quality modes | Adaptive, Clarity and Original |
| Audio | Opus, 30-100 ms configurable buffer, 8x-16x gain options |
| Input | Xbox-compatible gamepad reports, relative mouse and keyboard over the stream data channel |
| Interface languages | English, Simplified Chinese, Spanish, Russian, Italian, French, Polish and Ukrainian |
| In-game languages | 30 selectable locale profiles, sent when supported by the game |
| Local data | sdmc:/switch/SwitchNOW/ |
Auto selects NVDEC first and falls back to software decoding if hardware
initialization fails or the previous hardware session did not shut down cleanly.
The app avoids building an unlimited frame backlog: on congestion it drops stale
work, requests a clean reference frame and resumes from the newest valid image.
| Input | Action |
|---|---|
| Left stick / D-pad | Move focus through buttons, settings and game tiles |
A | Select or activate the focused item |
B | Go back or close a dialog |
L / R | Switch between Store, Library and Settings |
Y | Open search in Store or Library |
ZL / ZR / X | Context actions shown in the toolbar, such as filter, sort and load more |
Vertical game-grid movement keeps the closest column instead of returning to the first tile in every row.
| Switch input | Xbox-compatible action sent to the game |
|---|---|
A, B, X, Y | Xbox face buttons according to the selected layout |
L / R | LB / RB |
ZL / ZR | Full-value LT / RT |
| Left / right stick | Left / right analog stick |
| Stick clicks | L3 / R3 |
| D-pad | Xbox D-pad |
- | View / Select |
Short + press | Menu / Start |
Hold + for at least 500 ms | Nexus / Guide |
ZL + ZR + - | Safely stop streaming and return to the game page |
The default Xbox layout maps the physical Switch positions to Xbox labels:
A -> B, B -> A, X -> Y, Y -> X. Select Switch in
Settings > Controls to send matching letters instead.
| Input | Action |
|---|---|
- + Y | Open the transparent in-stream keyboard |
A | Select a key / confirm inside the keyboard |
ZL | Send Esc to the remote game while the keyboard is open |
+ | Submit the entered text and close the keyboard |
B | Close the keyboard without submitting |
| Touch | Reposition the remote cursor to the touched point and perform a left click |
| Touch drag | Hold the left mouse button and move the remote cursor |
L + X in NTE | Start the configured Neverness to Everness auto-login sequence |
B during NTE auto-login | Cancel the sequence |
Game input is blocked while the keyboard or NTE login automation owns input, so typing cannot accidentally trigger gameplay actions.
Select the launcher language in Settings > Interface > Language and press X
to save. The in-game language is configured separately in Settings > Game.
Supported games can also preserve graphics options changed inside a stream.
Existing installations are migrated automatically from
sdmc:/switch/OpenNOWSwitch to sdmc:/switch/SwitchNOW on first launch.



SwitchNOW.nro and the icons to sdmc:/switch/SwitchNOW/.R while opening an
installed game.Application data, settings and optional debug logs are stored in
sdmc:/switch/SwitchNOW/.
C:\msys64, or an equivalent Unix/MSYS2 shell.devkitA64, Switch portlibs and CMake/Ninja.extern/.Build from PowerShell:
.\build-switch.ps1
Output:
build/switch/SwitchNOW.nro
Create a conventional release archive:
.\scripts\package-release.ps1 -Version 1.1.7
app/src/ Application, GFN API and streaming implementation
resources/ Fonts, icons and RomFS resources
extern/ Pinned third-party dependencies
tests/ Host-side policy and parsing tests
scripts/ Switch build and release packaging
CMakeLists.txt Switch build definition
build-switch.ps1 Windows build entry point
The repository contains no accounts, passwords, tokens, logs or device data. Saved credentials are created only at runtime on the user's SD card. Password storage is optional and uses the encrypted local credential vault.
SwitchNOW is free and open source. If you enjoy the project and would like to support its continued development, you can make an optional cryptocurrency contribution through NOWPayments.
Open the SwitchNOW contribution page
Contributions are entirely voluntary, are processed by the third-party NOWPayments service, and do not unlock features or create any obligation or warranty.
SwitchNOW would not exist without the following open-source projects. Reference projects inspired the architecture and user experience; they are not copied into or linked directly with the SwitchNOW binary.
The vendored Borealis and libpeer trees also contain components from GLFW, SDL, fmt, Tweeny, Yoga, NanoVG, tinyxml2, libromfs, switch-libpulsar, libsrtp, usrsctp, Mbed TLS, cJSON, FreeRTOS coreHTTP and FreeRTOS coreMQTT. Platform-specific and optional components are selected by the build configuration.
Each upstream project remains subject to its own license and copyright notices. This acknowledgement list does not replace the license files shipped with the source and dependency trees.