Duplicat

How to mirror your iPhone to a Mac

1Install on your Mac

Duplicat is one self-contained application. The video engine and the iPhone input engine live inside the bundle: no Homebrew, no Python, no compiler.

What you need

  • macOS 14 (Sonoma) or later.
  • An iPhone on the same Wi-Fi network. iOS 17 or later for mouse and keyboard control; older phones still mirror.
  • The cable that came with the phone, for the one-time Developer Mode setup. After that, Wi-Fi is enough.

Steps

  1. Download and move Duplicat.app into Applications. Unzip the download from the store page and drag the app into Applications. Running it from Downloads works too, but the first-launch permission below is asked per location.
  2. Open it once. macOS may say it cannot verify the developer — the app is signed outside the App Store. Open System Settings → Privacy & Security, and press Open Anyway next to the Duplicat message.
  3. Say yes to the local network prompt. When you press Start the first time, macOS asks whether Duplicat may find devices on your local network. This is how the phone is found. If you refused, it is System Settings → Privacy & Security → Local Network → Duplicat.

2Mirror the screen

  1. Put both devices on the same network. The iPhone needs Wi-Fi and Bluetooth on. Turn off Personal Hotspot: a phone sharing its own connection is not on your network. A VPN on the phone can hide it too, and guest networks block devices from seeing each other.
  2. Press Start in Duplicat — the play button in the titlebar, or ⌘↩. The window says Waiting for your iPhone and the status dot turns orange.
  3. Pick Duplicat on the iPhone. Unlock it, open Control Center, tap Screen Mirroring and choose Duplicat. On a phone with a Home button, swipe up from the bottom edge instead.
  4. The phone appears in a window. The window takes the phone's own shape — a 402×874 point phone gets a 402×874 point window — and dragging a corner keeps that ratio. The titlebar is the only chrome; nothing is drawn over the picture.
  5. Keep the phone awake and unlocked. Auto-Lock ends the stream, and so does locking it by hand. Face ID falling back to the passcode sheet is fine: see the passcode pad.
The Duplicat window, black, with the message Waiting for your iPhone and the path Control Center, Screen Mirroring, Duplicat.
Before the phone connects: the window tells you where to pick Duplicat.

What the status dot means

  • Grey — stopped. Press Start.
  • Orange — starting, or waiting for the phone to pick Duplicat in Control Center.
  • Green — the phone's screen is live.
  • Red — the engine could not start. The window shows why and the log has the full text.

3Turn on Developer Mode

Mirroring needs nothing here. Mouse and keyboard control does: iOS will not accept synthetic touches while Developer Mode is off, which is Apple's rule, not Duplicat's. It is a one-time switch that survives reboots.

  1. Connect the iPhone to the Mac with a cable and unlock it.
  2. Tap Trust. The phone asks Trust This Computer? Tap Trust and enter the passcode. If no prompt appears, unplug and plug the cable back in with the phone unlocked. Trust is per Mac, so a different Mac asks again.
  3. Open Settings → Privacy & Security on the iPhone and scroll to the bottom. Developer Mode sits under the security switches.
  4. Turn Developer Mode on. Read the confirmation — it explains that Developer Mode relaxes some security checks — then tap Restart.
  5. Confirm after the restart. Unlock the phone, tap Turn On and enter the passcode.
  6. Press Start in Duplicat and leave the cable in for the first minute. The app finds the phone, enables wireless pairing for later, and mounts the personalised developer image iOS 17+ needs before it accepts input. Settings → Mouse & Keyboard changes from not connected to the phone is receiving input.

If the switch is not there

On a stock iPhone the row does not exist until a developer service has asked the phone for it. With the cable connected and the phone unlocked, press Start and give Duplicat a few seconds: when input cannot attach, it asks iOS to reveal the switch, then reports the failure. Go back to Settings → Privacy & Security and the row is there.

Connecting the phone to a Mac running Xcode once does the same thing. Xcode is not needed for Duplicat itself.

4An Apple developer account

A free account is useful if you want Xcode, or if older instructions assumed one. What follows is how to make one, and what the paid tier is actually for.

