Skip to content
SamaOmmyPublic

About

Free, open-source Android screen mirroring for Windows: control your phone from your PC, see your PC on your phone, send files both ways, phone notifications on your PC. Private over Tailscale, no cloud.

Topics

Resources

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

Mirra logo

Mirra: free Android screen mirroring for Windows

Your PC on your phone. Your phone on your PC.
Mirror and control your Android phone from your PC, watch your PC on your phone, send files both ways and see your phone's notifications on your PC. Private, from anywhere, no cloud. Free and open source.

Download for Windows · Website · Set it up · Questions

Mirra on Windows, light mode: a connected Android phone, its battery and its notifications Mirra on Android, dark mode

Mirra is two apps that work together: Mirra for Windows on your PC and Mirra for Android on your phone.

  • Use your phone from your PC: your Android phone in its own window, smooth (up to 60 frames a second) and sharp. Your mouse is your finger, your keyboard types on the phone, Ctrl+V pastes. Pin the window on top while you work. No USB cable, no USB debugging, no developer options.
  • See your PC on your phone, live and full screen, with its sound if you want it. Pinch to zoom, take screenshots.
  • Send files both ways: drop files on the phone window (they land in the phone's Downloads), or tap Share > Mirra in any app on the phone (they land in Downloads\Mirra on the PC).
  • Your phone's notifications on your PC, as they arrive, with the phone's battery level.
  • Light and dark mode in both apps (follows Windows and Android, or pick one).
  • Private: everything goes straight between your own devices through Tailscale, a free private network (WireGuard). No cloud, no ads, no account with us. Nobody else, including this project, can see anything.
  • Updates itself, on the PC and on the phone.

A free, open-source alternative to scrcpy, Phone Link, AirDroid or Vysor for people who want both directions, from anywhere, without anything in the middle. (Mirra was called Samantha Screen Mirror before version 0.6.)

Which file do I download?

Go to the latest release and download only what you need:

You have Download What it is
A Windows PC Mirra-for-Windows-Setup.exe The installer. Double-click it, click Next, done.
An Android phone Mirra-for-Android-Setup.apk Easiest: don't download it yourself. Scan the QR code in Mirra on your PC and it comes from your PC.
A Windows PC, no installer wanted Mirra-for-Windows.zip The same program as a folder. Unzip it somewhere permanent and open Mirra.exe.
(nothing to do) Mirra-for-Windows.zip.sha256 Used by Mirra to check its own updates. You don't need it.

An iPhone? There is no iPhone app, but an iPhone can watch the PC in Safari (see iPhone).

Windows may say "Windows protected your PC" the first time, because the program is not code-signed (that costs money): click More info, then Run anyway.

Set it up (5 minutes, once)

1. On the PC

  1. Run Mirra-for-Windows-Setup.exe. Mirra opens when it is done.
  2. Mirra checks Tailscale (it offers to install it: open it and sign in, it's free), then click Start Mirra. From now on Mirra starts by itself with Windows.

2. On the phone

  1. Install Tailscale from the Play Store, sign in with the same account as the PC, and switch it on.
  2. Point the phone's camera at the QR code on Mirra's Home page on the PC and tap the link.
  3. Tap Open Mirra and connect. The first time, this downloads Mirra Setup from your PC: open the download, install it, open Mirra Setup and tap Install Mirra. Then go back to the page and tap the button again. Mirra opens and connects by itself.

No camera? Open Mirra on the phone and type the PC's name and the code shown on the PC.

3. To see the phone on the PC (once): in Mirra on the phone, under This phone on your PC, tap Turn it on, choose Mirra in Android's list and switch it on. Then click Open phone window in Mirra on the PC.

Why "Mirra Setup"? Android 13 and newer block that switch ("Restricted setting") for apps installed straight from a downloaded file, and many phones hide the option that unblocks it. Mirra Setup installs Mirra the way app stores do, so the switch simply works.

Using it

On the phone tap Show my PC: full screen, sideways (tap Rotate for upright), pinch to zoom, double-tap to zoom in or out, tap once for the bars. More has quality presets, the screen picker and Save a screenshot. Switch on Play the PC's sound to hear the PC.

On the PC, the phone window shows your phone at its own shape, at up to 60 pictures a second:

Do this To
Click Tap
Hold and drag Swipe, scroll, draw: the mouse is a finger
Mouse wheel Scroll
Right click, or Esc Back
Middle click Home
Type Type on the phone (tap a text field first)
Ctrl + V Paste the PC's clipboard on the phone

The toolbar beside it has Back, Home, Recent apps, Notifications, volume, lock, save a screenshot on the PC (into Pictures\Mirra), keep on top (the pin) and picture quality (720p / 1080p / Full, 30 / 60 fps, Standard / High / Maximum). Its title bar shows the phone's battery.

Files, both ways:

From Do this It lands in
PC to phone Drop files on the phone window, or click its Send a file button (or My phone > Send files to the phone) Downloads on the phone (a notification opens it)
Phone to PC In any app tap Share, then Mirra. Or in Mirra on the phone tap Send files to the PC Downloads\Mirra on the PC (Mirra shows a notice with Open folder)

Up to 1 GB per file. Sending to the phone needs This phone on your PC switched on in the phone app.

Notifications on the PC: your phone's notifications pop up at the bottom right of the PC as they arrive (Open phone opens the phone window), and My phone lists the latest ones with the phone's battery. The phone decides: Notifications on the PC in the phone app (on by default). The PC can turn the pop-ups off (My phone). Mirra skips its own notifications, ongoing ones (music, downloads) and ones apps mark as secret.

Light or dark: both apps follow Windows and Android. To choose yourself: Settings > Appearance on the PC, Appearance in the phone app.

The first time each session the phone asks Android to record its screen, and Mirra answers Start now for you, so nobody has to tap it. While the PC looks, the phone shows a notification. If recording is not possible, Mirra falls back to a few screenshots a second.

The Mirra window on the PC: Home shows whether Mirra is on (the switch turns it off and keeps it off), the QR code to connect a phone and your phone's status. My phone opens the phone window and sets its quality. Settings: appearance, sound, updates, Sign out all phones, the iPhone link, the log folder.

Closing the window does not stop Mirra; it keeps running in the background so your phone can always reach the PC.

On the phone, you stay in control: Let the PC tap and type, Smooth video, Notifications on the PC and Pause are switches in the app, and turning off the Accessibility switch in Android stops it completely. Banking apps and password screens show black on the PC (Android blocks them).

Updates

Both apps update themselves:

  • PC: when a new version is out, Mirra shows a pop-up: Update now or Later. It downloads the new version from this project's releases page, checks its SHA-256 checksum, swaps it in (your settings are kept; a failed swap puts the old version back), and opens again. It checks every few hours (Settings > Updates).
  • Phone: when a new version is out, Mirra on the phone shows a pop-up too (Update now or Later) and downloads it from this project's releases page, the same place as the PC. Android asks you to confirm. If GitHub can't be reached, it takes the matching version from your own PC instead.

Coming from Samantha Screen Mirror 0.5 or older? Click Update now there (or run samantha-mirror update). It becomes Mirra, and your shortcuts become Mirra shortcuts. On the phone, install Mirra with Mirra Setup (it replaces the old app; connect again afterwards).

iPhone

There is no iPhone app (Apple does not allow installing one from outside the App Store), and an iPhone cannot be shown on the PC. An iPhone can still watch the PC in Safari: in Mirra on the PC go to Settings > iPhone or a web browser > Show the link, and scan it with the iPhone's camera (Tailscale must be on in the iPhone). Then Share > Add to Home Screen.

How it works

Android: Mirra ----Tailscale (WireGuard, encrypted)----> PC: Mirra (background service + window)
  Show my PC   <---- picture (JPEG stream), sound (PCM) ----   screen capture (DXGI), speaker loopback
  this screen  ----- H.264 video (or screenshots) -------->   the phone window (decoded with OpenCV)
  touches      <---- touch, key and text events ----------   mouse and keyboard in the phone window
  • The PC listens only on its Tailscale address (100.x.y.z) and refuses to start otherwise. Every request needs the secret token, which a phone gets once by sending the pairing code shown on the PC.
  • The phone app always connects out to the PC. It never accepts connections, so nothing can reach into the phone.
  • Capture runs only while someone is watching, in both directions.

See SECURITY.md for the full threat model.

Questions

Is Mirra free? Yes: free and open source (MIT), no ads, no subscription, no account with us. The private connection uses Tailscale's free plan.

Does it need USB debugging, ADB or a cable? No. No developer options at all. It connects over Tailscale, so it works on the same Wi-Fi and from anywhere else.

Does my screen go through the cloud? No. Picture, sound, files and notifications go straight between your own devices, encrypted (WireGuard). Nobody else, including this project, can see them.

How is it different from scrcpy? scrcpy is a great open-source tool that needs USB debugging and shows the phone on the computer. Mirra needs no developer options, works from anywhere, and also shows your PC on your phone, sends files both ways and brings the phone's notifications to the PC.

Phone Link, AirDroid, Vysor? Mirra needs no Microsoft account and no account with us, works with any Android 11+ phone, and nothing passes through a company's server.

Troubleshooting

  • The phone says "Can't reach your PC": Tailscale is off on the phone, or the PC is asleep or not signed in to Windows. Set Windows to never sleep while plugged in (Settings > System > Power).
  • The QR code's page does not open: Tailscale must be on in the phone (the page comes from your PC).
  • "This PC no longer accepts this phone": someone used Sign out all phones. In the phone app tap Forget this PC, then scan the QR code again.
  • "Restricted setting" on the phone: Mirra was installed from the downloaded file directly. In the app tap Get Mirra Setup and let it install Mirra again.
  • The phone window says "Waiting for your phone": in Mirra on the phone, This phone on your PC must be on and not paused. The first picture can take a second or two.
  • "PC screen can't be captured right now": the PC is locked or showing a secure prompt. It recovers when unlocked.
  • No sound on the phone: switch it on in the phone app and check that sound is allowed in Settings on the PC.
  • Nothing connects at all: a Windows Firewall rule may be needed. In an Administrator PowerShell:
    New-NetFirewallRule -DisplayName "Mirra (Tailscale only)" -Direction Inbound -Protocol TCP `
      -LocalPort 8787,8788 -RemoteAddress 100.64.0.0/10 -Action Allow

For a full check, run samantha-mirror doctor in PowerShell in Mirra's folder.

Command line

Everything is in the window, but the command line (samantha-mirror.exe in Mirra's folder) is there for scripts: doctor (check everything), update (--check, -y), stop / start, link (iPhone link and QR code), setup (console setup), uninstall (remove start-at-logon), app (open the window), run (run the server here).

Settings file

%APPDATA%\SamanthaScreenMirror\.env (the folder kept its old name so updates keep your settings). The window manages it; you rarely need to touch it.

Variable Default Meaning
SM_TOKEN generated Access secret. Keep private. Sign out all phones replaces it.
SM_PORT 8787 Port on the Tailscale address (the live phone link uses the next port, 8788)
SM_MONITOR / SM_FPS / SM_JPEG_QUALITY / SM_SCALE 1 / 30 / 70 / 0.75 The PC picture's defaults
SM_MAX_CLIENTS 3 Max simultaneous viewers
SM_CURSOR 1 Draw the mouse pointer on the PC picture
SM_CAPTURE auto auto (DXGI, falls back to mss), dxgi, or mss
SM_UPDATE_CHECK 1 Look for new versions on GitHub (only contacts api.github.com)
SM_AUDIO 1 Let phones hear this PC's sound (each phone must also switch it on)
SM_LOOPBACK 0 Also listen on 127.0.0.1

Limitations

  • Windows on the PC, Android 11 or newer on the phone (iPhones: watching the PC in Safari only).
  • The PC is view-only from the phone by design: no remote control of the PC, now or later.
  • Banking apps and password screens show black on the PC (Android blocks them). Typing works in normal text fields. The phone's sound does not come to the PC.
  • The PC picture on the phone is a JPEG stream: documents and desktops are very light, full-screen video over a slow connection looks choppy. Sound is uncompressed, so it needs Wi-Fi-like speed.

Development

See CONTRIBUTING.md. Quick version: pip install -e ".[dev]", then ruff check . and pytest.

samantha_mirror/   the PC side (Python; the package kept its old name)
  desktop.py       the Mirra window (CustomTkinter)     phonewindow.py  the phone window (H.264 via OpenCV)
  server.py        the web API both apps use            streamrelay.py  the live phone link (port + 1)
  capture.py       PC screen -> JPEG                    audio.py        speaker loopback -> PCM
  phonelink.py     phone commands relay                 pairing.py, joinpage.py  pairing by QR code
  transfer.py      files both ways                      dropfiles.py    files dropped on a window
  runner.py        background service                   updater.py      updates
android/           Mirra for Android (plain Java, built by android/build.py without Gradle)
android/setup/     Mirra Setup (installs the app so Android does not restrict it)
packaging/         PyInstaller spec, the installer (mirra.iss), the logo, build-release.ps1
web/               the browser page for iPhones (React)
tests/             pytest (tests/test_android.py also runs the app's networking code on the PC)

License

MIT

About

Free, open-source Android screen mirroring for Windows: control your phone from your PC, see your PC on your phone, send files both ways, phone notifications on your PC. Private over Tailscale, no cloud.

Topics

Resources

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages