{"id":15426890,"url":"https://github.com/juharris/switch-remoteplay","last_synced_at":"2025-04-07T13:06:33.880Z","repository":{"id":39100969,"uuid":"260583841","full_name":"juharris/switch-remoteplay","owner":"juharris","description":"NOT AN OFFICIAL NINTENDO PRODUCT - Control your Switch remotely (no hacking required)","archived":false,"fork":false,"pushed_at":"2023-03-04T22:11:08.000Z","size":2445,"stargazers_count":293,"open_issues_count":28,"forks_count":19,"subscribers_count":13,"default_branch":"main","last_synced_at":"2025-03-31T11:05:10.959Z","etag":null,"topics":["bluetooth","emulated-controller","nintendo-switch","remote-play"],"latest_commit_sha":null,"homepage":"https://jubuntu.eastus.cloudapp.azure.com/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/juharris.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-05-02T00:16:18.000Z","updated_at":"2025-03-01T22:43:21.000Z","dependencies_parsed_at":"2024-10-21T18:36:34.728Z","dependency_job_id":null,"html_url":"https://github.com/juharris/switch-remoteplay","commit_stats":{"total_commits":55,"total_committers":6,"mean_commits":9.166666666666666,"dds":0.2545454545454545,"last_synced_commit":"3a2d11badfac9868ac27a2d8ae6bf2efbc0bd9d4"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juharris%2Fswitch-remoteplay","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juharris%2Fswitch-remoteplay/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juharris%2Fswitch-remoteplay/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juharris%2Fswitch-remoteplay/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/juharris","download_url":"https://codeload.github.com/juharris/switch-remoteplay/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247657277,"owners_count":20974344,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bluetooth","emulated-controller","nintendo-switch","remote-play"],"created_at":"2024-10-01T17:58:16.548Z","updated_at":"2025-04-07T13:06:33.861Z","avatar_url":"https://github.com/juharris.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"NOT OFFICIALLY SUPPORTED OR INVOLVED WITH NINTENDO IN ANY WAY\n\nThis is an independent project.\n\n# Switch Remote Play\n\n| Tests | ![Server](https://github.com/juharris/switch-remoteplay/workflows/Server%20Test/badge.svg) | ![Client](https://github.com/juharris/switch-remoteplay/workflows/Client%20Test/badge.svg) |\n| - | - | - |\n\nThe goal of this project is to support **easily** playing your Nintendo Switch remotely or locally via another device with a keyboard/mouse/controller/touchscreen.\nNo hacking of your Switch is required.\n\nSetup:\n```\nYou \u003c===\u003e Website \u003c=====\u003e Server \u003c--Bluetooth--\u003e Switch\n            ^                                      |\n            |                            video capture via HDMI\n            |                                      |\n            |                                      v\n            '------------------------------ Streaming Server\n```                                           \n\nExample [video](https://youtu.be/EIofCEfQA1E) of someone playing my Switch **from another city**.\n\nExample [video](https://youtu.be/TJlWK2HU8Do) of me using an **Xbox controller (that does not have Bluetooth)** to play my Switch.\n\nExample [video](https://youtu.be/viv-B_A-A2o) of recording and running a **macro**.\n\nFor more videos, check out this [playlist](https://www.youtube.com/playlist?list=PLfC95bU1D4gpJEM3SYfzaI2e5vD0q7v0z).\n\n# Status\nOne keyboard layout, gaming controller layout, using you mouse, or touchscreen is supported to map input to the control sticks and the buttons on a Nintendo Switch controller.\nI've mainly tested this with Animal Crossing and Mixer - FTL low latency streaming.\n\n# Macros\nYou can record and run **macros**!\nYou do not need your Switch's video going through your PC to record and run macros.\nJust setting up the server (Linux device with Bluetooth) to send commands via Bluetooth to your nearby Switch is enough.\nThen you can record, modify, manage, and **play** your macros from a PC or even your phone.\n\nSee the supported commands [here](/server#api).\n\n# Requirements\nThe host (person setting this up) needs:\n* A Nintendo Switch\n* 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][joycontrol]). See the [server page](/server) to learn how to set this up.\n* (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)\n\nThe client (your friend) needs:\n* A web browser to open the client and send commands\n  * You can use the already [hosted client][client] but you may have to enable mixed content for that site in your browser's settings if the server your friend is hosting to connect to their Switch does not use SSL (a link that starts with https).\n* A keyboard or **gaming controller** is recommended or just use your mouse/touchscreen for simple stuff\n* (optional) See [this folder](/website-client) if you want to customize or run your own client\n\n# Plans\n* Support custom key bindings.\n* Improve macro support: exporting/importing.\n* Default layout options for common controllers.\n* Default key binding options for keyboard/mouse for certain games.\n* Loadable and exportable key binding configurations.\n* Support different streaming services (Mixer - FTL with low latency is supported).\n* See [enhancements](https://github.com/juharris/switch-remoteplay/issues?q=is%3Aopen+is%3Aissue+label%3Aenhancement) and [help wanted](https://github.com/juharris/switch-remoteplay/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22)\n\n# Looking for Help\nI'm looking for help with implementing the above plans. Some more specific things:\n* Add security options to the service: auth, allowed origins, disabling buttons like Home and screen capture, limiting the number of clients connected.\n* Getting the service to run on Windows (hard since the libraries I'm relying on require Linux)\n* Improve macro support: a nicer editor\n* Improving the client UX\n* Mapping controller, keyboards, and mice for game specific controls (once custom bindings are supported)\n* Phone apps to talk to the Switch and host the service instead of the a Linux machine.\n\n# Acknowledgements\nA very special thank you to [joycontrol][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.\n\n[client]: https://jubuntu.eastus.cloudapp.azure.com\n[joycontrol]: https://github.com/mart1nro/joycontrol\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjuharris%2Fswitch-remoteplay","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjuharris%2Fswitch-remoteplay","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjuharris%2Fswitch-remoteplay/lists"}