This page covers how to install scrcpy on Linux, Windows, and macOS — via package managers, prebuilt binary archives, and the install_release.sh script — and how to configure an Android device to accept a connection. It does not cover command-line usage (see Command-Line Interface) or the build system internals (see Build System).
Before running scrcpy, both the host machine and the Android device must meet certain requirements.
| Requirement | Minimum |
|---|---|
| Android API level | 21 (Android 5.0) |
| Audio forwarding | API 30 (Android 11+) |
| Camera mirroring | API 31 (Android 12+) |
| USB debugging | Enabled (except in OTG mode) |
USB debugging is enabled under Settings → Developer options → USB debugging. On some Xiaomi devices an additional option, USB debugging (Security Settings), must also be enabled to allow input injection; a reboot is required after toggling it.
Note: USB debugging is not required when using
--otgmode. See OTG Mode and USB Input for details.
Sources: README.md48-71
adb must be installed and accessible on your PATH. scrcpy uses adb to push the server JAR to the device and establish the communication tunnel. See ADB and Server Management for how adb is used internally.
Installation flow overview:
Sources: doc/linux.md1-75 doc/windows.md1-47 doc/macos.md1-47
| Distribution | Command |
|---|---|
| Arch Linux | pacman -S scrcpy |
| Fedora | dnf copr enable zeno/scrcpy && dnf install scrcpy |
| Gentoo | emerge scrcpy |
| Debian/Ubuntu | apt install scrcpy (note: may be an older version) |
Snap packages exist but may carry an obsolete version.
Download the scrcpy-linux-x86_64-v3.3.4.tar.gz archive from the GitHub releases page and extract it. Static Linux builds are currently experimental.
install_release.shThe repository includes install_release.sh which automates building the client from source while using a prebuilt server binary.
What the script does:
The script hard-codes the server URL and expected SHA-256 hash:
build-auto (install_release.sh4)Required packages before running the script (Debian/Ubuntu):
Then clone and run:
To uninstall:
Sources: install_release.sh1-22 doc/linux.md34-74
Download one of:
| Archive | Architecture |
|---|---|
scrcpy-win64-v3.3.4.zip | 64-bit |
scrcpy-win32-v3.3.4.zip | 32-bit |
Extract the ZIP. The archive includes adb.exe, AdbWinApi.dll, and AdbWinUsbApi.dll so no separate ADB installation is needed.
| Package Manager | Command |
|---|---|
| WinGet | winget install --exact Genymobile.scrcpy |
| Chocolatey | choco install scrcpy |
| Scoop | scoop install scrcpy |
WinGet installs ADB as a dependency automatically. For Chocolatey and Scoop, install adb separately if needed.
scrcpy is a command-line application. The ZIP archive ships several launcher helpers:
| File | Behavior |
|---|---|
open_a_terminal_here.bat | Opens a terminal in the scrcpy directory |
scrcpy-console.bat | Launches scrcpy with a terminal visible |
scrcpy-noconsole.vbs | Launches scrcpy without a terminal window |
Avoid double-clicking scrcpy.exe directly — errors will cause the window to close before you can read them.
Sources: doc/windows.md1-100
Download one of:
| Archive | Architecture |
|---|---|
scrcpy-macos-aarch64-v3.3.4.tar.gz | Apple Silicon |
scrcpy-macos-x86_64-v3.3.4.tar.gz | Intel |
Static macOS builds are currently experimental.
| Package Manager | Command | ADB |
|---|---|---|
| Homebrew | brew install scrcpy | brew install --cask android-platform-tools |
| MacPorts | sudo port install scrcpy | Installed automatically |
Sources: doc/macos.md1-47
When installed via sudo ninja install (from a source build or install_release.sh), scrcpy places files in these locations:
| Path | Contents |
|---|---|
/usr/local/bin/scrcpy | Main client executable |
/usr/local/share/scrcpy/scrcpy-server | Server JAR pushed to the Android device at runtime |
/usr/local/share/man/man1/scrcpy.1 | Man page |
/usr/local/share/icons/hicolor/256x256/apps/scrcpy.png | Application icon |
/usr/local/share/zsh/site-functions/_scrcpy | Zsh completion |
/usr/local/share/bash-completion/completions/scrcpy | Bash completion |
The server JAR (scrcpy-server) is not executed on the host; the client pushes it to the Android device via adb push at startup and launches it there. See ADB and Server Management for details.
Sources: doc/build.md261-276
How installation artifacts map to runtime components:
Sources: doc/build.md261-276 install_release.sh15-16 README.md48-56
For contributors or platforms without prebuilt binaries, scrcpy can be compiled from source. The build system is Meson for the C client and Gradle (or build_without_gradle.sh) for the Android server.
Key version constraints from the build files:
| Component | Value |
|---|---|
| Current version | 3.3.4 (meson.build2) |
Minimum Android API (minSdkVersion) | 21 (server/build.gradle8) |
| Compile SDK | 36 (server/build.gradle5) |
| C standard | C11 (meson.build4) |
Full build instructions, cross-compilation for Windows, and dependency management are covered in Build System and its subsections.
Sources: meson.build1-15 server/build.gradle1-31 doc/build.md1-284
Refresh this wiki
This wiki was recently refreshed. Please wait 3 days to refresh again.