AkiChase/scrcpy-mask

A Scrcpy client in Rust, Bevy and React, aimed at providing mouse and key mapping to control Android device, similar to a game emulator

Rust

1,103

151 commits

updated Oct 4, 2026

See the code

README

Scrcpy Mask

中文

Scrcpy Mask is a cross-platform desktop client built with Rust + Bevy + React, designed for efficient control of Android devices. It provides an intuitive visual interface for configuring mouse and keyboard mappings, enabling multi-touch operations similar to Android emulators. With millisecond-level response latency, Scrcpy Mask delivers a smooth and natural interaction experience, ideal for scenarios such as controlling Android devices or playing mobile games on your computer.

Since v0.7.0, the project has been fully migrated to the Bevy game engine, bringing more powerful and stable features such as scrcpy screen mirroring, combo key mapping, and a more flexible built-in scripting system and external control mechanism.

⚠️ The legacy branch based on Rust + Tauri + Vue is no longer maintained.

Special thanks to the developers of Scrcpy — a powerful and high-performance open-source tool that lays the solid foundation for remote Android control. Scrcpy Mask builds upon its excellent architecture and extends its capabilities with enhanced mouse and keyboard control.

To better support the interaction between Scrcpy Mask and Android devices, we have extended and optimized the original scrcpy-server, leading to the creation of a new branch project: scrcpy-mask-server.

Features

  • Internationalization (i18n)
  • Wired and wireless Android device connection
  • Scrcpy control protocol (input mapping)
  • Scrcpy video protocol (screen mirroring)
  • Visual key mapping configuration
  • Built-in scripting support — see Script Syntax Guide
  • Mouse and keyboard mapping with taps, repeat taps, multi-taps, swipes, direction pads, cast-spell controls, FPS/fire, RawInput, scripts, and more
  • Input randomization enhancements, including randomized touch offsets, swipe paths, random anchors, and micro-jitter
  • Optional experimental UHID touchscreen backend for up to 10 simultaneous contacts
  • Game controller mapping (awaiting sponsorship ❤️)
  • External control via HTTP API + WebSocket for devices, mapping configs, and app settings, including a window-sync example — see External Control
  • Documentation

Video Tutorial

Screenshots

  • Devices

  • Mapping

  • Screen Casting

  • Settings

Contributing

The build-help provides a brief description of how to run and compile the project.

If you’re interested in this project, feel free to submit a PR or open an Issue. Due to limited personal time and resources, I may not be able to respond to all feedback promptly — thank you for your understanding.

Star History Chart

bevy
react
rust
scrcpy

AkiChase/scrcpy-mask

A Scrcpy client in Rust, Bevy and React, aimed at providing mouse and key mapping to control Android device, similar to a game emulator

Rust

1,103

151 commits

updated Oct 4, 2026

See the code

README

Scrcpy Mask

中文

Scrcpy Mask is a cross-platform desktop client built with Rust + Bevy + React, designed for efficient control of Android devices. It provides an intuitive visual interface for configuring mouse and keyboard mappings, enabling multi-touch operations similar to Android emulators. With millisecond-level response latency, Scrcpy Mask delivers a smooth and natural interaction experience, ideal for scenarios such as controlling Android devices or playing mobile games on your computer.

Since v0.7.0, the project has been fully migrated to the Bevy game engine, bringing more powerful and stable features such as scrcpy screen mirroring, combo key mapping, and a more flexible built-in scripting system and external control mechanism.

⚠️ The legacy branch based on Rust + Tauri + Vue is no longer maintained.

Special thanks to the developers of Scrcpy — a powerful and high-performance open-source tool that lays the solid foundation for remote Android control. Scrcpy Mask builds upon its excellent architecture and extends its capabilities with enhanced mouse and keyboard control.

To better support the interaction between Scrcpy Mask and Android devices, we have extended and optimized the original scrcpy-server, leading to the creation of a new branch project: scrcpy-mask-server.

Features

  • Internationalization (i18n)
  • Wired and wireless Android device connection
  • Scrcpy control protocol (input mapping)
  • Scrcpy video protocol (screen mirroring)
  • Visual key mapping configuration
  • Built-in scripting support — see Script Syntax Guide
  • Mouse and keyboard mapping with taps, repeat taps, multi-taps, swipes, direction pads, cast-spell controls, FPS/fire, RawInput, scripts, and more
  • Input randomization enhancements, including randomized touch offsets, swipe paths, random anchors, and micro-jitter
  • Optional experimental UHID touchscreen backend for up to 10 simultaneous contacts
  • Game controller mapping (awaiting sponsorship ❤️)
  • External control via HTTP API + WebSocket for devices, mapping configs, and app settings, including a window-sync example — see External Control
  • Documentation

Video Tutorial

Screenshots

  • Devices

  • Mapping

  • Screen Casting

  • Settings

Contributing

The build-help provides a brief description of how to run and compile the project.

If you’re interested in this project, feel free to submit a PR or open an Issue. Due to limited personal time and resources, I may not be able to respond to all feedback promptly — thank you for your understanding.

Star History Chart

bevy
react
rust
scrcpy

Significant stargazers

5ec1cff

2,216 followers · starred May 2024

Fankes yooni

886 followers · starred May 2024

Simon Chan

431 followers · starred May 2024

JayFate

16 followers · starred Dec 2024