RemoteController

command module
v0.0.0-...-3b4ec6f Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 21, 2025 License: GPL-3.0 Imports: 10 Imported by: 0

README ยถ

LibreRemotePlay logo banner

Ask DeepWiki

LibreRemotePlay

[!IMPORTANT]
The software for the moment is very experimental, may not always work an all systems. If you find a bug you can report it on issues page or discord.

An open source, free (as in freedom) and P2P alternative to Steam Remote Play

Use cases โœจ

Download ๐Ÿ“ฆ

Resources ๐Ÿ“š

Videos ๐Ÿ“น

(Note that videos may show older/beta versions of the APP and could have bugs that are already fixed in the latest version)

How to use

https://github.com/user-attachments/assets/f4a412fa-f403-4429-85fb-9c1e74bff458

Features ๐Ÿงฉ

  • Portable
  • Simple & Modern UI
  • Interactive Tutorial
  • Peer-to-Peer (WebRTC)
  • Groups
  • Remote Video Streaming
    • Video Quality Config
  • Browser Client
  • Localization (translation to multiple languages)
  • Support for custom STUN & TURN servers
  • Keyboard (Experimental)
  • Toogle Devices
  • EasyConnect
OS Support ๐Ÿ’ป
Windows Linux MacOS Browser (Only Client)
โœ” โœ” โŒ (No MacOS to test/develop) โœ” (Known Issues with Safari)
Gamepad Support ๐ŸŽฎ
PC Controller (XInput/DirectInput) Xbox Controller (XInput) PlayStation Controler
โœ” โœ” โŒ (But you can achieve emulating a Xbox Controller)
Available Languages ๐Ÿ” 
English Spanish Galician Russian French Other languages
โœ” โœ” โœ” โœ” โœ” (@Zorkyx22) โŒ› Looking for contributions

Self Hosting โ˜

There is no way to self-host the infrastructure of LibreRemotePlay 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 or the EasyConnectServer.

  • 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, so is not very usefull)

  • If you want to self-host an EasyConnectServer you can follow the docs of EasyConnectServer repo, this service is also packed in the desktop app and run in app startup but instead you can launch it along. EasyConnectServer is a signaling server that makes code passing in an automatic way.

Run Dev

Prerequisites
How to

Go to the root project folder and run

  • Full App :

    $ task dev-all

  • Frontend:

    $ task dev-front

Build

Prerequisites
How to

Go to the root project folder and run

  • For general builds:

    $ task build

  • For Windows builds:

    $ task build-win

  • For Linux builds:

    $ task build-linux

  • For Linux AppImage builds (experimental):

    $ task build-linux and then $ task build-linux-appimage

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

[!Note] Please note the supported platforms in the table

Contributting ๐Ÿค

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

Acknowledgements โค

These projects are making LibreRemotePlay a reality.

Thanks to jbdemonte/virtual-device

jbdemonte/virtual-device is the source of magic that enables LibreRemotePlay to generate virtual gamepads on Linux, is very fast and made in pure Go.

Thanks to the ViGEm project

ViGEmBus is the source of magic that enables LibreRemotePlay to generate virtual gamepads on Windows. We embed ViGEmBus Installation Wizard and ViGEmBus Client DLLS within the executable for Windows

Thanks to Wails

Wails makes easy creating desktop experiences using Go and Web tecnologies.

Thanks to pion/webrtc

Pion/Webrtc is a implementation of WebRTC made in pure Go, it enables LibreRemotePlay to use WebRTC in a crossplatform way.

Thanks to robotgo

robotgo makes easy controling/simulating a keyboard (and anything related to desktop) using a simple syntax in Go.

Did you like the project ๐Ÿ‘ ?

You can give us a star and join our Discord Community, the project is always looking for feedback :)

Star History

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

Documentation ยถ

The Go Gopher

There is no documentation for this package.

Directories ยถ

Path Synopsis
frontend
src
bin
bindings
Binding for JS to Go This package is responsible for the communication between the JS and Go code.
Binding for JS to Go This package is responsible for the communication between the JS and Go code.
net/http
HTTP server
HTTP server
net/webrtc
Package webrtc provides all the related functions for WebRTC communication
Package webrtc provides all the related functions for WebRTC communication
net/websocket
Websocket server
Websocket server

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL