mrkeyoor.com_
Mon 14 Sept 15:50 UTC
Self-Hostedevaluationupdated 14 Sept 2026

opendisplay review

OpenDisplay turns an iPhone, iPad, or spare Mac into an extended display for a Mac over USB or WiFi. It replaces a subscription or hardware adapter with two local apps and a direct connection, while also sending touch and scroll input back to macOS.

Verdict

Our OpenDisplay run installed 29 packages and built in 20 seconds total, but it found no test target, so the clean build is a starting signal rather than proof that the two-device session works. Try it if you have a Mac, an iOS 16 device, and a USB data cable, especially when Sidecar's Apple ID rules get in the way. Avoid WiFi on networks where an unauthenticated, unencrypted screen stream is unacceptable, and keep a commercial fallback if macOS private-API changes would interrupt your work.

We ran it

Lab card: what happened when we ran opendisplayScreenshot of opendisplay (opendisplay.app)
Install✓ · 10s29 packages · 79 MB
Build✓ · 10s
Testsn/ano test script
Repo156 files~10,875 lines of source · 2.5 MB · 4 CI workflows

Answers from our run

Does opendisplay build from source?

Dependencies installed in 10 seconds (29 packages), and the build succeeded in 10 seconds. We cloned commit a186369 into a clean Debian container with 3 CPUs and no project-specific setup.

Does opendisplay have tests you can run?

Not through a standard command: the project exposes no test script or target that our harness could run.

Who should not use opendisplay?

Windows or Linux users seeking an official sender: the supported sender is for macOS 14+, while linked Android and Linux clients are community projects.

What are the alternatives to opendisplay?

Apple Sidecar, Deskreen, BetterDisplay. Our OpenDisplay run installed 29 packages and built in 20 seconds total, but it found no test target, so the clean build is a starting signal rather than proof that the two-device session works.

Setup3/5Signed Mac apps help; iOS signing and permissions add work
Docs5/5Setup, protocol, permissions, privacy, and failure modes are specific
Community4/53,390 stars with issue and pull request activity in September
Maturity3/5v1.19.0 ships, but WiFi security and 5K handling need work

Who it’s for

Mac users on macOS 14 or later who have an iOS 16 device or spare Mac available as a second screen.
Developers who want an inspectable H.264 display protocol and are comfortable with Apple signing and privacy permissions.
Households or labs whose sender and receiver use different Apple IDs.
People who prefer a USB data cable or a local network connection over a hosted relay.

Who it’s NOT for

Windows or Linux users seeking an official sender: the supported sender is for macOS 14+, while linked Android and Linux clients are community projects.
Organizations that require authenticated, encrypted LAN display traffic today: open issue 16 says WiFi mode sends unencrypted H.264 and accepts any connecting Mac.
Anyone who needs App Store distribution for the Mac sender: OpenDisplay uses the private CGVirtualDisplay API, which the README says prevents Mac App Store release.
Owners of a 5K Mac receiver who expect the Best preset to be safe on every panel: issue 271 reports an encoder ceiling that produced no picture until Balanced was selected.
People who need display audio forwarded now: the README lists audio as out of scope and tracks it separately on the roadmap.

Setup reality

Our sandbox installed 29 pnpm packages in 10 seconds and used 79 MB. The build passed in another 10 seconds. No test script or target existed, so tests were skipped; the 2.5 MB checkout contained 156 files and about 10,875 source lines.

That clean Node result covers the repository target our harness found, not the native Apple apps end to end. Building those needs Xcode 15+, xcodegen, and an Apple developer team ID for signing the iOS receiver. Prebuilt signed Mac DMGs and a public TestFlight route reduce that work.

The sender requires macOS 14+, Screen Recording permission, and Accessibility permission for input. The official receiver needs iOS or iPadOS 16+, while a spare Mac receiver can use macOS 12+. WiFi also needs Local Network permission on both devices, and its transport remains unencrypted according to open issue 16.

Two local apps create one extended Mac display

OpenDisplay gives macOS a virtual monitor, captures that monitor, encodes its frames as H.264, and sends them to an iPhone, iPad, or another Mac. The receiver sends taps, drags, and two-finger scrolling back as input. This is genuine desktop extension, so windows can be arranged on the device in System Settings. Mirroring is available too, although the project is most distinctive when it makes an Apple device behave like a separate panel.

The connection stays between the two devices. USB travels through macOS's built-in usbmuxd; WiFi discovery uses Bonjour, and the receiver listens on port 9000. The protocol is documented separately, which has already allowed community Android receivers, an older-iOS client, and a Linux sender to appear. Those projects are explicitly unofficial. The supported combination remains a macOS sender with the project's iOS, iPadOS, or macOS receiver.

macOS 14 and iOS 16 set the official hardware floor

