My Switch spent the entire Switch 2 era in a drawer. Pulled it out last week and discovered I had forgotten almost everything. Not "bit rusty" forgotten. "What's a payload again" forgotten. 
Getting back up to speed went faster than I deserved - in 2024 that would've been three evenings of forum archaeology, now its twenty minutes of asking a language model embarrassing questions. First Deepsea wanted Atmosphere updated before it would cooperate (because i fucked it up before with a too new version of Hekate and a web rcm tool).
Then I went looking at the usual host-side tools and found that a few of them have picked up... opinions. README manifestos, language politics, that sort of thing. I wanted to move a file over USB. I don't need a worldview bundled with it.
So instead of just using the perfectly functional Python script like an adult, I wrote an entire macOS app.
It does two things:
- USB installs to Sphaira - drag NSP/XCI/NSZ/XCZ in, it queues them, shows real progress with speed and ETA, and actually tells you when the console skipped a file instead of just sitting there. No Python, no venv, no pip install roulette.
- RCM payload injection for unpatched V1 consoles - Hekate and Fusée presets that pull the official releases from GitHub and check the SHA-256 before anything happens. Nothing gets injected until you press the button.
GPL-3.0, no telemetry, no manifesto in the README. Its adhoc signed, so Gatekeeper will complain once on first launch (right-click -> Open).
Or build it yourself: brew install libusb, open the Xcode project, thats it.
Apple Silicon, macOS 26+.
https://github.com/Marvbuster/sphaira-connect
Bug reports very welcome, especially from anyone with hardware I dont own.
Getting back up to speed went faster than I deserved - in 2024 that would've been three evenings of forum archaeology, now its twenty minutes of asking a language model embarrassing questions. First Deepsea wanted Atmosphere updated before it would cooperate (because i fucked it up before with a too new version of Hekate and a web rcm tool).
Then I went looking at the usual host-side tools and found that a few of them have picked up... opinions. README manifestos, language politics, that sort of thing. I wanted to move a file over USB. I don't need a worldview bundled with it.
So instead of just using the perfectly functional Python script like an adult, I wrote an entire macOS app.
It does two things:
- USB installs to Sphaira - drag NSP/XCI/NSZ/XCZ in, it queues them, shows real progress with speed and ETA, and actually tells you when the console skipped a file instead of just sitting there. No Python, no venv, no pip install roulette.
- RCM payload injection for unpatched V1 consoles - Hekate and Fusée presets that pull the official releases from GitHub and check the SHA-256 before anything happens. Nothing gets injected until you press the button.
GPL-3.0, no telemetry, no manifesto in the README. Its adhoc signed, so Gatekeeper will complain once on first launch (right-click -> Open).
Or build it yourself: brew install libusb, open the Xcode project, thats it.
Apple Silicon, macOS 26+.
https://github.com/Marvbuster/sphaira-connect
Bug reports very welcome, especially from anyone with hardware I dont own.
- Change log
- First release here. 1.2 adds a large remaining-time countdown while a transfer or injection is running, and RCM injection now tracks throughput properly. 1.1 added the whole RCM mode with Hekate/Fusée presets. Also fixed two reporting bugs along the way: a completed install could get flagged as "skipped" because of container padding, and a fully successful batch could still show "transfer incomplete".