Side Screen brings true second-display functionality to your Android tablet — over USB-C cable for the lowest latency, or wirelessly over WiFi after a one-time QR pair. Something macOS doesn't natively support either way.
While Apple's Sidecar only works with iPads, millions of Android tablets sit unused as potential workstations. Side Screen bridges that gap with hardware-accelerated H.265 streaming, sub-16ms pipeline latency on USB, and full touch input — making your tablet feel like a real monitor, not a laggy mirror.
Built entirely open-source, Side Screen is designed to be fast, lightweight, and seamlessly integrated.
For full details, features, and documentation, please visit sidescreen.dev
Two ways to connect, same picture quality. USB-C plugs in the cable for the lowest possible latency — adb-reverse port forwarding is set up automatically. Wireless lets you scan a QR code from the Mac once and the tablet auto-reconnects on every future launch over WiFi (5 GHz strongly recommended). The auth token is generated locally and stays on your Mac; reset it any time to revoke access.
Create a true virtual display on your Mac. Drag windows to your tablet like a real monitor — not mirroring, but extending.
Hardware-accelerated H.265 encoding on Mac and decoding on Android. Async pipeline architecture delivers frames in under 30ms.
Use your tablet's touchscreen to interact with macOS. Touch prediction compensates for network latency, making taps and drags feel natural.
Enable HiDPI mode to render at 2× resolution internally — text and icons are sharp at any logical resolution, just like a MacBook Retina display. Perfect for users with 2K/4K tablets who want a readable workspace without sacrificing sharpness.
Enable Gaming Boost for optimized settings: 1 Gbps bitrate, ultra-low latency encoding, 120 FPS.
Configure resolution (up to 4K/8K), frame rate (30–120 FPS), bitrate (20–5000 Mbps), and quality presets from the Mac app.
| macOS Host | Android Client | |
|---|---|---|
| OS | macOS 13 (Ventura)+ | Android 8.0 (API 26)+ |
| Hardware | Apple Silicon or Intel | H.265 hardware decoder |
| USB mode | USB-C port + adb (brew install android-platform-tools) |
USB-C cable + USB Debugging enabled |
| Wireless mode | Same WiFi network as the tablet (5 GHz recommended) | Camera (for QR scan) + Google Play Services (for ML Kit barcode) |
Download the latest release from GitHub Releases:
- macOS: Download
.dmg, open it, drag Side Screen to Applications - Android: Download
.apk, install on your tablet (enable "Unknown sources" if needed). Port forwarding is handled automatically by the Mac app.
⚠️ macOS Gatekeeper If macOS says the app is "damaged", open Terminal and run:sudo xattr -cr /Applications/SideScreen.appThen open the app again. This is needed because the app is not notarized with an Apple Developer certificate.
⚠️ ADB Required The Mac app needsadbto communicate with your Android device. If the app doesn't show "Running" after launch, you likely need to install ADB:
- Install Homebrew (if you don't have it):
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"- Install ADB:
brew install --cask android-platform-tools
Build from source (for developers)
git clone https://github.com/tranvuongquocdat/SideScreen.git
cd SideScreen
# macOS
cd MacHost && swift build -c release
# Android
cd AndroidClient && ./gradlew assembleDebug- Connect tablet to Mac via USB-C
- Launch Side Screen on Mac (runs in menu bar — port forwarding is set up automatically)
- Open Side Screen on tablet → keep on the USB tab → tap Connect
- Done — drag windows to your new display
- Launch Side Screen on Mac → toggle to the Wireless tab → a QR code appears
- Open Side Screen on tablet → switch to the Wireless tab → tap Scan QR Code → grant camera permission → aim at the QR on the Mac
- The tablet remembers the Mac. Subsequent launches auto-reconnect — no rescan.
Wireless mode requires both devices to be on the same WiFi network. 5 GHz is strongly recommended — 2.4 GHz can introduce noticeable jitter on dynamic content. If you need to revoke access, click Reset Token (forget all) on the Mac and re-pair each tablet.
USB mode remains the lowest-latency option for drawing or fast-paced gaming. Wireless adds 10–50 ms depending on WiFi quality.
| Setting | Options | Default |
|---|---|---|
| Resolution | 720p to 8K, 30+ presets + custom | 1920x1200 |
| Frame Rate | 30, 60, 90, 120 FPS | 120 |
| Bitrate | 20–5000 Mbps | 1000 Mbps |
| Quality | Ultra Low, Low, Medium, High | Ultra Low |
| HiDPI (Retina) | On/Off | Off |
| Gaming Boost | On/Off (1 Gbps, 120 Hz) | Off |
| Touch Input | On/Off | On |
"SideScreen is damaged" on macOS
This happens because the app is not notarized by Apple. Run this command to fix it:
sudo xattr -cr /Applications/SideScreen.appThen open the app again.
"Connection refused" on Android
The Mac app sets up adb reverse automatically when streaming starts. If it still fails, make sure adb is installed (via Android SDK or Homebrew: brew install android-platform-tools) and your device has USB debugging enabled.
High latency or stuttering
- Lower resolution or frame rate
- Ensure H.265 hardware codec support on your device
- For USB mode, use a high-quality USB-C cable (not charge-only)
- For wireless mode, ensure both devices are on 5 GHz WiFi, not 2.4 GHz; reduce refresh rate to 60 Hz if jitter persists
Wireless: "Couldn't reach Mac" / connection times out
- Both devices must be on the same WiFi network (and same subnet — some mesh routers isolate "guest" devices)
- Click Start on the Mac before scanning the QR — the listener only binds when the server is running
- If the Mac changes WiFi or its LAN IP, scan a fresh QR (the cached one points to the old address)
- macOS may prompt for Local Network permission on first wireless toggle — grant it; without it, LAN inbound is silently dropped
Wireless: "Re-pair required" after restart / reinstall
The Mac's auth token resets when you click Reset Token (forget all) or reinstall the app. Tap Scan QR Code on the Android client and scan the new QR shown on the Mac.
Virtual display not appearing
Grant Screen Recording permission: System Preferences → Privacy & Security → Screen Recording → Enable Side Screen
Contributions are welcome!
- ⭐ Star this repo to help others discover it
- 🐛 Report bugs via Issues
- 💡 Suggest features via Issues
- 🔧 Submit PRs — see CONTRIBUTING.md
If Side Screen is useful to you, consider supporting development:
🇻🇳 Vietnamese users — scan VietQR for a local bank transfer (no international fees) at sidescreen.dev/donate.
MIT License — free for personal and commercial use.
Made with ❤️ by Tran Vuong Quoc Dat





