gitmyhub

scrcpy

C ★ 145k updated 4d ago

Display and control your Android device

scrcpy mirrors your Android phone's screen and audio to your computer and lets you control it with your keyboard and mouse, wirelessly or via USB, with no root or app install required.

Csetup: easycomplexity 2/5

scrcpy, pronounced "screen copy," is an application that mirrors an Android device's screen and audio to your computer and lets you control the device using your computer's keyboard and mouse. The basic problem it solves is that you sometimes want to use, demo, test, or record an Android device on a bigger screen with desktop input, and existing solutions either need root access, install software on the phone, or have noticeable lag. scrcpy avoids all of that: it does not require root, it does not leave anything installed on the Android device, and it works over USB or TCP/IP for wireless use. It runs on Linux, Windows, and macOS.

The README highlights design goals of lightness (it just shows the device screen), performance at 30 to 120 frames per second depending on the device, quality of 1920x1080 or above, low latency around 35 to 70 ms, fast startup at about a second to first frame, and being free and open source. Listed features include audio forwarding, recording, virtual displays, mirroring with the device screen turned off, copy-paste in both directions, configurable quality, camera mirroring, exposing the device camera as a webcam on Linux through V4L2, simulating a physical keyboard or mouse over HID, gamepad support, and an OTG mode that lets you use the computer to control the device without mirroring or USB debugging. Usage is via a command-line tool with many options, with example invocations in the README that pick the H.265 video codec, set max size and frame rate, record to MP4, expose a virtual display, or use the device camera as a webcam.

You would use scrcpy to mirror an Android device for presentations, gaming with gamepads, screen recording, app testing, or simply working from a bigger keyboard. The Android device must be at least Android 5.0, and audio forwarding requires Android 11 or newer. The project is written in C and licensed under Apache License 2.0.

Where it fits