About this project

Scrcpy Mask is a cross-platform desktop client for controlling Android devices, built with Rust, Bevy and React. It provides a visual interface for configuring mouse and keyboard mappings, enabling multi-touch operations similar to Android emulators, and is aimed at scenarios such as controlling Android devices or playing mobile games from a computer. Since v0.7.0 the project has been fully migrated to the Bevy game engine, adding features such as scrcpy screen mirroring, combo key mapping, and a built-in scripting system with an external control mechanism. The earlier Rust + Tauri + Vue branch is no longer maintained. The project builds on Scrcpy, the open-source Android remote control tool, and extends it with enhanced mouse and keyboard control. To support this interaction, the original scrcpy-server was extended and optimized into a separate branch project, scrcpy-mask-server. Key capabilities listed in the README: - Internationalization (i18n) - Wired and wireless Android device connection - Scrcpy control protocol for input mapping - Scrcpy video protocol for screen mirroring - Visual key mapping configuration - Built-in scripting support, with a separate script syntax guide - Mouse and keyboard mapping including taps, repeat taps, multi-taps, swipes, direction pads, cast-spell controls, FPS/fire, RawInput and scripts - Input randomization enhancements: randomized touch offsets, swipe paths, random anchors and micro-jitter - Optional experimental UHID touchscreen backend supporting up to 10 simultaneous contacts - External control via HTTP API and WebSocket for devices, mapping configs and app settings, with a window-sync example Planned or not yet complete items include game controller mapping (awaiting sponsorship) and documentation. The README also links to a Chinese video tutorial, screenshots of the Devices, Mapping, Screen Casting and Settings screens, a build-help document for running and compiling the project, and a Star History chart. Contributions via PRs or issues are welcomed, with a note that response times may be limited.