Skip to content

iPhone Mirror

Shows your iPhone’s screen live on your Mac, inside Apple’s iPhone 17 Pro frame, over one USB cable.

  • macOS
  • iPhone
Typing a message on my real iPhone, with every keystroke showing live on the Mac.

I hated how Apple’s iPhone Mirroring takes over my whole screen when I’m trying to record my phone for videos. Before that I was using an AirPlay mirror, and it was blurry and laggy. So I asked Opus 5.5: can we just replicate this, but a better looking version, in great quality and without latency?

This is what it came out with. A small Mac app that puts my iPhone in a window, inside Apple’s own iPhone 17 Pro frame, so a recording looks like a product shot. It runs over the USB cable, so the picture is full resolution at 60 frames a second. Plugged straight into my Mac Studio, it’s not even laggy.

What it does

  • Shows your iPhone’s screen live in a window on your Mac, at full resolution and 60 frames a second.
  • Wraps the picture in Apple’s official iPhone 17 Pro frame, with the screen’s corners rounded to match.
  • Puts the phone on a cream 16:9 background with one key, ready for recording a video.
  • Switches the frame color with one key: silver, deep blue, orange, black or white.
  • Jumps between small, medium and full-height sizes, and can stay on top of your other windows.
  • Leaves the rest of your screen alone. It’s one window you can drag anywhere and resize from the edges.

How it works

  1. macOS has a hidden switch that lets apps see a cable-connected iPhone’s screen as a video source. QuickTime uses the same feed.
  2. The app turns that switch on, waits for your iPhone to show up, and draws each frame as it arrives.
  3. Apple’s iPhone 17 Pro frame image sits on top of the picture.
  4. Everything travels over the USB cable. There’s no AirPlay and no streaming service.
  5. It’s a native Mac app, one Swift file of about 240 lines.

What you need

  • A Mac on macOS 14 or newer
  • An iPhone and a USB cable that plugs straight into the Mac
  • Xcode command line tools
  • Python 3 with Pillow (pip3 install pillow), used once to download Apple’s frame images

Get the code

Download it, or clone it and follow the steps below. You can also hand the repo to Claude Code or Codex and ask it to set it up for you.

Terminal
git clone https://github.com/per-simmons/iphone-mirror.git
cd iphone-mirror
./fetch-bezels.sh
./build.sh
open "iPhone Mirror.app"
  1. fetch-bezels.sh downloads Apple’s iPhone frame images. Apple’s license doesn’t allow sharing them in the repo, so the script gets them from Apple when you build.
  2. build.sh builds iPhone Mirror.app, and the last command opens it.
  3. Plug your iPhone directly into the Mac. Unlock it and tap Trust if it asks.
  4. Allow camera access when macOS asks. macOS treats the phone’s screen as a camera.
  5. Your phone appears within a few seconds. If the window is black, touch the phone.
  6. Keys: B switches the cream 16:9 background on and off, C changes the frame color, 1, 2 and 3 set small, medium and full-height, T keeps it on top, and Q, ⌘Q or right-click → Quit closes it.

The full setup guide is in the README on GitHub.

Try it

  • Record a phone-app demo for X or YouTube: press B for the cream 16:9 background and record that window. The video comes out 16:9 with your app inside a real iPhone frame, ready to post.
  • Press C until the frame color fits your thumbnail or brand: silver, deep blue, orange, black or white.
  • Show your phone on a call or a livestream: press 1 for the small size and T to keep it on top, then park it in a corner while you keep working in your other apps.
  • Film a typing tutorial. Every keystroke, autocorrect suggestion and send on the real phone shows up on the Mac as it happens, so viewers can follow each tap.
  • Walk through an app you’re building: tap through its screens on the phone while you talk over the Mac recording. The full-height size (3) gives the most detail.

Security

  • The picture travels over the USB cable only. There’s no AirPlay and no streaming service involved.
  • macOS asks for camera access the first time, because it treats the phone’s screen as a camera. You can turn that off in System Settings any time.

Good to know

  • Plug the phone straight into the Mac. Through a USB hub it may freeze or show nothing.
  • It’s view only. You can’t tap the phone from the Mac. Apple’s built-in iPhone Mirroring does that.
  • Portrait only.
  • iOS only sends a frame when something changes, so a still or locked phone stays black until you touch it. Tap the screen before you hit record.
  • The frame rate is logged to ~/Library/Logs/iPhoneMirror.log if you want to check it.

Explore more.

Stories, builds, skills and videos on the same idea.
Search everything

AI FOR MORTALS.

Your daily AI edge that will make everyone wonder how you do it all.

Every weekday, the practical AI updates that matter, and exactly what to do with them.

The latest in AI, in plain English. Free, every weekday.