Skip to content

About

Turn an old Mac, an iPhone or an Android into a wireless extra screen for your Mac. Free and open source.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

48 Commits

Folders and files

Repository files navigation

Encore Screen: turn an old Mac, an iPhone or an Android into a wireless extra screen for your Mac

Download for Mac Support the project Website

Give your old Mac, iPhone or Android an encore: it becomes a wireless extra screen for your Mac.
Free and open source. Signed and notarized by Apple.

Encore Screen in 30 seconds
▶️ Watch the 30 second video (with sound)

Like it? Encore Screen is free. If it gave your old Mac a second life, buy me a coffee ☕. You choose the amount.

How it works

Encore Screen runs on your main Mac (macOS 14+, menu bar app). It creates a virtual display, captures it with ScreenCaptureKit and encodes it as low-latency H.264 with VideoToolbox. The extra screen can be:

  • Any device with a browser (phone, tablet, PC, Chromebook, older Mac with Chrome). Scan the QR code from the menu: nothing to install. The page decodes the video in hardware (WebCodecs) and supports touch control (tap, scroll, long press, pinch) and the device's keyboard when a text field is focused.
  • Another Mac with Encore Screen (macOS 10.15+): choose "Make this an extra screen". Smoothest option, ideal for an older iMac or MacBook; it starts by itself at login and keeps the Mac awake.

Details:

  • The pointer travels separately (UDP for Macs, WebSocket for browsers) and is drawn on the screen side, so it feels instant.
  • Retina screens get a HiDPI virtual display; macOS remembers where you placed each screen.
  • Security: browser links carry a random secret (renewable), and every new device must be allowed once on the main Mac. HTTPS/WSS is used when a certificate is installed (see docs/https.md).
  • AirDrop (awdl0) makes Wi-Fi hop channels and causes stutter: Encore Screen pauses it only while things move on the extra screen (a sudo rule limited to ifconfig awdl0 up/down, installed once from the onboarding).

Build

./build.sh

Produces build/Encore Screen.app (universal, macOS 10.15+) and build/EncoreScreen.dmg. With a Developer ID Application identity in the keychain, the app is signed with the hardened runtime, notarized and stapled. Set SIGN_ID to a code signing identity to keep the Screen Recording permission across builds (falls back to ad-hoc signing).

Icons are generated by swift Icons/mascots.swift Icons.

Status

Prototype. Signed with Developer ID and notarized.

Security

  • Who can connect. Browser links carry a random secret (renewable from the menu) and every new device must be allowed once on the main Mac. Without the secret, a connection is refused without asking.
  • Encryption. Browser screens use HTTPS and WSS with a real certificate issued for each Mac (see docs/https.md). The private key is created on the Mac and never leaves it. The Mac to Mac link (native app) is not encrypted yet: use it on a network you trust.
  • Local only. The video never goes through the internet. The certificate service only sees a certificate request and the Mac's local address.
  • Permissions. Screen Recording to capture the extra screen, Accessibility only for touch control, and an optional sudo rule limited to ifconfig awdl0 up/down for the AirDrop pause.
  • Found a security issue? Please open a private advisory from the repository's Security tab.

Support

Encore Screen is free. If it gave your old Mac a second life, you can buy me a coffee.

License

MIT

About

Turn an old Mac, an iPhone or an Android into a wireless extra screen for your Mac. Free and open source.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Contributors

Languages