Create the free account

  1. Use your existing Apple ID, the one signed in on the iPhone. If you have none, create it at appleid.apple.com.
  2. Go to developer.apple.com and press Account. Sign in with that Apple ID.
  3. Approve the two-factor prompt. A code appears on your trusted devices.
  4. Accept the Apple Developer Agreement and complete the profile: name, address, and Individual as the entity type. There is no company or tax information at this tier.
  5. You are done. The account lands in Certificates, Identifiers & Profiles: no membership fee, no annual renewal.

Free account vs the paid program

Free accountApple Developer Program
CostNothingUS$99 a year
Sign in at developer.apple.comYesYes
Development builds on your devicesYes, expiring after 7 daysYes, for a year
TestFlight or App StoreNoYes
Push notifications and some capabilitiesNoYes
Needed for DuplicatNoNo

If you install Xcode

  1. Open Xcode → Settings → Accounts, press +, choose Apple ID and sign in.
  2. Plug the iPhone in and choose Window → Devices and Simulators. Xcode prepares the device for development — the fallback if the Developer Mode switch never appears.
  3. Xcode is roughly 10 GB installed. Nothing about Duplicat needs it.

5Activate the licence

Duplicat runs in demo mode until a key is entered: mirroring, screenshots and recordings work, and mouse, keyboard and swipes do not. The licence is one payment of €4.99, not a subscription.

  1. Buy from the store page. Stripe takes the card and the email address; the key is sent the moment the payment is confirmed.
  2. Open the licence window. Click the lock button in the titlebar, or choose Duplicat → Duplicat Licence…, or Settings → Licence → Enter Licence….
  3. Paste the whole line. It starts with DUPLICAT-. Line breaks and the quotes a mail client adds do no harm. The Paste button takes it from the clipboard.
  4. Press Activate. The lock turns into a green checkmark, the window says Licensed to …, and mouse and keyboard start working immediately.

Good to know

  • It works offline. The key is checked on your Mac against a public key built into the app. There is no activation server and no phone-home.
  • One key covers the Macs you use. Paste the same line into Duplicat on each Mac. It is a licence for one person, not a team.
  • You can keep a copy. The licence window has Copy Key and Forget This Mac.
  • Lost the email? Enter the address you bought with on the recovery page and every live key for it is sent again.

If a key is refused

  • That is not a Duplicat licence key. — part of the line is missing. Copy the whole line, including the DUPLICAT- prefix and everything after the dot.
  • This key was not issued by Duplicat, or it was altered. — the signature does not match the text, which almost always means a truncated paste. Use Paste rather than selecting it by hand.
  • This key was made for a newer Duplicat. — update the app.
  • This key has no email in it. — it was not issued by the store. Ask for a replacement through recovery.

6Mouse and keyboard

With a licence and the phone connected, the window becomes a touchscreen. Input goes through the developer tunnel as the same touch events the phone's digitizer produces, so the click lands where you click.

Mouse

  • A click is a tap at that exact point on the phone's screen.
  • Press, drag, release is a finger swipe: scrolling a list, dragging a slider or a home-screen icon, swiping up to close an app. Moving the pointer without holding the button does nothing on the phone.
  • One finger only. Pinch-to-zoom and two-finger gestures are not wired up.
  • The scroll wheel does nothing. Scroll lists by dragging, as you would with a finger.
  • Right and middle clicks are ignored. A touchscreen has one button.

Keyboard

  • Typing goes in as text. Click a field on the phone, then type on the Mac. The phone's software keyboard does not flash up for every key.
  • Return, Tab, Backspace, Escape and the arrow keys are sent as named keys. Escape goes back, as it does on iOS.
  • ⌘ shortcuts stay with the Mac. ⌘Q quits Duplicat, ⌘⇧S takes a screenshot, ⌘C copies on the Mac. Paste into the mirror by typing, or use the phone's own paste menu.
  • ASCII with a US mapping. Accented letters and emoji have no direct HID route: tap them on the phone's on-screen keyboard.

7The passcode pad

When Face ID fails, iOS asks for the passcode — and draws that numeric keypad in a window it deliberately leaves out of AirPlay. The sheet's title arrives in the mirror and the digits do not, so the phone appears to wait on a blank space. This is why Duplicat has its own pad.

  1. Press ⌘K, or click the toolbar button once input is ready. The pad opens in its own small window, beside the mirror.
  2. Type the passcode on it. Each press is sent to the phone as a keystroke on the virtual keyboard. Delete sends Backspace, Enter sends Return.
  3. Watch the phone, not the pad. The sheet's checkmark becoming active is the real sign the digits arrived.

