scrcpy: Android Screen Mirroring for Desktop
scrcpy mirrors an Android screen to a Linux, Windows, or macOS desktop and lets you drive the phone with your own keyboard and mouse, without root and without installing anything on the device. Reach for it when you need a fast, no-frills mirror for testing, demos, or controlling a device you're debugging; skip it if you want a polished GUI with device-management extras, because scrcpy stays a single-purpose command-line tool.
Display and control your Android device
scrcpy is a free, open-source application that mirrors an Android phone's screen onto a computer and lets you operate it with the computer's keyboard and mouse, connecting over USB or TCP/IP without root access or a companion app on the device. It runs natively on Linux, Windows, and macOS, showing only the device screen, and the README lists 30-120fps performance depending on the device and 35-70ms of latency.
Lightweight, performant, and non-intrusive
- โStarts fast: the README puts the first frame on screen after around one second.
- โRuns at 30-120fps depending on the device, with resolution at 1920x1080 or above by default, per the README.
- โLatency lands in the 35-70ms range according to the README, low enough for interactive use like typing or dragging.
- โNothing gets installed on the Android device itself; scrcpy stays native on the desktop side.
- โNo account, no ads, and no network connection needed to launch it, per the README.
- โApache-2.0 license with no strings attached.
Prerequisites and known issues
- โณAndroid device must run at least API 21 (Android 5.0); audio forwarding needs API 30+ (Android 11+), so older phones lose sound mirroring.
- โณUSB debugging has to be enabled on the device first, and on some Xiaomi devices you also need to turn on the separate 'USB debugging (Security Settings)' option and reboot before keyboard and mouse control works, per the README.
- โณWebcam mirroring via V4L2 is Linux-only, per the README.
- โณExact install commands for each OS aren't in the README itself; it defers to separate per-platform docs.
- โณIt's a single desktop application driven mostly by command-line flags, not a device-management console with a GUI for handling a fleet of phones.
Key features for Android interaction
- โAudio forwarding for Android 11 and newer (API 30+), sending device sound to the desktop, per the README.
- โScreen recording to a file, independent of whether you're watching the mirror live.
- โVirtual display support, so you can open an app like VLC in a separate display instead of the device's own screen.
- โMirroring keeps working even with the Android device's screen turned off, per the README.
- โTwo-way copy-paste between the computer and the device.
- โCamera mirroring for Android 12+ (API 31+), including exposing the device camera as a Linux webcam through V4L2.
- โPhysical keyboard and mouse simulation via HID, plus gamepad support for controllers plugged into the computer.
- โOTG mode to control a device with keyboard and mouse without USB debugging enabled, per the README.
Getting started with scrcpy
Install instructions live in separate per-platform docs the README links to: doc/linux.md, doc/windows.md (with a note to read its 'how to run' section), and doc/macos.md. The README doesn't spell out install commands itself, so exact install steps aren't part of the facts here. What is documented: the Android device needs at least API 21 (Android 5.0), and USB debugging must be enabled on the device before connecting. scrcpy runs on Linux, Windows, and macOS.
Other tools for Android screen mirroring
Frequently asked questions about scrcpy
No. scrcpy connects over USB or TCP/IP and doesn't need root access or any app installed on the Android device, per the README.
scrcpy needs at least API 21 (Android 5.0) on the device. Audio forwarding needs API 30 or higher (Android 11+), according to the README.
Yes, scrcpy supports connecting over TCP/IP in addition to USB, so you can mirror a device wirelessly once it's set up, per the README.
scrcpy forwards device audio to the computer on Android 11 and newer (API 30+), per the README's audio forwarding feature.
Yes, scrcpy is free and open-source software, licensed under Apache-2.0, with no account or ads required to run it.
Yes, scrcpy includes a recording feature that saves the mirrored screen, and audio on supported Android versions, to a file, per the README.
The problem it solves
Testing an Android app or chasing a UI bug usually means holding the phone in one hand, angling a camera at it to record the screen, or reaching for a heavyweight device-management suite just to see the screen on a monitor. scrcpy's README frames its own approach around avoiding both extremes: no app to install on the device, no root, no account, just a mirror and keyboard/mouse control that gets going in about a second.
Best use cases
- โขDemoing an Android app on a bigger screen during a meeting or a recorded walkthrough, using scrcpy's recording feature to save the session.
- โขDebugging UI or touch behavior with a real keyboard and mouse instead of your thumbs, via scrcpy's physical HID keyboard/mouse simulation.
- โขRunning an app in a separate virtual display, similar to the README's example of opening VLC apart from the phone's own screen.
- โขControlling a device with USB debugging turned off via OTG mode, when you just need keyboard/mouse input, not a mirror.
- โขExposing the phone's camera as a webcam on Linux over V4L2, an option the README calls out separately from screen mirroring.
Who should try it โ and who should skip
Try scrcpy if you're a developer, QA tester, or anyone who wants to drive an Android device from a keyboard and mouse without installing anything on the phone or rooting it โ the command-line flags cover video codec, bitrate, resolution, and virtual displays in detail. Skip it if you want a mouse-friendly GUI with device-fleet management, remote-support features, or one-click mirroring without touching a terminal; scrcpy's interface is entirely flag-driven.
Related repositories
Is scrcpy worth your time?
ChatGPT, Claude and Perplexity can all read this page. Ask one of them what it makes of scrcpy.
