scrcpy is a screen mirroring and control tool that displays and controls Android devices connected via USB or wireless connection.
The tool solves the problem of remotely viewing and interacting with Android devices from a computer without requiring root access or installation of software on the device. It works by mirroring the device's video and audio streams to the computer while accepting keyboard and mouse input to control the device. The approach emphasizes low latency, high performance, and minimal resource consumption, achieving frame rates between 30 and 120 fps with latency in the 35 to 70 millisecond range.
The tool suits developers, testers, and users who need to interact with Android devices from a desktop environment. It works on Linux, Windows, and macOS, and requires only that the target device run Android 5.0 or later with USB debugging enabled. Key capabilities include audio forwarding for Android 11 and above, device recording, virtual display support, camera mirroring on Android 12 and above, bidirectional copy-paste, gamepad support, and the ability to simulate physical keyboard and mouse input via HID. The tool can also function in OTG mode and on Linux can act as a V4L2 webcam source.
The project maintains a substantial user base, with nearly all open issues originating from external users rather than the core team. Maintainers respond to new issues and pull requests within hours. Work in the issue tracker centers on feature requests, input event handling, and user questions.