/RemoteController

✨ Steam Remote Play 🎮 Alternative powered by P2P 🌐 and the Web

Primary LanguageGoGNU General Public License v3.0GPL-3.0

Gamepad Remote Controller

An open source & decentralized alternative to Steam remote play (No need to self host)

⌛ Looking for contributions 👈

Use cases ✨

  • Play with friends online
  • Enjoy videogames from other devices using your gamepad

The limit is in your imagination ...

Example Image from the Desktop APP

Download 📦

Guides 📘

Resources 📚

Features 🧩

  • Portable
  • Simple & Modern UI
  • P2P "Decentralized" (WebRTC)
  • Remote Streaming
  • Browser Client
  • Support for keyboard
  • ViGEmBus Setup (Windows)
  • Localization (translation to multiple languages)
  • Support for STUN & TURN

OS Support 💻

Windows Linux MacOS Browser (Only Client)
(Only keyboard)⌛ Looking for contributions for Gamepad ✔ (Known Issues with Safari)

Gamepad Support 🎮

PC Controller (XInput/DirectInput) Xbox Controller (XInput) PlayStation Controler

Translations 🔠

English Spanish Galician Other languages
100% ✔ 100% ✔ 100% ✔ ⌛ Looking for contributions

Self Hosting ☁

There is no way to self-host the infrastructure of RemoteController because it has no backend. But instead you can self-host if you want the TURN & STUN servers and then add them to the config.

  • If you want to self-host a TURN/STUN server you can try Coturn. (This is only an example, you can choose other STUN/TURN implementations)

  • Also you can host the Web version (but it is only frontend) to make like a network of Remote Controller web clients

Build

Prerequisites

You must have Wails CLI, NodeJS, npm and Golang installed.

How to

First go to the frontend folder and run

$ npm install
$ npm run build

Now run the following command on the root directory of the main project:

$ wails build

finally go to the build/bin folder and your executable will be there.

Note

Please note the supported platforms in the table

How it works 👷‍♂️

This desktop APP is based on the WebRTC 🎞 standard and it uses the power of Go to communicate 🗣 with the Gamepad emulation libraries. In Windows uses the ViGEm Bus Driver with the ViGEm Client DLL

For the low level actions uses Go. On the other hand the UI works with Web technologies (WASM, Sveltekit, Tailwind, DaisyUI & Typescript)

You can learn more about how it works under the hood all the project

Contributting 🤝

If you are interested to contribute to this project you can follow this guide

Thanks to the ViGEm project ♥

ViGEmBus is making this project a reallity. We embed ViGEmBus Installation Wizard and ViGEmBus Client DLLS within the executable for Windows

Did you like the project 👍 ?

You can give a star and review us on Product Hunt

Remote Controller - Play LOCAL co-op games ONLINE | Product Hunt

Star History

Here you can see how fast the community is growing
Star History Chart