High-performance Nintendo Switch file transfer system with modern GUI.
Inspired by DBI - The original Nintendo Switch installer
- 🚀 Fast Transfers - ~45 MB/s over USB
- 🎨 Modern GUI - Beautiful dark theme with card-based design
- 📁 File Library - Database-backed with favorites and search
- 📊 Real-time Progress - Speed, ETA, and transfer stats
- 🔄 Queue System - Batch transfer multiple files
- 📱 Clean UI - ANSI-based terminal interface
- ⬇️ Fast Downloads - 1MB chunk transfers
- ❌ Cancel Support - Press B to cancel with confirmation
- 📜 File Browser - Navigate with D-Pad, page with L/R
PC (Backend):
# Linux
sudo apt-get install libusb-1.0-0-dev
# Build
cargo build --release
./target/release/switchlink-backendNintendo Switch (Client):
- Download
switchlink-client.nrofrom Releases - Copy to
/switch/folder on SD card - Launch from Homebrew Menu
- PC: Start SwitchLink Backend, add files to queue
- Switch: Launch SwitchLink Client
- Connect: USB cable between PC and Switch
- Transfer: Select files on Switch to download
Get the latest release from GitHub Releases:
| Platform | File |
|---|---|
| Linux | switchlink-backend-linux-x64 |
| Windows | switchlink-backend-windows-x64.exe |
| macOS Intel | switchlink-backend-macos-x64 |
| macOS ARM | switchlink-backend-macos-arm64 |
| Nintendo Switch | switchlink-client.nro |
switchlink/
├── src/ # Backend (Rust)
│ ├── main.rs
│ ├── gui.rs # eGUI interface
│ ├── usb.rs # USB communication
│ ├── protocol.rs # Protocol implementation
│ └── database.rs # File library
├── switch-client/ # Client (C++)
│ ├── source/
│ │ ├── main.cpp # UI and main loop
│ │ └── usb_client.cpp # USB communication
│ └── Makefile
└── Cargo.toml
cargo build --release# Requires devkitPro
cd switch-client
makeMIT License - Copyright (c) 2025 Bundit Nuntates
- ⭐ Star this repository
- 🐛 Report bugs
- ☕ Buy me a coffee
Made with ❤️ and Rust 🦀
