# Escrcpy: a graphical scrcpy front end for Android mirroring and control

> Escrcpy wraps scrcpy in an Electron desktop app with an embedded mirror window, keyboard mapping and multi-device control. The README is explicit that some advanced features sit behind a paid private extension.

**viarotel-org/escrcpy** — 📱 Display and control your Android device graphically with scrcpy.

- Repository: https://github.com/viarotel-org/escrcpy
- Website: https://viarotel.eu.org/
- Stars: 11,914 · Forks: 826
- Language: JavaScript
- License: Apache-2.0
- Published: 2026-09-21 · Updated: 2026-09-21 · Language: en
- Canonical page: https://hysenlabs.com/projects/viarotel-org-escrcpy

## What Escrcpy adds on top of scrcpy

scrcpy itself is a command-line tool from Genymobile that mirrors and controls an Android device. Escrcpy is a graphical application built around it, and the README frames the project as a GUI layer rather than a reimplementation: the acknowledgement list credits scrcpy, adbkit, Electron, Vue, gnirehtet, yadb and tangoadb. The audience is anyone who wants mirroring and device control without assembling scrcpy flags by hand, and the feature list is written for that person: an inset mirror window that auto-fits resolution and orientation, keyboard mapping configured on the mirror itself, multi-device control in one window, a draggable control bar, wireless ADB with LAN auto-discovery, and Gnirehtet reverse tethering.

The README also states plainly that Escrcpy focuses on a stable integration foundation and that some advanced features come from the private extension repository EscrcpyX and are offered on a paid basis. That sentence matters more than the feature list. It tells you where the open-source boundary sits before you invest time in setup.

## How the pieces fit together

The repository is a pnpm workspace driven by Turborepo. The root package.json is named @escrcpy/workspace, marked private, and its main entry is dist-electron/main.js, which is the Electron main process. Top-level directories include desktop/, packages/, docs/ and scripts/, and the scripts run through turbo: dev starts development, build:win, build:mac and build:linux produce platform builds, and docs:dev, docs:build and docs:preview drive a VitePress documentation site.

The runtime picture follows from the acknowledgements. Electron hosts the desktop shell, Vue renders the interface, adbkit talks to the Android Debug Bridge, and scrcpy does the actual screen capture and input injection. Gnirehtet appears separately for reverse tethering, which is a different job: giving the phone network access through the computer rather than showing its screen. Because the app is an Electron wrapper, the mirror you see is a window the app manages, and the inset mirror and control bar features are UI around the same underlying scrcpy stream.

## Installing Escrcpy and running a first mirror

The README gives two installation routes. The primary one is manual installation from released packages, pointing at the Releases Page. The second is macOS installation via Homebrew, pointing at the homebrew-escrcpy repository. There is no npm or pip install for the application itself; the package.json at the repository root is private and exists to build the app, not to publish it.

Start by downloading the asset for your platform from the Releases Page. The most recent release listed is v3.2.0, published on 2026-09-01, with v3.0.8 before it on 2026-08-03 and v2.11.1 on 2026-05-19.

Before the app can show anything, the device has to be visible to ADB. The README documents wireless ADB connections with LAN auto-discovery as a feature, so the app can find devices on the local network, but a wired connection is the simplest first run. Confirm the device is attached and authorised at the system level, then launch Escrcpy and pick it from the device list. The README describes the mirror as an inset window that auto-fits screen resolution and orientation, so the first thing you should see is the phone's screen inside the app window rather than a separate scrcpy window.

If you want to build from source rather than use a release, the root scripts are the entry point.

```bash
pnpm install
pnpm dev
```

The develop.md file in the repository is where the README sends developers for running and improving the project, so treat these two commands as a starting point and not a complete build guide.

## Where the open-source build stops

The README's own subtitle is the clearest limitation: Escrcpy focuses on a stable integration foundation, and some advanced features come from the private extension repository EscrcpyX on a paid basis. The feature list does not mark which entries are core and which are extensions, so a reader cannot tell from the README alone whether automation scripts, the MCP-based Copilot assistant or multi-device orchestration are in the open build. That ambiguity is a real cost when you are evaluating the project for a team.

