1. Quick Start and Installation

1.Quick Start and Installation

scrcpy (pronounced "screen copy") is an open-source application that mirrors Android devices to computer screens in real time. Unlike many mirroring solutions that require installing companion apps on the device or rooting the system, scrcpy operates through Android's built-in debugging bridge, leaving no software footprint on the phone or tablet once the session ends. It transmits video and audio streams over USB or TCP/IP connections while allowing full control via the computer's keyboard and mouse. This architecture makes it particularly valuable for developers debugging applications, technical writers capturing documentation, and anyone needing to interact with mobile devices from a desktop environment.

The tool distinguishes itself through a combination of performance characteristics that address common pain points in screen mirroring. It achieves frame rates between 30 and 120 frames per second depending on the device capabilities, maintains display resolutions of 1920×1080 or higher, and introduces minimal latency—typically between 35 and 70 milliseconds. The startup time remains under one second in most scenarios, making it practical for quick checks during development workflows. Because scrcpy functions as a native application utilizing FFmpeg and SDL2 rather than a web-based service, it requires no user accounts, displays no advertisements, and functions without internet connectivity. These properties establish it as a lightweight yet powerful utility for local device management.

Prerequisites and Environment Setup

Before installing scrcpy, verifying that both the Android device and host computer meet the baseline requirements prevents common connection failures. The Android device must run at least API level 21, corresponding to Android 5.0 (Lollipop). While the core mirroring functionality works on these older versions, audio forwarding requires Android 11 or higher due to system-level audio capture APIs introduced in that release.

The most critical prerequisite involves enabling USB debugging on the Android device. Navigate to Settings, select About phone, and tap the Build number seven times to activate Developer Options. Within the newly accessible Developer Options menu, enable USB debugging. Some manufacturers, particularly Xiaomi and Redmi devices, impose additional security restrictions that prevent input injection even with standard USB debugging enabled. On these devices, locate and enable a separate option labeled USB debugging (Security settings), which specifically permits granting permissions and simulating input via USB debugging. This setting typically requires a device reboot to take effect.

The host computer requires the Android Debug Bridge (ADB) utility available in the system PATH. ADB facilitates the initial handshake between scrcpy and the device, handling device authorization and port forwarding. On Windows, installing the Google USB Driver may be necessary for certain device models, though many modern Android devices utilize standard USB drivers. Verify ADB functionality by connecting the device via USB and executing adb devices in a terminal. The command should return the device identifier with a status of "device" rather than "unauthorized" or blank. If the device appears as unauthorized, check the Android screen for a permission dialog and grant debugging access.

Multi-platform Installation Methods

scrcpy supports Linux, Windows, and macOS through multiple distribution channels, allowing users to select the method that best integrates with their existing package management workflows.

Windows Installation

Windows users have four primary installation routes. The most straightforward method utilizes WinGet, Microsoft's native package manager. Execute winget install --exact Genymobile.scrcpy to install the application along with its ADB dependencies automatically. Alternatively, Chocolatey users can run choco install scrcpy followed by choco install adb if the Android platform tools are not already present. Scoop provides another option with scoop install scrcpy and scoop install adb.

For users preferring manual installation or requiring specific version control, download the official release archive from the GitHub releases page. The Windows distribution provides both 32-bit and 64-bit ZIP files. Extract the archive to a permanent location, as the directory contains not only the main executable but also helper scripts for different launch modes. The archive includes adb.exe and necessary DLLs, ensuring immediate functionality without separate ADB installation.

Windows presents unique execution considerations due to its console handling. The package includes scrcpy-console.bat, which launches the application with a visible terminal window that displays error messages and debugging output, closing automatically upon termination unless errors occur. Conversely, scrcpy-noconsole.vbs starts the application without a terminal window, providing a cleaner interface but obscuring error diagnostics. Avoid double-clicking scrcpy.exe directly, as any startup errors will cause the terminal to close before they can be read. For repeated use with specific arguments, create a custom batch file containing the desired command-line options and double-click that file instead.

macOS Installation

macOS users can install scrcpy through Homebrew, MacPorts, or manual archive extraction. The Homebrew method represents the most common approach: brew install scrcpy installs the client, while brew install --cask android-platform-tools provides ADB if not already installed. MacPorts offers an alternative that automatically configures ADB dependencies: sudo port install scrcpy.

Manual installation utilizes static builds available for both Apple Silicon (aarch64) and Intel (x86_64) architectures. Download the appropriate tar.gz archive for the system architecture, then extract it. These static builds remain experimental but provide immediate execution without package manager dependencies. After extraction, ensure the scrcpy binary location resides in the system PATH, or execute it using the full path to the binary.

Linux Installation

Linux distributions offer the widest variety of installation methods, though package availability varies by repository freshness. Arch Linux maintains current packages: pacman -S scrcpy. Fedora users can access scrcpy through COPR: dnf copr enable zeno/scrcpy && dnf install scrcpy. Gentoo includes scrcpy in its official repositories: emerge scrcpy.

Debian and Ubuntu repositories often contain outdated versions of scrcpy. For these systems, or when requiring the latest release without compiling from source, utilize the static build for x86_64 systems. Download the tar.gz archive from the official releases, extract it, and run the binary directly. The static build bundles necessary dependencies, though it remains marked as experimental.

Building from source provides the most current version and allows customization. The simplified installation script available in the repository handles dependency installation and compilation automatically. First install required packages: ffmpeg, libsdl2-2.0-0, adb, libusb-1.0-0, plus build dependencies including gcc, git, pkg-config, meson, ninja-build, and development headers for SDL2 and FFmpeg. Then clone the repository and execute ./install_release.sh, which downloads the prebuilt server binary and compiles the client. This method avoids the complexity of full source compilation while ensuring an up-to-date installation.

First Launch and Verification

With installation complete and the device connected via USB, verify that ADB recognizes the device by running adb devices in a terminal. The output should display a device identifier followed by the word "device", indicating successful communication and authorization. If the device shows as "unauthorized", check the Android screen for a permission prompt and confirm it.

Launch scrcpy by executing the command in a terminal (Linux/macOS) or through scrcpy-console.bat (Windows). Upon successful launch, a window appears displaying the current screen of the connected Android device. The window title typically reflects the device model name. The application immediately begins mirroring the display, and mouse movements within the window translate to touch interactions on the device.

Test basic functionality by clicking within the mirrored window—the cursor should correspond to touch events on the device. Right-clicking typically triggers the BACK action, while middle-clicking triggers HOME. These default bindings provide immediate navigation capabilities without reaching for the physical device.

For initial testing with specific requirements, several command-line options prove useful. To disable audio forwarding (beneficial when audio is unnecessary or for devices running Android 10 or earlier where audio forwarding is unsupported), append --no-audio. To record the session for later review, add --record=file.mkv to capture both video and audio to a Matroska file. For example:

scrcpy --no-audio --record=session.mkv

This command launches the mirror without audio streaming while simultaneously recording the visual output to disk.

Successful first launch confirms that the environment satisfies all runtime requirements: ADB communication functions correctly, USB debugging permissions are granted, and the scrcpy binaries operate properly on the host system. Once this baseline functionality is established, the tool is ready for the more advanced connection configurations and control methods that follow.