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.
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.
<img src="docs/screenshots/05-Webcam-viewer-for-showing-phone-handling.png" height="280" />
<b>Webcam drawer</b> — pop out a live webcam feed alongside the mirrored phone to demonstrate hands-on gestures, taps, and physical buttons during demos or training sessions.
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.
Install
The fastest way (Windows 10 / 11):
winget install MSEndpointMgr.1PhoneMirror
Already installed? Upgrade to the latest release with:
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.
Ctrl+S, or click the white circle in the menu/bezel. Save to Pictures\1PhoneMirror\, copy to clipboard, and/or open directly in Snagit Editor (any combination, toggled in Settings).
Video (MP4)
Ctrl+R, or click the red circle in the menu/bezel. H.264 via libx264, 30 fps by default.
Animated GIF
Switch format in Settings → record as above. Auto-downscaled to 480 px wide.
Delayed recording
Right-click the record button → Start in 5 s. Frosty countdown overlays the screen.
Timed clip
Right-click → Record 5 s / 10 s / 15 s — auto-stops at the chosen duration.
All output lands in your Pictures\1PhoneMirror\ folder; click the folder
button on the menu (or use the Windows file dialog) to open it.
Keyboard shortcuts
Key
Action
F
Toggle fullscreen
M
Toggle island menu
L
Toggle log viewer
A
Open Android pair / connect dialog
I
Toggle info panel
V
Toggle version history
W
Toggle webcam drawer (slides down from the phone bottom)
Screenshot — save to Pictures folder and/or clipboard (per Settings)
Ctrl+Shift+S
Screenshot with annotation tools
Ctrl+Shift+T
OCR — copy text from a region of the phone screen
Ctrl+R
Start / stop screen recording (MP4 or GIF, per Settings)
Ctrl+0
Reset window to default size
Ctrl+1 … Ctrl+9
Switch to device 1 … 9 in the bottom-bezel picker
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.5.1
01.06.2026
Bezel side buttons: action button, better sizing & visibility.
0.5.0
21.05.2026
Webcam drawer (W) — a landscape camera panel that slides out of the phone's bottom bezel, matching the log panel's drawer style. Lists Media Foundation cameras (right-click the bottom W button to pick one), live preview at the camera's native resolution, optional horizontal mirror. Screenshots (Ctrl+S) and screen recordings (Ctrl+R) capture the phone + webcam as one framed composite — WYSIWYG. In-drawer screenshot button (left) saves the webcam frame on its own ( Webcam.png) and right-edge camera-switch dots flip between connected cameras. Crash-guard skips webcam auto-start after a failed launch so a bad camera can't lock the app. Version-history panel (V) scrollbar is now click-draggable.
0.4.2
20.05.2026
New capture file naming convention (e.g. 2026-05-20 14-32-07 Screenshot.png, 2026-05-20 14-32-07 Recording.mp4) so screenshots and recordings sort chronologically in Explorer.
0.4.1
18.05.2026
Open screenshots in Snagit Editor — new third output toggle alongside Save to folder and Copy to clipboard. Auto-detects any installed Snagit version (registry + Program Files); shows a warning toast if Snagit isn't installed when enabled.
0.4.0
18.05.2026
Multi-device keyboard switcher (Ctrl+1…Ctrl+9) jumps between connected phones in the bottom-bezel picker. New Always keep window on top setting. AirPlay sources now label as Apple 1/2/… instead of Device 1/2/…. Tooltip shows the shortcut.
0.3.9
17.05.2026
Small telemetry in settings.
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.
Code signing
Releases are currently unsigned while a code-signing certificate is
being arranged. Windows SmartScreen may therefore warn on first launch;
verify the published SHA-256 on the GitHub Release page before installing.
Privacy policy
1PhoneMirror sends an anonymous launch ping to a maintainer-operated
endpoint by default and checks the GitHub Releases API for updates.
Full details — exactly what is sent, where, and how to opt out — are
documented in PRIVACY.md.
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: