Qt-based desktop client for displaying and controlling Android devices over USB or Wi-Fi, without root or installing anything on the device.
Genymobile/scrcpy
Mirrors and controls Android devices from a computer over USB or TCP/IP, with no root or on-device app required.
Open-source alternative to:AirDroid
TeamViewer
- Stars
- 152,663
- Forks
- 13,993
- Open issues
- 2,933
- Last commit
- 24 hours ago
What is it?
scrcpy displays and controls an Android device on Linux, Windows, and macOS. It mirrors video and, on Android 11 and later, audio, and lets you use the computer's keyboard and mouse to interact with the device. Connections work over USB or wirelessly over TCP/IP.
It requires no root access and installs nothing on the Android device, so the phone is left unchanged after use. The project emphasizes low latency, a startup time of about one second, and a native client that shows only the device screen. There are no accounts, ads, or internet requirement.
Beyond mirroring, scrcpy can record the screen, create a virtual display, turn the device screen off while mirroring, copy and paste in both directions, forward camera video on Android 12 and later, and expose the device camera as a V4L2 webcam on Linux. It also supports simulated physical keyboard and mouse input, gamepads, and OTG mode.
Key features
- 01Mirrors device video and, on Android 11+, audio over USB or TCP/IP.
- 02Controls the device with the computer's keyboard and mouse.
- 03Records the screen to a file.
- 04Creates virtual displays and can turn off the device screen while mirroring.
- 05Supports bidirectional copy-paste and gamepad input.
- 06Exposes the device camera as a V4L2 webcam on Linux.
Use cases
- Showing or demonstrating an Android phone's screen during development or presentations.
- Controlling a phone from a desktop for testing or long typing sessions.
- Recording an app session from a device for bug reports or tutorials.
- Using an Android phone's camera as a webcam on a Linux computer.
Quick start
- 1
Enable USB debugging on your Android device
- 2
Install scrcpy on Linux from the Linux guide (package manager)
- 3
Connect the device via USB and run scrcpy
scrcpy
Things to know
- Requires USB debugging enabled on the Android device, and some devices need an extra security option for keyboard and mouse control.
- Audio forwarding only works on Android 11 and newer.
Topics
FAQ
- What is scrcpy?
- Mirrors and controls Android devices from a computer over USB or TCP/IP, with no root or on-device app required. scrcpy displays and controls an Android device on Linux, Windows, and macOS. It mirrors video and, on Android 11 and later, audio, and lets you use the computer's keyboard and mouse to interact with the device. Connections work over USB or wirelessly over TCP/IP.
- Is scrcpy free to use? What license does it have?
- scrcpy is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
- Is scrcpy still maintained?
- Actively maintained. The last commit to scrcpy was on Oct 20, 2026.
- What can I use scrcpy for?
- Showing or demonstrating an Android phone's screen during development or presentations. Controlling a phone from a desktop for testing or long typing sessions. Recording an app session from a device for bug reports or tutorials. Using an Android phone's camera as a webcam on a Linux computer.
- How do I install scrcpy?
- Enable USB debugging on your Android device Install scrcpy on Linux from the Linux guide (package manager) Connect the device via USB and run scrcpy: scrcpy
- Where can I get scrcpy?
- The source code and installation instructions are on GitHub: https://github.com/Genymobile/scrcpy
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A graphical desktop GUI for scrcpy that mirrors and controls Android devices on Windows, macOS and Linux.
A C audio playback and capture library distributed as a single source file, with no external dependencies.
Google's open-source SDK for building natively compiled mobile, web, and desktop apps from a single Dart codebase.
A framework for building native Android and iOS apps using React, with JavaScript UI rendered by native platform components.
Open-source, self-hostable remote desktop application written in Rust, offered as an alternative to TeamViewer.