https://github.com/piterweb/libreremoteplay
โจ Free and OpenSource Steam Remote Play ๐ฎ Alternative powered by WebRTC ๐and Web APIs
https://github.com/piterweb/libreremoteplay
controller game-stream game-streaming gamepad gaming gaming-software golang libreremoteplay p2p pion remote remote-controller svelte sveltekit vigem wails webrtc windows-app windows-desktop xinput
Last synced: about 2 months ago
JSON representation
โจ Free and OpenSource Steam Remote Play ๐ฎ Alternative powered by WebRTC ๐and Web APIs
- Host: GitHub
- URL: https://github.com/piterweb/libreremoteplay
- Owner: PiterWeb
- License: gpl-3.0
- Created: 2023-08-22T15:23:15.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-03-07T21:15:15.000Z (3 months ago)
- Last Synced: 2025-03-07T22:19:17.598Z (3 months ago)
- Topics: controller, game-stream, game-streaming, gamepad, gaming, gaming-software, golang, libreremoteplay, p2p, pion, remote, remote-controller, svelte, sveltekit, vigem, wails, webrtc, windows-app, windows-desktop, xinput
- Language: TypeScript
- Homepage: https://remote-controller.vercel.app/
- Size: 28.3 MB
- Stars: 92
- Watchers: 2
- Forks: 5
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- Funding: FUNDING.yml
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
Awesome Lists containing this project
README

# LibreRemotePlay
### An open source, free (as in freedom) and P2P alternative to Steam Remote Play- Website ๐: https://libreremoteplay.vercel.app/
- Wiki ๐: https://github.com/PiterWeb/LibreRemotePlay/wiki
- Discord Community ๐ฅ: https://discord.gg/v7qd7nU3fJ
- Series of WebRTC Articles ๐จโ๐ป: https://dev.to/piterweb/series/30718
## Use cases โจ
- Share your local co-op games online with friends (as [Steam Remote Play Together](https://store.steampowered.com/remoteplay?l=english#together))
- Stream your games from your PC to other devices (as [Steam Remote Play Anywhere](https://store.steampowered.com/remoteplay?l=english#anywhere))## Download ๐ฆ
- https://github.com/PiterWeb/LibreRemotePlay/releases/latest
## Resources ๐
- [Docs](./docs/) ๐
- [Linux Docs](./docs/LINUX.md) ๐
- [Wiki](https://github.com/PiterWeb/LibreRemotePlay/wiki) (Guides, FAQ, ...)
- [Discord Community](https://discord.gg/v7qd7nU3fJ)### 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 ๐งฉ
- [x] Portable
- [x] Simple & Modern UI
- [x] Interactive Tutorial
- [x] Peer-to-Peer (WebRTC)
- [ ] Groups
- [x] Remote Video Streaming
- [ ] Video Quality Config
- [x] Browser Client
- [x] Localization (translation to multiple languages)
- [x] Support for custom STUN & TURN servers
- [ ] Keyboard
- [ ] Toogle Devices### 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](https://github.com/Ryochan7/DS4Windows)) |### 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.
- If you want to self-host a TURN/STUN server you can [try Coturn](https://github.com/coturn/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)
## Run Dev
### Prerequisites
You must have [Task CLI](https://taskfile.dev/installation/), [Wails CLI](https://wails.io/docs/gettingstarted/installation#installing-wails), [NodeJS (~v20.x.x)](https://nodejs.org/en/download), [pnpm](https://pnpm.io/es/installation) and [Golang (min v1.22.4)](https://go.dev/doc/install) installed.
### How to
Go to the root project folder and run
- Full App :
`$ task dev-all`
- Frontend:
`$ task dev-front`
## Build
### Prerequisites
You must have [Task CLI](https://taskfile.dev/installation/), [Wails CLI](https://wails.io/docs/gettingstarted/installation#installing-wails), [NodeJS (~v20.x.x)](https://nodejs.org/en/download), [pnpm](https://pnpm.io/es/installation) and [Golang (min v1.22.4)](https://go.dev/doc/install) installed.
### 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`
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](./CONTRIBUTING.md)
## Acknowledgements โค
These projects are making LibreRemotePlay a reality.### Thanks to jbdemonte/virtual-device
[jbdemonte/virtual-device](https://github.com/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](https://github.com/nefarius/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](https://github.com/wailsapp/wails) makes easy creating desktop experiences using Go and Web tecnologies.### Thanks to pion/webrtc
[Pion/Webrtc](https://github.com/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](https://github.com/go-vgo/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](https://discord.gg/v7qd7nU3fJ), the project is always looking for feedback :)## Star History
Here you can see how fast the community is growing
[](https://star-history.com/#PiterWeb/LibreRemotePlay&Timeline)