1PhoneMirror is an open-source screen-mirroring receiver for Windows that enables wireless display of content from iOS, iPadOS, macOS devices via AirPlay (Screen Mirroring) and Android devices through Wireless Debugging. It provides a seamless experience by displaying mirrored content within a phone-shaped window on your PC, eliminating the need for any app installation on the mobile device or physical cables.
Key Features:
Wireless Mirroring: Supports AirPlay for iOS/iPadOS/macOS and scrcpy for Android via Wireless Debugging.
Capture Tools: Facilitates one-click screenshots (PNG) and screen recordings (MP4 or GIF), preserving the phone's framed appearance for professional documentation.
Multi-device Connectivity: Allows multiple devices to remain paired simultaneously, appearing as dots in the bottom bezel for quick switching.
Customization Options: Includes settings for bezel color, screenshot toggles, and recording format selection.
Audience & Benefit:
Ideal for professionals such as technical writers, trainers, and IT specialists who require clean, framed screenshots for documentation or training materials. 1PhoneMirror streamlines the capture process, ensuring content is ready for immediate use in guides, presentations, or slides without additional editing.
Available for installation via winget, making it easy to integrate into your workflow.
README
1PhoneMirror
An open-source screen-mirroring receiver for Windows that lets an iPhone or
an Android phone show up inside a phone-shaped window on your PC — no app
installed on the phone, no cables.
Android — Wireless Debugging via the bundled adb + scrcpy-server.jar.
Miracast — Wi-Fi Direct receiver (experimental, Windows-only).
Capture — one-click screenshots (PNG) and screen recording (MP4 or GIF) straight into a phone-framed picture or clip — perfect for documentation.
Multiple phones can stay paired at once and appear as small dots in the
bottom bezel; left-click switches the active source, right-click opens a
menu to disconnect.
> Like the project? Buy me a coffee ☕ — every tip helps keep development going.
Why 1PhoneMirror exists
I build documentation and deliver training on managing Android and iOS
devices through Microsoft Intune. Every walkthrough needs clean
screenshots of the phone — ideally framed in a real device shape so
readers immediately know what they're looking at.
Finding a tool that did just that turned out to be surprisingly painful:
the free options either didn't work reliably, locked the good features
behind a subscription, or produced bare un-framed captures I had to
re-edit by hand. So I wrote my own. 1PhoneMirror is the result —
a no-install, no-cable mirror that drops a properly-framed phone image
straight into your screenshots and recordings, ready to paste into a
guide, a Loop page, or a slide deck.
Screenshots
<img src="docs/screenshots/01-waiting.png" height="280" />
<img src="docs/screenshots/02-info-panel.png" height="280" />
<b>Idle screen</b> — quick reminders for AirPlay (iOS) and Wireless debugging (Android), with the framed phone window ready to receive.
<b>Info panel</b> (I) — version, shortcuts, network requirements, and a one-click "Copy network test script" for IT validation.
<img src="docs/screenshots/03-settings-panel.png" height="280" />
<img src="docs/screenshots/04-log-viewer.png" height="280" />
<b>Settings panel</b> (S) — bezel colour swatches, screenshot/clipboard toggles, computer-name identity, and the MP4 / GIF recording-format selector.
<b>Log viewer</b> (L) — live activity drawer slides out to the right, perfect for debugging AirPlay handshakes or Android pairing.
Architecture
The receiver runs entirely on the PC. AirPlay (iOS) and scrcpy (Android)
streams are decoded with FFmpeg and rendered through SDL2 inside the
phone-shaped window. Recording captures the same RGBA frames straight
into MP4 (libx264) or animated GIF.
Tap Pair device with pairing code — note the IP : port and 6-digit code.
PC: in 1PhoneMirror press A — the dialog pre-fills your PC's /24
subnet (e.g. 192.168.0.); type the phone's last octet, the pair port,
and the PIN, then Connect. The phone shows up via mDNS within a
second or two and starts mirroring.
A new pairing code is required each time the pair-with-code screen is
opened. Once paired, the device serial sticks until you forget it on
the phone.
Screenshot — save to Pictures folder and/or clipboard (per Settings)
Ctrl+R
Start / stop screen recording (MP4 or GIF, per Settings)
Ctrl+C
(Log viewer) Copy entire log to clipboard
Ctrl+X
(Log viewer) Clear log
Esc
Close panel / quit
Version history
Version
Date
Highlights
0.3.8
16.05.2026
Tuned for larger screens from macOS. Compact bezel icons, panels and overlays when mirroring iPad/Mac sources; window now reshapes when switching between connected devices.
0.3.7
15.05.2026
OCR text capture (Ctrl+Shift+T): right-click any region of the mirrored phone screen to copy the recognised text straight to the Windows clipboard. Powered by Windows.Media.Ocr.
0.3.6
14.05.2026
Screenshot annotation (Ctrl+Shift+S): arrow, rectangle, highlight, pixelate and text tools, 5-colour palette, line-width slider, undo, save (PNG + clipboard).
0.3.5
13.05.2026
Version check and UI tunings. In-app GitHub update check, Info panel "About" section, polished footer typography.
0.3.4
13.05.2026
New Android discovery routine for easy connect.
0.3.3
12.05.2026
Right-click the resize grip to reset the window to its default size.
0.3.2
11.05.2026
User interface fixes.
0.3.1
10.05.2026
Phone frame on recordings — MP4 and GIF now include the phone bezel/rounded corners just like screenshots. GIF gets per-frame optimal palette via palettegen+paletteuse with genuine transparent rounded corners.
0.3.0
10.05.2026
Screen recording — MP4 (H.264) and GIF, Ctrl+R, right-click for 5 s delay or 5 / 10 / 15 s timed clips. Frosty countdown overlay, REC chip while recording. Format selector in Settings. New bezel record button alongside the screenshot button.
0.2.5
09.05.2026
Info panel: copy network-test PowerShell script (with MDM check).
0.2.4
08.05.2026
Refined bezel toggles and auto-collapse on connect.
0.2.3
08.05.2026
Better Android experience and quicker screenshots.
0.2.2
08.05.2026
Settings: identify as computer name on the network. Bezel device dots show play/pause icon per source.
Multiple iOS devices stay paired — switch from bezel dots.
0.1.5
06.05.2026
AirPlay PIN pairing for trusted-device security.
0.1.4
06.05.2026
Slide-out log viewer with live filtering (press L).
0.1.2
05.05.2026
Dynamic island menu in top bezel for quick actions.
0.1.1
05.05.2026
Screenshot capture to clipboard and Pictures folder.
0.1.0
05.05.2026
iOS AirPlay support.
0.0.5
04.05.2026
Initial ideas and implementation.
The full version log is also available in-app — press V.
Known app quirks
A few iOS apps interact with AirPlay in unusual ways. These are app-side
behaviours, not 1PhoneMirror bugs, but they're worth knowing about:
TripIt — when launched, allocates a separate landscape 1920×1080
AirPlay surface and routes that to the receiver instead of mirroring
the on-phone view. The result is a small "second-monitor" canvas that
doesn't match what you see on the phone and isn't interactive.
1PhoneMirror keeps the phone frame stable across this canvas switch
(no auto-rotate to landscape) and letterboxes the surface inside the
phone screen rect, but the content is whatever TripIt chose to send.
If you spot another app that misbehaves, please open an issue with a
screenshot and the relevant lines from the in-app log (L).
If 1PhoneMirror saves you time on Intune docs, training, or just casual
demos, consider tipping a coffee — it directly funds new features and
keeps the project free for everyone.
License
1PhoneMirror is licensed under GPL-3.0 — see LICENSE.
Third-party components
The Windows installer bundles the following components, each under its own
license: