All projects

iMirror

Mirror your iPhone and iPad to your Mac

iMirror is a free, open-source AirPlay screen mirroring receiver for macOS. It sits quietly in the menu bar; tap Screen Mirroring in Control Center on your iPhone and the picture appears in a floating window on your Mac that can stay on top, with sound.

  • macOS 14 or later
  • Apple silicon and Intel
  • English / 简体中文
  • Free, GPLv3
The iMirror menu receiving from an iPhone and an iPad, each with Show Window and Full Screen buttons

Features

Uses the Screen Mirroring built into iOS, iPadOS and macOS. Nothing to install on the phone.

Lives in the menu bar

No Dock icon, nothing in the way. Click the menu bar icon for status, mirroring steps and quick switches.

Several devices at once

Mirror an iPhone, an iPad and another Mac at the same time. Each gets its own window and decoder; one disconnecting doesn’t affect the others.

Floating, always on top

Borderless, freely resizable windows. Stop, pin and full-screen buttons appear on hover. The aspect ratio is kept through rotation and full screen.

Hardware decoding, 1080p60

H.264 decoded by VideoToolbox in hardware and drawn straight with Metal, up to 1920×1080 at 60 fps, with low latency and little CPU.

Sound comes along

Plays the device’s audio (AAC-ELD, AAC-LC, ALAC, PCM) following its volume. Turn it off in the menu when you don’t need it.

Code pairing

A new random four-digit code appears on the Mac the first time a device connects; no fixed password is stored. Verified devices reconnect directly, and you can forget them all at once.

Always ready

Optionally opens at login; stops advertising while the Mac sleeps and comes back on wake. The receiver name carries a per-Mac tag, so several Macs never get mixed up.

Bilingual, free and open

The interface follows your system language in English or Simplified Chinese. Source code under the GPLv3; no ads, accounts or analytics.

Screenshots

The app’s real interface, shown in your system’s light or dark appearance. Click an image to see it full size.

Download and install

Requires macOS 14 Sonoma or later. One download runs on both Apple silicon and Intel Macs.

Install

  1. Download the DMG

    Get the latest iMirror-<version>-macOS-universal.dmg from GitHub Releases.

  2. Drag to Applications

    Open the DMG, drag iMirror onto the Applications folder, then eject the disk image.

  3. Allow it the first time

    Releases aren’t notarized by Apple, so macOS blocks the first launch. Allow it once as described under If macOS blocks the first launch.

  4. Allow local network access

    Click Allow when macOS asks on first launch; otherwise your iPhone can’t find the Mac.

If macOS blocks the first launch

iMirror is built by GitHub Actions from the public source, ad-hoc signed and not notarized by Apple, so macOS warns that it can’t verify the developer. Use any one of these:

  • macOS 15 and later: open iMirror once and click Done in the warning. Then open System Settings → Privacy & Security, click Open Anyway near the bottom and confirm with your password.
  • macOS 14: Control-click (or right-click) iMirror, choose Open, then click Open.
  • Terminal (any version): also use this if macOS says the app “is damaged”. It only removes the download quarantine flag and doesn’t modify the app.
    xattr -dr com.apple.quarantine /Applications/iMirror.app

Prefer to build it yourself? With the Xcode Command Line Tools installed, run bash install.sh in the source folder. See the README.

Start mirroring

  1. Open iMirror

    A small icon (a phone and a display) appears in the menu bar. iMirror has no Dock icon; that’s expected.

  2. Open Screen Mirroring on your iPhone or iPad

    Swipe down from the top-right corner to open Control Center, then tap Screen Mirroring. On a Mac, use Control Center in the menu bar.

  3. Choose the name with this Mac’s tag

    For example iMirror-A7K2. The device and the Mac must be on the same Wi-Fi network.

  4. Enter the code the first time

    Type the four digits shown on the Mac. The same device won’t need a code again.

Tips

  • Move the pointer over the picture to show the stop, pin and full-screen buttons in the top-left corner.
  • Drag and resize the window freely; the picture keeps its aspect ratio with black bars where needed.
  • Rename the receiver in Settings → General.
  • Don’t want the phone’s sound? Turn off Play Sound from Mirrored Devices in the menu.
  • The language follows the system; you can also pick one for iMirror alone in System Settings → General → Language & Region → Applications.

FAQ

iMirror doesn’t show up in Screen Mirroring on my iPhone
  1. Make sure iMirror is running: its icon is in the menu bar and the menu says “Waiting for a device”.
  2. Make sure the iPhone and the Mac are on the same Wi-Fi network and the router doesn’t isolate clients (AP or guest isolation).
  3. In System Settings → Privacy & Security → Local Network, make sure iMirror is turned on.
  4. If the macOS firewall is on, make sure it allows incoming connections for iMirror.
  5. On some macOS versions, AirPlay Receiver in System Settings → General → AirDrop & Handoff must stay on for peer-to-peer (AWDL) connections to work.
macOS says “iMirror is damaged and can’t be opened”

That’s caused by the download quarantine flag; the file isn’t actually damaged. Run xattr -dr com.apple.quarantine /Applications/iMirror.app in Terminal and open it again.

Is it safe? Does it upload my screen anywhere?

Mirroring data only travels over your local network between your device and the Mac. iMirror needs no account and has no ads or analytics; a new device must enter the code shown on the Mac before it can connect. The full source is on GitHub for you to review and build.

Does it support HEVC, 4K or audio-only AirPlay?

The current version receives H.264 screen mirroring at up to 1920×1080 and 60 fps, with sound while mirroring. HEVC and 4K aren’t supported yet. Feature requests are welcome as GitHub issues.

How do I uninstall it?
  1. Turn off Open at Login in Settings, then quit iMirror from its menu.
  2. Delete iMirror from Applications.
  3. To also remove pairing records and settings, delete ~/Library/Application Support/iMirror and run defaults delete com.erniu.imirror in Terminal.

Found a problem or have an idea?

Please open an issue on GitHub. Including your macOS version, Mac model, the mirroring device and what happened helps a lot. Code and translations are welcome too.

iMirror’s protocol layer is based on the open-source UxPlay, and iMirror as a whole is released under the GNU GPLv3. AirPlay, iPhone, iPad and Mac are trademarks of Apple Inc.; iMirror is not affiliated with Apple.