Skip to content

Repository files navigation

OpenNOW for Nintendo Switch

OpenNOW cloud logo

A native, controller-first GeForce NOW client for Nintendo Switch homebrew.

Browse your library, launch a cloud session, and play through an open-source client built for the Switch.

Download OpenNOW for Nintendo Switch OpenNOW documentation Join the OpenNOW Discord

GitHub stars GitHub downloads C++20

See it in action

OpenNOW Store on Nintendo Switch
Store
OpenNOW game library on Nintendo Switch
Library
OpenNOW game details on Nintendo Switch
Game details
OpenNOW cloud session launch on Nintendo Switch
Session launch

Warning

OpenNOW for Nintendo Switch is under active development. Expect occasional bugs, rough edges, and platform-specific issues while the client matures.

Important

OpenNOW is an independent community project and is not affiliated with, endorsed by, or sponsored by NVIDIA or Nintendo. A valid GeForce NOW account and a modded Nintendo Switch with Homebrew Menu are required.

Overview

OpenNOW is a native GeForce NOW client for Nintendo Switch homebrew. This repository contains the Switch launcher, streaming runtime, HOME-screen shortcut installer, host-side policy tests, and pinned build dependencies.

The client is designed around controller-first catalog browsing and native WebRTC streaming with low-latency input, H.264 video, Opus audio, NVDEC hardware decoding, and software-decoder fallback.

Download

Grab the latest build from OpenNOW-Switch Releases.

Install and setup guidance lives in the OpenNOW documentation. Nintendo Switch installation requires custom firmware and Homebrew Menu.

Note

The application currently retains the inherited SwitchNOW.nro filename and sdmc:/switch/SwitchNOW/ data directory for compatibility. Renaming either requires a deliberate migration of accounts, settings, shortcuts, and recovery data.

Build from source

The production target requires devkitPro, devkitA64, Switch portlibs, CMake, Ninja, and the pinned dependencies under extern/.

From PowerShell with MSYS2 and devkitPro installed:

.\build-switch.ps1

From a configured devkitPro MSYS2 shell:

bash scripts/build-switch-msys2.sh

The unified build produces:

build/switch/SwitchNOW.nro

It includes NVDEC hardware decoding and the software-decoder fallback; there is no separate NVDEC build flavor.

Create a release archive with:

.\scripts\package-release.ps1 -Version 0.0.6

Repository layout

.
├── app/src/                 Launcher, GFN client, streaming, input, and UI
├── app/shortcut/            Per-game shortcut chainloader
├── resources/               RomFS fonts, translations, icons, and UI assets
├── extern/                  Pinned third-party dependencies
├── tests/                   Host-side policy and parsing tests
├── scripts/                 Supported build and packaging entry points
└── tools/
    └── opennow-forwarder-installer/
                             HOME-screen forwarder installer

Development checks

Run the narrowest relevant host test first. A header-only test can be compiled with:

g++ -std=c++20 -Wall -Wextra -Werror -Iapp/src tests/<name>.cpp

Tests that exercise implementation files must compile those .cpp files and link their host dependencies. Host checks do not replace a devkitA64 Nintendo Switch build.

License

OpenNOW Switch is licensed under the MIT License.

Acknowledgements

This port is derived from SwitchNOW by Blade-Punisher.

Core dependencies include Borealis, libpeer, FFmpeg, libnx, deko3d, curl, Jansson, and zlib.

Third-party license and attribution files remain alongside their vendored components.

About

Native GeForce NOW client for Nintendo Switch homebrew with a controller-first UI and low-latency streaming.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages