The goal of this project is to support easily playing your Nintendo Switch remotely or locally via another device with a keyboard/mouse/controller/touchscreen. No hacking of your Switch is required.
You <===> Website <=====> Server <--Bluetooth--> Switch
| video capture via HDMI
'------------------------------ Streaming Server
One keyboard layout or gaming controller layout is supported to map input to the control sticks and the buttons on a Nintendo Switch controller. I've mainly tested this with Animal Crossing and Mixer - FTL low latency streaming. This is very much a work in progress right now but you can indeed play your Switch remotely using a keyboard/controller.
You can record and run macros. You do not need your Switch's video going through your PC to record and run macros. Just setting up the server to send commands via Bluetooth is enough.
The host (person setting this up) needs:
A Nintendo Switch
A Linux machine to host the service and connect via Bluetooth to the Switch (tested with a Raspberry Pi 4B) (a Linux machine is required by the code that actually connects to the Switch via Bluetooth: joycontrol)
(optional) A video capture card to see the video (or just have bad quality and lag by pointing your camera at your Switch and use a video chat app)
The client (your friend) needs:
A web browser to open the client and send commands
You can use the already hosted client but you may have to enable mixed content for that site in your browser's settings if the server your friend is hosting does not have SSL (a link that starts with https).
A keyboard or gaming controller
Support custom key bindings.
Improve macro support: naming, sharing, selecting, editing, etc.
Default layout options for common controllers.
Default key binding options for keyboard/mouse for certain games.
Loadable and exportable key binding configurations.
Support different streaming services (Mixer - FTL with low latency is supported).
server: a service to run on a device near your Switch (full API docs are there)
client: a website for your friends to "connect" to your Switch
A very special thank you to joycontrol for the very conveninent and full API and the acknowledgements there as well for so much of the great research into how to communicate with the Switch.