⚠️ This is a proof of concept. Intended for testing
TLDR: The host generates an invite code. The code is pasted into the web app and a P2P connection is established. Host sends video, client sends mouse/keyboard/gamepad inputs.
demo.mp4
Parsec & Sunsine are focused on enabling unattended remote access. This project only focuses on streaming your games while maintaining privacy.
Key differences:
- Supports display capture, window capture or game capture
- Fully portable host application - no install, and runs without elevated privileges
- Client is just a web app - send an invite code to your friend and they can play instantly.
- Control individual client keyboard/mouse/gamepad access
- Fully decentralized - there are no dedicated backend servers, meaning there is also no user accounts or user data.
- 🧩 ViGEmBus Driver (required for creating virtual gamepads)
- Download the latest build
- Extract and run
OGS.exe - Click "Create Client"
- Copy the Client invite code
- Paste the client invite code into the client app (https://opengamestream.pages.dev/)
You’re connected! 🎉
OpenGameStream uses MQTT brokers to negotiate a peer-to-peer connection via WebRtc. Any MQTT server can be used. The server will always be treated as untrusted and messages are encrypted end-to-end with an encryption key contained in the invite code.
- The host generates a base64-encoded invite code with:
- MQTT broker URL (and optional credentials)
- AES-256 encryption key
- Topics for signaling (publish/subscribe)
- The client pastes this code into the browser app
- A WebRTC connection is established using the MQTT server for signalling
Fully offline connections (no MQTT) are possible with manual signaling, however this requires the client to copy an answer code back to the host.
| Windows | Linux | MacOs | |||
|---|---|---|---|---|---|
| Nvidia GPU | ✅ | Nvidia GPU | ❌ | Nvidia GPU | ❌ |
| Intel GPU | ✅ | Intel GPU | ❌ | Intel GPU | ❌ |
| AMD GPU | ❌ | AMD GPU | ❌ | AMD GPU | ❌ |
| Display Capture | ✅ | Portal Capture | ❌ | ||
| Window Capture | ✅ | KMS capture | ❌ | ||
| Game (D3D11) Capture | ✅ | NvFBC capture | ❌ | ||
| Pipewire capture | ❌ |
🔧 Linux support is planned — stay tuned.
- C# / .NET 10 (compiled with Native AOT)
- FFmpeg.AutoGen (Custom build)
- DataChannelDotnet – WebRTC wrapper
- AvaloniaUI – Cross-platform UI
- ViGEmBus – Gamepad emulation (may be replaced)
- Client: React + static HTML