OpenStroid is an unofficial, open-source Boosteroid client for Nintendo Switch. It uses the native Android TV streaming route to provide QR login, the user's game library, server preferences, video, audio, and complete controller input directly on the console.
Warning
OpenStroid v0.8.0 is a working beta. It can log in, launch a Boosteroid machine, display and play the stream, and send Switch controller input, but bugs and service-side compatibility changes are still possible.
Important
v0.8.0 is the first public, usable Nintendo Switch release. Earlier Switch builds (v0.2-v0.7) were internal development prototypes with incomplete login, library, streaming, or controller support. They are not published or supported and should not be used.
OpenStroid is an independent community project. It is not affiliated with, endorsed by, or sponsored by Boosteroid or Nintendo. Boosteroid and Nintendo Switch are trademarks of their respective owners. You must use your own Boosteroid account and subscription.
- QR device login through the official Boosteroid authorization flow.
- Locally persisted session, with logout from the application.
- Boosteroid library with cover artwork and paginated navigation.
- Virtual-machine request, queue status, and session launch on Switch.
- Preferred Boosteroid server location for account tiers that support it.
- Option to allow or block distant regions.
- Native Android TV gateway negotiation.
- H.264 video over native UDP, AES-CBC decryption, packet reconstruction, and hardware-backed presentation through deko3d/NVDEC-compatible decoding.
- Stream audio on Switch.
- Complete controller support: A/B/X/Y, L/R, ZL/ZR, Plus/Minus, D-pad, diagonals, both analog sticks, stick clicks, and Joy-Con SL/SR shoulders.
- Two face-button layouts:
- Nintendo: the printed A/B/X/Y labels are preserved.
- Xbox: A/B and X/Y are swapped to match the physical Xbox diamond.
- Detailed local diagnostic logs without writing the signed gateway query.
- A Nintendo Switch capable of running homebrew.
- Full-memory Homebrew Menu access using title takeover. Applet/Album mode is not supported for streaming.
- A Boosteroid account with access to the games you want to launch.
- A stable Wi-Fi or Ethernet connection.
- Download
OpenStroid_v0.8.nrofrom the v0.8.0 release. - Create
sdmc:/switch/OpenStroid/on the SD card. - Copy the downloaded file to
sdmc:/switch/OpenStroid/OpenStroid.nro. - Hold R while opening an installed game to enter Homebrew Menu with title takeover, then start OpenStroid.
- Scan the QR code, authorize the device on Boosteroid, select a game, and press A.
See switch/INSTALL_SWITCH.md for controls, configuration, and diagnostics.
Open Configuration with Minus, choose A / B / X / Y layout, and select one of these modes:
| Switch button | Nintendo mode | Xbox physical mode |
|---|---|---|
| A (right) | A | B |
| B (bottom) | B | A |
| X (top) | X | Y |
| Y (left) | Y | X |
The Nintendo HOME and Capture buttons are reserved by the operating system and are not exposed to ordinary homebrew applications. All game-facing controls made available by libnx are mapped.
The Switch client is in switch/ and uses devkitA64/libnx, SDL2, deko3d,
FFmpeg, Opus, mbedTLS, libpeer, usrsctp, and libsrtp.
Build the streaming dependencies with Docker and then compile the NRO inside a devkitPro/devkitA64 environment:
cd switch
bash deps/build-switch.sh
make -j4The result is switch/OpenStroid_v0.8.nro. The dependency build script fetches
and cross-compiles its upstream projects; generated libraries and build
outputs are intentionally excluded from Git.
OpenStroid writes:
sdmc:/switch/OpenStroid/openstroid.logfor application and login activity.sdmc:/switch/OpenStroid/stream.logfor the latest streaming attempt.sdmc:/switch/OpenStroid/stream-prev.logfor the preceding attempt.sdmc:/switch/OpenStroid/settings.jsonfor local preferences.sdmc:/switch/OpenStroid/session.jsonfor account tokens.
Never share session.json. When reporting a streaming problem, attach
stream.log only after reviewing it for personal information.
- Boosteroid does not provide an official public Nintendo Switch SDK, so a service-side protocol change may require an OpenStroid update.
- H.264 is the supported video path in this release.
- Server selection depends on the capabilities of the user's Boosteroid tier.
- Real-device testing is required; desktop builds do not reproduce Switch networking, controller, decoder, or deko3d behavior.
Bug reports and focused pull requests are welcome. Include the OpenStroid
version, Switch setup, selected server mode, reproduction steps, and a sanitized
stream.log. Do not include account tokens or signed gateway URLs.
OpenStroid is licensed under the Apache License 2.0. Third-party components retain their respective licenses; see THIRD_PARTY_NOTICES.md.