The easiest route uses the signed and notarized Mac DMG from release v1.19.0 plus the public iOS TestFlight. The sender needs macOS 14 or newer. The iPhone and iPad app supports iOS 16, including Apple's 16.7 branch for several older devices. A receiving Mac can run macOS 12, which makes a retired MacBook or iMac more useful without requiring it to meet the sender's newer OS floor.

Source builds ask for Xcode 15+, xcodegen, and a free or paid Apple developer account. You put the developer team ID in .env, generate the Xcode project, then build the Mac and iOS schemes. First use also triggers Screen Recording and Accessibility permissions on the sender. WiFi adds Local Network permission on both ends, and the README warns that discovery can fail silently when either permission is missing. USB avoids that particular permission pair.

What happened when we ran it

Our sandbox installed 29 pnpm packages in 10 seconds, leaving 79 MB on disk. The available build completed in another 10 seconds. commit a186369 was a 2.5 MB checkout with 156 files and roughly 10,875 lines of source. Four CI workflow files were present, while our scan found no Dockerfile and no tests directory.

There was no test script or target, so the harness skipped tests. That matters more here than it would for a static site because the user experience crosses macOS capture, hardware encoding, USB or LAN transport, Apple permissions, decoding, and input injection. The successful build verifies the target our Node 22 harness could invoke. It did not exercise a signed iOS app, connect 2 Apple devices, or judge picture quality and latency, so those outcomes need a real hardware trial.

WiFi sends unencrypted H.264 until issue 16 is resolved

OpenDisplay keeps video off a vendor server and says it collects no analytics, but local does not automatically mean confidential. Open issue 16 states that WiFi currently streams unencrypted H.264 on the LAN and accepts any connecting Mac. The proposed work covers TLS and a short pairing code; the issue remains open. USB is the better choice on a shared office, dorm, or conference network, and security-sensitive buyers should treat encrypted WiFi as absent rather than promised.

The app also depends on CGVirtualDisplay, a private CoreGraphics API. OpenDisplay documents the trade clearly: the private call enables a real virtual monitor and also keeps the Mac app out of the App Store. A macOS update can change private behavior without the compatibility guarantees attached to public APIs. Screen capture and encoding use public frameworks, but the virtual-display foundation still creates release risk for anyone making this their only work monitor.

A 5K receiver can exceed the H.264 preset ceiling

Issue 271 documents a specific Mac-to-Mac failure on a 27-inch 5K iMac. At the Best quality setting, the sender attempted 4096 by 2304 at 60 fps, and the encoder rejected frames while the receiver showed that it was connected. Selecting Balanced at 75% fixed the reporter's session. An open pull request addresses pacing large H.264 streams, but the report is reason enough to test the exact panel and quality tier before relying on a high-resolution setup.

Other limits are easier to understand. Audio forwarding is out of scope in the README. Apple Pencil pressure, hardware keyboard passthrough, HEVC, and extra gestures appear as roadmap work or open pull requests, so they should not enter a buying decision as current features. What is present already covers the basic second-screen loop: extension, portrait rotation, touch, scrolling, HiDPI sizing, USB, WiFi, and multiple receivers.

September activity is high, with 141 issues and PRs open

GitHub showed 3,390 stars, a September 6, 2026 last push, and 141 combined open issues and pull requests when fetched. The queue was still moving on September 14, with input work and bug reports receiving updates. Release v1.19.0 arrived September 1 and included Mac mirror-capture work. That is an active project by both code and issue activity, although the combined open count also signals a young product carrying many requests at once.

OpenDisplay is most persuasive as a free experiment with hardware you already own. The 20-second install and build result makes the checkout approachable, while the missing test target and Apple-only runtime leave the important proof to a device trial. Use USB first, verify wake and reconnect behavior, and test the desired resolution for a full work session. If encrypted WiFi, App Store deployment, audio, or stable public display APIs are requirements, its current design does not meet them.

Alternatives

ProjectWhat it isPick it when
Apple SidecarApple's built-in iPad display mode uses the same Apple ID and supported hardware.pick this instead when your Mac and iPad meet Apple's requirements and native OS integration matters more than iPhone support or source access.
DeskreenAn AGPL desktop app that sends a screen or window to a device with a web browser.pick this instead when broad receiver compatibility matters more than OpenDisplay's Apple-native USB and touch path.
BetterDisplay gh↗A Mac display utility for virtual screens, scaling, display controls, and streaming views.pick this instead when virtual-display control and Mac display tuning are the main jobs rather than turning an iPhone into a wired monitor.

What people are saying

  1. [github-trending] peetzweg/opendisplay

Sources

  1. OpenDisplay repository and README
  2. OpenDisplay v1.19.0 release
  3. OpenDisplay protocol specification
  4. Issue 16: encrypted WiFi transport
  5. Issue 271: 5K H.264 ceiling

More self-hosted reviews

Mailspring · kvm · nango · SmartTubeLegacy · danmu_api · tvbox · the whole board →