scrcpy shows an Android device’s screen in a window on your computer and lets you drive it with mouse and keyboard. It works over adb, needs nothing installed on the device, and is the fastest way to look at a head unit without standing in the car. This guide installs scrcpy and checks that it starts; what the BYD head unit does when you point scrcpy at it is a separate article.
Before you start#
adbmust work first. scrcpy is a client for it. Follow Install adb on Windows, Linux and macOS and make sureadb devicesruns. The official scrcpy archives ship their own copy ofadb— convenient, but it is a secondadbon your machine; see If it doesn’t work.- The device side needs Android 5.0 (API 21) or newer and USB debugging enabled. Audio forwarding needs Android 11 or newer; on Android 10 or earlier scrcpy disables it automatically and says so.
- Download size 10–17 MB. Current release at the time of writing: v4.1 (12 Jul 2026). Distribution packages vary from current to unusable — the table below says which.
- scrcpy is open source (Apache 2.0) by Genymobile. Nothing here needs an account or a paid tool.
Windows#
Step 1 — Download and unpack#
Download scrcpy-win64-v4.1.zip (10.8 MB) from the latest release and extract it somewhere permanent, for example C:\scrcpy. The folder contains scrcpy.exe, scrcpy-server, its own adb.exe, and scrcpy-console.bat — double-click that to get a terminal already in the right place.
Or with a package manager. winget installs adb alongside:
winget install --exact Genymobile.scrcpyChocolatey and Scoop have it too (choco install scrcpy, scoop install scrcpy); with those, install adb the same way if you have not already.
Step 2 — Add it to PATH#
Same procedure as for adb: Settings → System → About → Advanced system settings → Environment Variables → User variables → Path → New → C:\scrcpy. Or from PowerShell:
$p = [Environment]::GetEnvironmentVariable('Path', 'User'); [Environment]::SetEnvironmentVariable('Path', "$p;C:\scrcpy", 'User')Open a new terminal. winget does this for you.
Step 3 — Check#
scrcpy --versionLinux#
Step 1 — Install#
The official static build is the reliable option. It bundles adb and scrcpy-server:
curl -LO https://github.com/Genymobile/scrcpy/releases/download/v4.1/scrcpy-linux-x86_64-v4.1.tar.gz
tar xzf scrcpy-linux-x86_64-v4.1.tar.gz -C ~/.local
echo 'export PATH="$HOME/.local/scrcpy-linux-x86_64-v4.1:$PATH"' >> ~/.bashrcUse ~/.zshrc for zsh, then open a new terminal. Package managers, checked 26 Aug 2026:
| Distribution | Command | Version | Use it? |
|---|---|---|---|
| Arch | sudo pacman -S scrcpy |
4.1 | Yes |
| Fedora | sudo dnf copr enable zeno/scrcpy && sudo dnf install scrcpy |
current | Yes — the project’s own repository |
| Debian 13 | apt install scrcpy from trixie-backports |
3.3.4 | Works; backports needed |
| Debian 12 | — | — | Static build |
| Ubuntu 24.04 | sudo apt install scrcpy |
1.25 | No — three years old; the project marks it obsolete |
| Snap | snap install scrcpy |
— | No — marked obsolete by the project |
Step 2 — USB permissions (USB only)#
Nothing extra over Wi-Fi. Over USB, the same udev rule and plugdev group as in the adb guide apply — scrcpy just uses adb.
Step 3 — Check#
scrcpy --versionmacOS#
Step 1 — Install#
Homebrew (4.1, pulls in ffmpeg, libusb and SDL 3), plus adb if the adb guide has not already put it there:
brew install scrcpy
brew install --cask android-platform-toolsMacPorts sets up adb itself: sudo port install scrcpy.
Or the official static build — scrcpy-macos-aarch64-v4.1.tar.gz (Apple silicon, 12.4 MB) or scrcpy-macos-x86_64-v4.1.tar.gz (Intel, 13.3 MB) from the latest release, which bundles adb:
curl -LO https://github.com/Genymobile/scrcpy/releases/download/v4.1/scrcpy-macos-aarch64-v4.1.tar.gz
tar xzf scrcpy-macos-aarch64-v4.1.tar.gz -C ~/.local
echo 'export PATH="$HOME/.local/scrcpy-macos-aarch64-v4.1:$PATH"' >> ~/.zshrcIf you downloaded the archive with a browser instead of curl, clear the quarantine flag before the first run: xattr -dr com.apple.quarantine ~/.local/scrcpy-macos-aarch64-v4.1.
Step 2 — Check#
scrcpy --versionCheck that it runs — all systems#
scrcpy --versionFrom the Windows machine this guide was written on (it still has 3.3.4 from the previous release; 4.1 prints the same shape):
scrcpy 3.3.4 <https://github.com/Genymobile/scrcpy>
Dependencies (compiled / linked):
- SDL: 2.32.8 / 2.32.8
- libavcodec: 61.19.101 / 61.19.101
- libavformat: 61.7.100 / 61.7.100Then, with a device showing as device in adb devices:
scrcpyA window with the device screen opens. On the first run scrcpy pushes scrcpy-server to the device over adb; nothing is installed permanently there. Options you will reach for with a head unit — untested on BYD until the head-unit article says otherwise:
scrcpy --tcpip=192.168.0.10 # connect over Wi-Fi to a device already listening on 5555
scrcpy -s 192.168.0.10:5555 # pick one device when several are attached
scrcpy --max-size=1280 # scale a wide display down; less bandwidth, less lag
scrcpy --no-audio # silence the audio warning on Android 10 and earlier
scrcpy --max-fps=30If it doesn’t work#
scrcpy: command not foundor “‘scrcpy’ is not recognized” — PATH not applied. Open a new terminal;where.exe scrcpy(Windows) orwhich scrcpy(Linux, macOS) shows what the shell found.adb server version (41) doesn't match this client, or devices that appear foradbbut not for scrcpy — two differentadbbuilds: the one from the adb guide and the one bundled in the scrcpy archive (on our machine, platform-tools 37.0.0 next to scrcpy’s bundled 36.0.0). scrcpy uses the firstadbon PATH. Runadb kill-server, then either keep one on PATH or point scrcpy at a specific binary with theADBenvironment variable.ERROR: Could not find any ADB device—adb devicesis empty. Connect the device first; scrcpy does not do that for you (--tcpipis the exception).unauthorized— accept the debugging prompt on the device screen.- Window opens black, or the video stream fails — the device’s encoder rejected the request. Try
--max-size=1024, thenscrcpy --list-encodersand pick one with--video-encoder=. - macOS: “cannot be opened because the developer cannot be verified” — the quarantine flag; see the
xattrcommand above. - Linux, USB:
no permissions— udev rule /plugdev, as in the adb guide.
What we tested#
The Windows steps and the scrcpy --version output are from a Windows 11 machine (build 26200) with scrcpy 3.3.4 from the official win64 zip, 26 Aug 2026; the zip contents listed in Step 1 are what that archive contains. The Linux and macOS archive contents were checked by listing the v4.1 release files; the install commands come from the project’s own per-OS documentation, Homebrew and the distribution package indexes, all checked on 26 Aug 2026 — not yet run by us on a Linux or macOS machine. scrcpy was not run against the head unit for this guide.