The support statement is equally direct. The Get Help section says the project is powered by passion, that support is limited, and that updates are irregular. The release history is consistent with that description: three releases are listed between 2026-05-19 and 2026-09-01, with gaps of roughly two and a half months and then one month. Nothing here suggests a tool with a support contract behind it, and the README does not document rollback, downgrade paths or a compatibility matrix between app versions and scrcpy versions.

There is also a platform question the README leaves open. It lists build scripts for Windows, macOS and Linux, but it does not state which release assets exist for each platform on any given version. Verify that before committing to a rollout.

## Escrcpy compared with scrcpy and QtScrcpy

The most direct alternative is scrcpy on its own. It is the engine Escrcpy credits, it runs from a terminal, and it exposes its behaviour through command-line flags. If your workflow is a single device, a fixed set of options and a shell script, scrcpy alone is fewer moving parts: no Electron runtime, no GUI process, no separate release cadence to track. Escrcpy's value shows up when you want the mirror embedded in a window with controls around it, keyboard mappings drawn on the mirror, or several devices managed side by side. Those are interface problems, and a CLI does not solve interface problems.

QtScrcpy is the other name that comes up in searches around this project. It is a different GUI over the same idea, and the practical difference for a reader is the stack and the packaging rather than the mirroring itself. Escrcpy is Electron and Vue; the repository layout, the turbo scripts and the pnpm workspace all reflect that. That choice buys a familiar web toolchain for contributors and a consistent look across platforms, and it costs memory and startup time compared with a native toolkit. If you are choosing between GUI wrappers, pick on the stack you can maintain, because the underlying capture and input path is scrcpy in both cases.

## Maintenance, licensing and what you are agreeing to

The repository is not archived and the last push was on 2026-09-01, the same day as the v3.2.0 release. The README nevertheless describes updates as irregular, and the release spacing supports reading the project as maintained in bursts rather than on a schedule. Plan upgrades around releases you have checked, not around an expectation of continuous change.

The licence is Apache-2.0, which is a permissive licence and, in broad terms, allows use, modification and redistribution with the conditions that licence sets out, including notice and attribution requirements. This is a description of the licence identifier in the repository, not legal advice; if you are redistributing the app inside a company or a product, read the LICENSE file and PRIVACY.md at the repository root, since the latter governs what the desktop app does with data. Note also that the paid EscrcpyX extension is a separate thing from the Apache-2.0 code in this repository, and the README does not state its terms.

## Conclusion

Adopt Escrcpy if you want scrcpy's mirroring behind a desktop UI, especially for several devices at once or for keyboard mapping drawn directly on the mirror. Skip it if you need a guaranteed support contract or an entirely free feature set, since the README states advanced features come from the paid private EscrcpyX repository and that support is limited and updates irregular. Before installing, confirm that the release asset for your platform exists on the Releases page and that your device is reachable over ADB, wired or wireless.

## FAQ

### Is scrcpy safe to use?

The repository does not make security claims about scrcpy itself. What it does provide is a PRIVACY.md file at the repository root alongside the Apache-2.0 LICENSE, so that is where to look for what the Escrcpy desktop app does with data. Escrcpy is a GUI around scrcpy, so the trust question splits between the underlying tool and this wrapper.

### Can I control my phone using scrcpy?

Yes. The README describes Escrcpy as a way to display and control your Android device graphically with scrcpy, and lists keyboard mapping for touch, joystick, swipe, scroll and automation mappings configured on the embedded mirror. Multi-device control with broadcast input is also listed as a feature.

### What does scrcpy stand for?

The README does not expand the name. It credits scrcpy as the engine behind Escrcpy and links to the Genymobile/scrcpy repository, which is where the name's origin would be documented.

## Sources

- [License: Apache-2.0](https://github.com/viarotel-org/escrcpy/blob/main/LICENSE)
- [Project website](https://viarotel.eu.org/)
- [README](https://github.com/viarotel-org/escrcpy/blob/main/README.md)
- [Releases](https://github.com/viarotel-org/escrcpy/releases)
- [viarotel-org/escrcpy on GitHub](https://github.com/viarotel-org/escrcpy)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/viarotel-org-escrcpy
