Display and control your Android device

★ 154,470⑂ 14,178👁 1,423⑃ 770● 6,225▤ 54◈ 0
CApache-2.0Created 2017-11-21
154,470
stars
+86
14,178
forks
1,423
watchers
770
prs
6,225
issues
54
releases
0
discussions

README

[!WARNING]
 This GitHub repo () is the only official
source for the project. Do not download releases from random websites, even if
their name contains scrcpy.

 scrcpy (v5.0.1)



_pronounced "screen copy"_

This application mirrors Android devices (video and audio) connected via USB or
TCP/IP and allows control using the
computer's keyboard and mouse. It does not require _root_ access or an app
installed on the device. It works on _Linux_, _Windows_, and _macOS_.

 
 
 

!screenshot

It focuses on:

 - lightness: native, displays only the device screen
 - performance: 30~120fps, depending on the device
 - quality: 1920×1080 or above
 - low latency: [35~70ms][lowlatency]
 - low startup time: ~1 second to display the first image
 - non-intrusiveness: nothing is left installed on the Android device
 - user benefits: no account, no ads, no internet required
 - freedom: free and open source software

[lowlatency]: https://github.com/Genymobile/scrcpy/pull/646

Its features include:
 - audio forwarding (Android 11+)
 - recording
 - virtual display
 - mirroring with Android device screen off
 - copy-paste in both directions
 - configurable quality
 - camera mirroring (Android 12+)
 - mirroring as a webcam (V4L2) (Linux-only)
 - physical [keyboard][hid-keyboard] and [mouse][hid-mouse] simulation (HID)
 - gamepad support
 - OTG mode
 - and more…

[hid-keyboard]: doc/keyboard.mdphysical-keyboard-simulation
[hid-mouse]: doc/mouse.mdphysical-mouse-simulation

 Prerequisites

The Android device requires at least API 21 (Android 5.0).

Audio forwarding is supported for API = 30 (Android 11+).

Make sure you [enabled USB debugging][enable-adb] on your device(s).

[enable-adb]: https://developer.android.com/studio/debug/dev-optionsenable

On some devices (especially Xiaomi), you might get the following error:


Injecting input events requires the caller (or the source of the instrumentation, if any) to have the INJECT_EVENTS permission.


In that case, you need to enable [an additional option][control] USB debugging
(Security Settings) (this is an item different from USB debugging) to control
it using a keyboard and mouse. Rebooting the device is necessary once this
option is set.

[control]: https://github.com/Genymobile/scrcpy/issues/70issuecomment-373286323

Note that USB debugging is not required to run scrcpy in OTG mode.


 Get the app

 - Linux
 - Windows (read how to run)
 - macOS


 Must-know tips

 - Reducing resolution may greatly improve performance
   (scrcpy -m1024)
 - _Right-click_ triggers BACK
 - _Middle-click_ triggers HOME
 - Alt+f toggles fullscreen
 - There are many other shortcuts


 Usage examples

There are a lot of options, documented in separate pages.
Here are just some common examples.

 - Capture the screen in H.265 (better quality), limit the size to 1920, limit
   the frame rate to 60fps, disable audio, and control the device by simulating
   a physical keyboard:

    bash
    scrcpy --video-codec=h265 --max-size=1

Top issues

Latest release

scrcpy 5.0.1 v5.0.1 2026-10-08
_To receive a notification when a new release is available, click on Watch  Custom  Releases at the top._

---

scrcpy v5.0.1

Changes since v5.0:
 - Accept DRM_FORMAT_RG88 for NV12 chroma plane (7070, 7073)
 - Fix H.265 hardware decoding on Windows (7072)
 - Use the GPU of the renderer for VA-API decoding (7075, 7081)
 - Force EGL only if VA-API is enabled (7079)

---



 Highlights

 Hardware decoding fixes

Scrcpy 5.0 introduced hardware decoding.

This patch release (5.0.1) fixes several issues:
 - on Linux with an NVIDIA VA-API driver (7070, 7073)
 - for H.265 on W

Snapshot: 2026-11-10T09:35:25Z · Data license Apache-2.0 · JSON