About this project

OpenDisplay is a free, open-source, no-account, no-dongle solution for using an iPhone, iPad, or spare Mac as a true extended second display for macOS. It serves as a self-hosted alternative to Apple Sidecar, Duet Display, and Luna Display. Key features include true display extension (not mirroring), USB-wired connectivity via macOS's built-in usbmuxd for lowest latency, and WiFi mode with zero configuration via Bonjour discovery. The virtual display supports Retina/HiDPI at @2x pixel matching, touch input (tap to click, drag, two-finger scroll), portrait and landscape rotation, and a low-latency hardware H.264 encoding pipeline using VideoToolbox. The project uses CGVirtualDisplay, a private CoreGraphics API, to create virtual displays that macOS treats as real monitors. The streaming pipeline captures the virtual display via ScreenCaptureKit, encodes with hardware H.264 (real-time mode, no B-frames), and transmits over TCP with frame-drop backpressure and keyframe recovery. Decoding and rendering is handled by AVSampleBufferDisplayLayer on the receiver side. A spare Mac can also serve as a display by installing the separate OpenDisplay Receiver app (requires macOS 12+). Connection over WiFi works out of the box; for wired connections, a Thunderbolt/USB4 cable, Ethernet cable, or plain USB-C data cable can be used. The wire protocol is openly specified in PROTOCOL.md, enabling third-party implementations. Community-built clients exist for Android (Android 8.0+), older iOS devices (iOS 12), and Linux (Wayland desktops including KDE Plasma and Hyprland). These are fan-made projects and not officially maintained. The macOS app is signed with a Developer ID certificate and notarized by Apple. The iOS app requires iOS/iPadOS 15 or newer and is available via TestFlight or can be built from source. The app updates itself via Sparkle. The project is licensed under GPL-3.0.