8Screenshots and recordings

Both are taken from the decoded video, not by filming the window. The result is the phone's own resolution, without the titlebar or letterboxing, and Duplicat never needs Screen Recording permission.

  • ⌘⇧S saves a PNG named like Duplicat 2026-10-29 at 13.08.16.png.
  • ⌘⇧R starts a recording, and the same shortcut stops it. The file is a QuickTime movie, .mov, named the same way.
  • Both are in the titlebar camera menu and under File.
  • Recordings are silent — Duplicat does not receive audio.

Where they go

  1. Open Settings (⌘,) → Media. Screenshots default to the Desktop and recordings to Movies.
  2. Change a folder with Choose…, and go back with Default. The path shown is the real path.
  3. Turn on “Ask where to save each capture” to choose every time. A save panel opens pre-filled; cancelling it cancels the capture.

9Settings and the log

  • General → Licence — licensed or demo, the name and email on the key, and the buttons to enter, copy or forget it.
  • General → iPhone — the model the app recognised, the resolution in pixels and points, frames received and decode errors.
  • General → Mouse & Keyboard — whether input is attached, and Show Guide Again.
  • General → Diagnostics — whether the video engine was found, and the live log. Show Log File opens ~/Library/Logs/Duplicat.log; Copy Log puts it on the clipboard.
  • Media — the folders for screenshots and recordings.

10Troubleshooting

SymptomWhat to do
Stuck on “Waiting for your iPhone”Same Wi-Fi, Personal Hotspot off, Bluetooth on, no VPN on the phone. Guest networks often block device-to-device traffic. Then choose Duplicat again in Control Center. If it is not in that list, press Start and allow local network access in System Settings.
Duplicat does not appear in Screen MirroringThe engine is not running: press Start and wait for the orange dot. If it fails, the window shows why and Settings → Diagnostics has the log.
Mirroring works, clicks do nothingEither the Mac is in demo mode, or Developer Mode is off, or input has not attached. Check Settings → Mouse & Keyboard; connect the cable, unlock the phone and press Start once.
“Developer Mode is off on the phone”Follow section 3. Turning it on needs a restart and a second confirmation after the restart.
The Developer Mode row is missingConnect the cable, unlock the phone, press Start and wait a few seconds. Connecting the phone to Xcode once does the same.
“Trust This Computer?” never appearsUnlock the phone first, then unplug and replug the cable.
Black video in Netflix or the Apple TV appExpected. AirPlay receivers are not licensed to decrypt DRM, so protected video is excluded from the mirror.
The stream stops by itselfThe phone locked, Auto-Lock fired, or a call started. Keep the screen awake and end calls before mirroring.
⌘C and ⌘V do not reach the phoneCommand shortcuts belong to the Mac. Type into the mirror, or use the phone's own paste menu.
Pinch to zoom does nothingOne finger only, for now. Drag to scroll, and use the app's own zoom controls.
A key is refusedCopy the entire line from the email and use Paste in the licence window. If the email is gone, recover it.
“Duplicat.app is damaged” or it will not openPress Open Anyway next to the Duplicat message in System Settings → Privacy & Security. The app is signed outside the App Store, so the first launch is always the one macOS questions.
No video engine after moving the appThe engines live inside the bundle. Move the whole Duplicat.app folder, not the executable out of it, and launch it from Applications.
The picture lags behind the keyboardInput is paced by the video stream, and Wi-Fi adds latency. Use the cable when it needs to feel immediate.

Still stuck? Settings → Diagnostics → Copy Log puts the whole session on the clipboard — it says which stage failed.

11Keyboard shortcuts

ShortcutWhat it does
⌘↩Start mirroring
⌘.Stop mirroring
⌘⇧STake a screenshot
⌘⇧RStart or stop a recording
⌘KOpen the iPhone passcode pad
⌘,Open Settings

The same commands are in the menu bar, which is the reliable way to reach them when the window is as narrow as the phone.

Try it

The mirror is free. The licence is €4.99, once, for the Macs you use.

Recover a key