https://github.com/profullstack/pairux.com
Collaborative screen sharing with simultaneous remote control โ like Screenhero, but open source.
https://github.com/profullstack/pairux.com
jitsi meet p2p screenhero screensharing teams webex webrtc zoom
Last synced: 6 days ago
JSON representation
Collaborative screen sharing with simultaneous remote control โ like Screenhero, but open source.
- Host: GitHub
- URL: https://github.com/profullstack/pairux.com
- Owner: profullstack
- License: mit
- Created: 2026-01-22T11:24:24.000Z (21 days ago)
- Default Branch: master
- Last Pushed: 2026-01-28T08:38:42.000Z (15 days ago)
- Last Synced: 2026-01-28T23:44:31.090Z (15 days ago)
- Topics: jitsi, meet, p2p, screenhero, screensharing, teams, webex, webrtc, zoom
- Language: TypeScript
- Homepage: https://pairux.com
- Size: 1.14 MB
- Stars: 2
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Security: docs/SECURITY.md
Awesome Lists containing this project
README
PairUX
Collaborative screen sharing with simultaneous remote control
Like Screenhero, but open source.
[](LICENSE)
[](CONTRIBUTING.md)
---
## โจ Features
- ๐ฅ๏ธ **Real-time screen sharing** โ Low-latency WebRTC streaming
- ๐ฎ **Remote control** โ Mouse + keyboard with explicit host approval
- ๐ฅ **Simultaneous input** โ Host and viewer can control at the same time
- ๐ **Secure by design** โ E2E encrypted, media never touches servers
- ๐ **PWA Viewer** โ Join sessions from any browser, installable as an app
- ๐ป **Cross-platform** โ macOS, Windows, Linux desktop apps
- ๐ฆ **Easy install** โ Available via Homebrew, WinGet, APT, and more
---
## ๐ Quick Start
### Install the Desktop App (Host)
macOS
**Homebrew** (Recommended)
```bash
brew tap profullstack/homebrew-pairux
brew install --cask pairux
```
**Direct Download**
- [PairUX-x.x.x-arm64.dmg](https://github.com/profullstack/pairux.com/releases/latest) (Apple Silicon)
- [PairUX-x.x.x-x64.dmg](https://github.com/profullstack/pairux.com/releases/latest) (Intel)
Windows
**WinGet** (Recommended)
```powershell
winget install PairUX.PairUX
```
**Scoop**
```powershell
scoop bucket add pairux https://github.com/profullstack/scoop-pairux
scoop install pairux
```
**Chocolatey**
```powershell
choco install pairux
```
**Direct Download**
- [PairUX-x.x.x-x64.exe](https://github.com/profullstack/pairux.com/releases/latest)
Linux (Debian/Ubuntu)
**APT Repository** (Recommended)
```bash
# Add GPG key
curl -fsSL https://profullstack.github.io/pairux-apt/pairux.gpg | sudo gpg --dearmor -o /usr/share/keyrings/pairux.gpg
# Add repository
echo "deb [signed-by=/usr/share/keyrings/pairux.gpg] https://profullstack.github.io/pairux-apt stable main" | sudo tee /etc/apt/sources.list.d/pairux.list
# Install
sudo apt update && sudo apt install pairux
```
**Direct Download**
- [pairux_x.x.x_amd64.deb](https://github.com/profullstack/pairux.com/releases/latest)
Linux (Fedora/RHEL/CentOS)
**RPM Repository** (Recommended)
```bash
# Add repository
sudo dnf config-manager --add-repo https://profullstack.github.io/pairux-rpm/pairux.repo
# Import GPG key
sudo rpm --import https://profullstack.github.io/pairux-rpm/RPM-GPG-KEY-pairux
# Install
sudo dnf install pairux
```
**Direct Download**
- [pairux-x.x.x-1.x86_64.rpm](https://github.com/profullstack/pairux.com/releases/latest)
Linux (Arch)
**AUR** (Recommended)
```bash
# Using yay
yay -S pairux-bin
# Using paru
paru -S pairux-bin
# Manual
git clone https://aur.archlinux.org/pairux-bin.git
cd pairux-bin
makepkg -si
```
Linux (Gentoo)
**Custom Overlay**
```bash
# Add overlay
sudo eselect repository add pairux git https://github.com/profullstack/gentoo-pairux.git
sudo emaint sync -r pairux
# Install
sudo emerge net-misc/pairux-bin
```
Linux (NixOS/Nix)
**Flake** (Recommended)
```bash
nix profile install github:profullstack/pairux-nix
```
**nix-shell**
```bash
nix-shell -p pairux
```
Linux (Universal)
**AppImage**
```bash
# Download
wget https://github.com/profullstack/pairux.com/releases/latest/download/PairUX-x.x.x-x86_64.AppImage
# Make executable
chmod +x PairUX-*.AppImage
# Run
./PairUX-*.AppImage
```
### Join as a Viewer (No Install Required!)
Just open the session link in any modern browser. The viewer is a **Progressive Web App (PWA)** โ you can install it for quick access without downloading anything.
---
## ๐ฏ How It Works
```
โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ
โ Host โ โ Viewer โ
โ (Desktop App) โโโโโโโโ WebRTC โโโโโโโบโ (PWA/Browser) โ
โ โ P2P โ โ
โ Shares screen โ โ Views screen โ
โ Grants controlโ โ Requests ctrl โ
โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ
โ โ
โ Auth + Signaling only โ
โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโ
โผ
โโโโโโโโโโโโโโโโโโโ
โ Supabase โ
โ (No media!) โ
โโโโโโโโโโโโโโโโโโโ
```
1. **Host** starts a session in the desktop app
2. **Host** shares the join link with a viewer
3. **Viewer** opens the link in their browser (or installed PWA)
4. **WebRTC** establishes a direct P2P connection
5. **Viewer** can request control, **Host** approves
6. Both can control simultaneously โ **Host always has priority**
---
## ๐ Security
| Feature | Description |
| --------------------- | --------------------------------------------- |
| **E2E Encryption** | All media encrypted via WebRTC DTLS-SRTP |
| **No Server Storage** | Screen data never touches our servers |
| **Explicit Consent** | Host must approve all control requests |
| **Emergency Revoke** | `Ctrl+Shift+Escape` instantly revokes control |
| **Visual Indicators** | Always shows when remote control is active |
| **Code Signed** | All builds are signed and notarized |
---
## ๐ฑ PWA Viewer
The web viewer is a **Progressive Web App** that can be installed on any device:
- โ
**No download required** โ Works in any modern browser
- โ
**Installable** โ Add to home screen for app-like experience
- โ
**Offline capable** โ Core UI works offline
- โ
**Mobile friendly** โ View sessions from phone/tablet
- โ
**Auto-updates** โ Always the latest version
### Install the PWA
1. Open a session link in Chrome, Edge, or Safari
2. Click "Install" in the browser menu (or address bar icon)
3. Launch PairUX Viewer from your apps
---
## ๐ ๏ธ Tech Stack
| Component | Technology |
| ------------ | ------------------------------------- |
| Desktop App | Electron + React + nut.js |
| Web/PWA | Next.js 16.2 + Tailwind + shadcn/ui |
| Backend | Supabase (Auth, Realtime, PostgreSQL) |
| Media | WebRTC (native P2P) |
| TURN Server | coturn (self-hosted) |
| Build System | pnpm + Turborepo |
| CI/CD | GitHub Actions |
---
## ๐ Project Structure
```
pairux/
โโโ apps/
โ โโโ web/ # Next.js marketing site + PWA viewer
โ โโโ desktop/ # Electron host application
โโโ packages/
โ โโโ shared-types/ # TypeScript type definitions
โ โโโ webrtc-core/ # WebRTC utilities
โโโ docs/ # Technical documentation
โโโ plans/ # Implementation plans
โโโ .github/workflows/ # CI/CD pipelines
```
---
## ๐งโ๐ป Development
### Prerequisites
- Node.js 24+
- pnpm 9+
### Setup
```bash
# Clone the repo
git clone https://github.com/profullstack/pairux.com.git
cd pairux
# Install dependencies
pnpm install
# Start development
pnpm dev
```
### Commands
| Command | Description |
| ----------------------------------- | ---------------------------------- |
| `pnpm dev` | Start all apps in development mode |
| `pnpm build` | Build all apps for production |
| `pnpm lint` | Run linting |
| `pnpm test` | Run tests |
| `pnpm --filter @pairux/web dev` | Start web app only |
| `pnpm --filter @pairux/desktop dev` | Start desktop app only |
---
## ๐ Documentation
| Document | Description |
| ---------------------------------------- | ------------------------------- |
| [Architecture](docs/ARCHITECTURE.md) | System design and diagrams |
| [Features](docs/FEATURES.md) | Detailed feature specifications |
| [Tech Stack](docs/TECH-STACK.md) | Technology choices |
| [WebRTC Flow](docs/WEBRTC-FLOW.md) | Signaling and media flow |
| [Remote Control](docs/REMOTE-CONTROL.md) | Input injection system |
| [Security](docs/SECURITY.md) | Security model |
| [Distribution](docs/DISTRIBUTION.md) | Package manager publishing |
| [CI/CD](docs/CI-CD.md) | GitHub Actions workflows |
| [API](docs/API.md) | Database schema and API |
---
## ๐บ๏ธ Roadmap
### MVP (v1.0)
- [x] Documentation and architecture
- [x] Monorepo setup
- [x] Marketing website
- [x] Desktop host app
- [x] PWA viewer
- [x] Screen sharing
- [x] Remote control
- [x] Package manager distribution
- [x] Multi-viewer support (up to 5 for p2p, 100k for SFU)
- [x] Session recording
- [x] Chat and annotations
### Future
- [ ] File transfer
- [ ] Mobile viewer app
---
## ๐ค Contributing
We welcome contributions! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
1. Fork the repository
2. Create a feature branch
3. Make your changes
4. Submit a pull request
---
## ๐ License
MIT License โ see [LICENSE](LICENSE) for details.
---
## ๐ Acknowledgments
- Inspired by [Screenhero](https://screenhero.com) (RIP)
- Built with [Electron](https://electronjs.org), [Next.js](https://nextjs.org), [Supabase](https://supabase.com)
- UI components from [shadcn/ui](https://ui.shadcn.com)
---
PairUX โ Pair programming, reimagined.