Free & Open Source Remote Cooperative Gaming System — Multi-Platform
Features • Our Story • Use Cases • Installation • How It Works • Architecture • Contributing • License
Big Remote Play was born from a real story of friendship, determination, and the passion for Free Software.
Alessandro e Silva Xavier (known as Alessandro) and Alexasandro Pacheco Feliciano (known as Pacheco) wanted to play games together on BigLinux using a feature that only existed on proprietary platforms like Steam Remote Play and GeForce NOW. The problem? These systems are proprietary, locked to their own ecosystems. If a game wasn't available on their platform, it was nearly impossible to play remotely with friends.
Refusing to accept this limitation, Alessandro and Pacheco embarked on a journey of countless attempts and extensive research. After trying many different approaches, they finally found a working solution by combining multiple free software programs — including Sunshine, Moonlight, scripts, and VPN tools. They had achieved what the proprietary platforms kept locked behind their walls, and the best part: it was Free Software and multi-platform!
Excited by their success, they started sharing their achievement during their live streams, which generated tremendous enthusiasm from the community. However, there was a catch — the setup was complicated. It required configuring multiple separate solutions: Sunshine, Moonlight, custom scripts, VPN connections... it was a lot for anyone to handle.
That's when a friend decided to step in and help develop a unified application to simplify the entire process. And so, Big Remote Play was born! 🎉
An all-in-one application that integrates everything you need for remote cooperative gaming — no proprietary platforms, no restrictions, no limits on which games you can play.
- One-click server — Start/stop the Sunshine streaming server directly from the UI
- Automatic game detection — Detects games from Steam, Lutris, and Heroic Launcher automatically
- Streaming settings — Configure resolution, FPS, bitrate, codec (H.264/H.265/AV1), monitor selection, and GPU selection
- Audio management — Hybrid audio streaming with simultaneous host + remote playback using PulseAudio
- PIN-based pairing — Secure connection flow with PIN code authentication
- Performance monitor — Real-time performance metrics dashboard
- Firewall configuration — Automatic firewall setup for required ports
- Secure credentials — Masked credential fields with copy-to-clipboard support
- Auto-discovery — Automatically finds Sunshine hosts on the network using Avahi/mDNS
- Manual connection — Connect by IP address with full IPv4 and IPv6 support
- PIN connection — Quick connect using a short PIN code
- Adaptive streaming — Automatic resolution and bitrate detection based on your device
- Moonlight integration — Seamless connection through Moonlight-QT client
- Built-in VPN setup — Create private networks using Headscale/Tailscale
- Step-by-step wizard — Guided setup with progress indicators
- Domain integration — Support for DigitalPlat Domain for easy domain setup
- Connection history — Save, manage, and reconnect to previous networks
- Share credentials — Export and share connection details with friends
- 29 languages supported including: English, Portuguese (BR), Spanish, German, French, Italian, Japanese, Korean, Chinese, Russian, and many more
- Automatic translation via gettext
- GTK 4 + Libadwaita — Modern, native Linux desktop experience
- Dark/Light theme support — Follows system preference or manual selection
- Responsive sidebar navigation — Clean, organized interface
- Service status indicators — Real-time status for all required services
Big Remote Play enables a variety of exciting scenarios:
| Scenario | Description |
|---|---|
| 🎮 Couch Co-op Online | Play with a friend (or more!) with only one copy of the game running on the host |
| 📱 Play on Mobile | Stream your PC games to your Android or iOS phone/tablet |
| 💻 Remote PC Gaming | Play your games from another computer anywhere in the world |
| 📺 Play on TV | Stream games to your TV using any Moonlight-compatible device |
| 🏠 LAN Party | Multiple friends connect to your PC over the local network |
| 🌍 Internet Gaming | Play with friends over the internet using the built-in VPN |
| 🎲 Any Game, Any Platform | Works with Steam, Lutris, Heroic, GOG, Epic — no restrictions! |
The package is available for Arch-based distributions:
# Clone the repository
git clone https://github.com/biglinux/big-remote-play.git
cd big-remote-play/pkgbuild
# Build and install
makepkg -si| Dependency | Purpose |
|---|---|
python |
Application runtime |
gtk4 |
GUI toolkit |
libadwaita |
GNOME/Adwaita widgets |
python-gobject |
Python GTK bindings |
python-cairo |
cairo graphics library bindings |
avahi |
Network service discovery (mDNS) |
curl |
HTTP requests (Sunshine API) |
iproute2 |
Network utilities |
sunshine-bin |
Game stream host server |
moonlight-qt |
Game stream client |
| Dependency | Purpose |
|---|---|
docker |
Private network (Headscale server) |
tailscale |
Private network VPN client |
# Clone the repository
git clone https://github.com/biglinux/big-remote-play.git
cd big-remote-play
# Run directly (development mode)
python3 usr/share/big-remote-play/main.pyBig Remote Play acts as a unified interface that orchestrates multiple open-source technologies:
┌─────────────────────────────────────────────────────┐
│ Big Remote Play (GTK4) │
├──────────────┬──────────────┬────────────────────────┤
│ Host View │ Guest View │ Private Network View │
├──────────────┴──────────────┴────────────────────────┤
│ Core Services │
├──────────────┬──────────────┬────────────────────────┤
│ ☀️ Sunshine │ 🌙 Moonlight │ 🔒 Headscale/Tailscale│
│ (Host) │ (Client) │ (VPN) │
└──────────────┴──────────────┴────────────────────────┘
- Open Big Remote Play
- Navigate to Host Server
- Configure your streaming settings (resolution, FPS, codec)
- Select which games to share
- Click Start Server
- Share your PIN or IP with your friends!
- Open Big Remote Play
- Navigate to Connect to Server
- Either:
- Select a discovered host from the list
- Enter the host's IP address manually
- Use a PIN code for quick connection
- Pair with the host and start playing!
- Set up a Private Network using the built-in wizard
- Share the connection credentials with your friend
- Both connect to the private network
- Connect as Host/Guest as usual — the VPN handles the rest!
big-remote-play/
├── 📁 usr/
│ ├── 📁 bin/
│ │ └── big-remote-play # Shell launcher script
│ └── 📁 share/
│ ├── 📁 applications/
│ │ └── big-remote-play.desktop # Desktop entry
│ ├── 📁 big-remote-play/
│ │ ├── main.py # Application entry point
│ │ ├── 📁 ui/ # User Interface
│ │ │ ├── main_window.py # Main window with sidebar nav
│ │ │ ├── host_view.py # Host server configuration
│ │ │ ├── guest_view.py # Guest client connection
│ │ │ ├── private_network_view.py # VPN/Private network setup
│ │ │ ├── performance_monitor.py # Real-time performance dashboard
│ │ │ ├── sunshine_preferences.py # Sunshine advanced settings
│ │ │ ├── moonlight_preferences.py # Moonlight advanced settings
│ │ │ ├── preferences.py # General app preferences
│ │ │ ├── installer_window.py # Dependency installer
│ │ │ └── style.css # Custom GTK4 styles
│ │ ├── 📁 host/ # Host module
│ │ │ └── sunshine_manager.py # Sunshine server management
│ │ ├── 📁 guest/ # Guest module
│ │ │ └── moonlight_client.py # Moonlight client wrapper
│ │ ├── 📁 utils/ # Utility modules
│ │ │ ├── audio.py # PulseAudio management
│ │ │ ├── config.py # Configuration management
│ │ │ ├── game_detector.py # Game detection (Steam/Lutris/Heroic)
│ │ │ ├── i18n.py # Internationalization
│ │ │ ├── icons.py # Icon utilities
│ │ │ ├── logger.py # Logging system
│ │ │ ├── network.py # Network discovery & tools
│ │ │ └── system_check.py # System dependency checker
│ │ ├── 📁 scripts/ # Shell scripts
│ │ │ ├── big-remoteplay-configure.sh
│ │ │ ├── big-remoteplay-firewall.sh
│ │ │ ├── big-remoteplay-install.sh
│ │ │ ├── big-remoteplay-service.sh
│ │ │ ├── configure_firewall.sh
│ │ │ ├── create-network_headscale.sh
│ │ │ ├── fix_sunshine_libs.sh
│ │ │ └── headscale_master.sh
│ │ └── 📁 icons/ # SVG/PNG icons
│ ├── 📁 icons/ # System icon theme
│ └── 📁 locale/ # Compiled translations
├── 📁 locale/ # Translation source files (.po/.pot)
├── 📁 pkgbuild/ # Arch Linux packaging
│ ├── PKGBUILD
│ └── pkgbuild.install
├── 📁 .github/
│ └── 📁 workflows/
│ └── translate-and-build-package.yml # CI/CD pipeline
├── COPYING # GPLv3 License
└── README.md # This file
| Component | Technology | Description |
|---|---|---|
| GUI Framework | GTK 4 + Libadwaita | Modern GNOME desktop UI |
| Language | Python 3 | Application logic |
| Streaming Host | Sunshine | High-performance game stream server |
| Streaming Client | Moonlight-QT | Open-source game stream client |
| Network Discovery | Avahi (mDNS) | Automatic host discovery on LAN |
| Audio | PulseAudio | Hybrid audio routing (host + remote) |
| VPN | Headscale / Tailscale | Private network for internet play |
| Packaging | PKGBUILD (Arch) | Distribution packaging |
| CI/CD | GitHub Actions | Automated translation & packaging |
| Module | Responsibility |
|---|---|
SunshineHost |
Start/stop/configure Sunshine server, manage apps, send PINs, API communication |
MoonlightClient |
Connect/disconnect Moonlight, pairing, host probing, app listing |
GameDetector |
Scan Steam, Lutris, and Heroic Launcher for installed games |
AudioManager |
PulseAudio sink management, hybrid audio (host + guest), streaming audio routing |
NetworkDiscovery |
Avahi-based host discovery, PIN resolution, IPv4/IPv6 support |
PrivateNetworkView |
Headscale VPN setup wizard, connection management, credential sharing |
We welcome contributions from the community! Here's how you can help:
Found a bug? Please open an issue with:
- Steps to reproduce
- Expected vs actual behavior
- System info (distro, GTK version, Sunshine/Moonlight version)
Help us reach more people! Translation files are in the locale/ directory. We currently support 29 languages but always welcome improvements:
- Fork the repository
- Edit or create a
.pofile inlocale/ - Submit a Pull Request
The translation template is at locale/big-remote-play.pot.
- Fork the repository
- Create a branch:
git checkout -b feature/my-feature - Make your changes
- Test your changes locally:
python3 usr/share/big-remote-play/main.py
- Commit:
git commit -m 'Add my feature' - Push:
git push origin feature/my-feature - Open a Pull Request
Have an idea to make the project better? Open an issue tagged as Enhancement or start a Discussion!
- 🎬 Demo Video: Watch on YouTube
- 🌐 Website: biglinux.com.br
| Name | Role | Contact |
|---|---|---|
| Rafael Ruscher | Lead Developer | rruscher@gmail.com |
| Alexasandro Pacheco Feliciano (Pacheco) | Co-Creator & Tester | @pachecogameroficial |
| Alessandro e Silva Xavier (Alessandro) | Co-Creator & Tester | @alessandro741 |
This project is licensed under the GNU General Public License v3.0 — see the COPYING file for details.
Big Remote Play
Copyright (C) 2026 BigLinux
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
- Sunshine — The amazing open-source game streaming host
- Moonlight — The outstanding open-source game streaming client
- BigLinux — The Linux distribution that inspired this project
- Headscale — Self-hosted Tailscale control server
- DigitalPlat — Domain services for the community
- The entire open-source gaming community for making this possible
We hope you enjoy it and help us by collaborating! 🚀
Made with ❤️ by the community, for the community.
Free Software — because gaming should have no walls.