MCPcopy Index your code
hub / github.com/AkiChase/scrcpy-mask

github.com/AkiChase/scrcpy-mask @v0.9.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.9.0 ↗ · + Follow
1,184 symbols 2,748 edges 90 files 20 documented · 2%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Scrcpy Mask

English

Scrcpy Mask 是一款基于 Rust + Bevy + React 构建的跨平台桌面客户端,用于高效控制安卓设备。 它提供了可视化的鼠标与键盘按键映射配置,实现了类似安卓模拟器的多点触控操作,具备毫秒级响应速度,带来流畅自然的交互体验。该工具可广泛应用于在电脑上操控安卓设备、玩手游等场景。

v0.7.0 开始,项目已完全迁移至 Bevy 游戏引擎,带来了更强大、更稳定的功能,包括 scrcpy 投屏组合按键映射、以及更灵活的 内置脚本系统与外部控制机制

⚠️ 旧版基于 Rust + Tauri + Vue 的分支已停止维护。

特别感谢 Scrcpy 项目的开发者。Scrcpy 是一个功能强大、性能卓越的开源工具,为 Android 设备的远程控制提供了坚实基础。 Scrcpy Mask 基于其优秀架构,针对鼠标与键盘控制进行了进一步的增强与扩展。

为了更好地支持 Scrcpy Mask 与安卓设备的交互,对原 scrcpy-server 进行了功能扩展与优化,并基于此创建了分支项目 scrcpy-mask-server

特性

  • [x] 国际化
  • [x] 有线、无线连接安卓设备
  • [x] Scrcpy 控制协议(映射)
  • [x] Scrcpy 视频协议(投屏)
  • [x] 按键映射配置可视化
  • [x] 内置脚本,见脚本语法规则简介
  • [x] 鼠标、键盘按键映射,支持点击、连点、多点、滑动、方向盘、施法、FPS/开火、RawInput、脚本等映射类型
  • [x] 按键随机化增强,支持触摸随机偏移、滑动轨迹随机化、随机锚点和微抖
  • [ ] 手柄按键映射(等待赞助支持❤️)
  • [x] 外部程序控制(HTTP API + WebSocket,可管理设备、映射配置和应用设置,含窗口同步示例),见外部控制
  • [ ] 帮助文档

视频教程

截图

  • 设备

  • 映射

  • 投屏

  • 设置

贡献

build-help 简要说明了如何运行和编译项目。

如果你对本项目感兴趣,欢迎提交 PR 或 Issue。 由于个人时间和精力有限,可能无法及时处理所有反馈,敬请谅解。

Star History Chart

Extension points exported contracts — how you extend this code

ValidateMappingConfig (Interface)
(no doc) [13 implementers]
src/mask/mapping/binding.rs
ControlledDevice (Interface)
(no doc)
frontend/src/utils.ts
AdbDevice (Interface)
(no doc)
frontend/src/utils.ts
AndroidApp (Interface)
(no doc)
frontend/src/utils.ts
AndroidDisplay (Interface)
(no doc)
frontend/src/utils.ts
MappingConfig (Interface)
(no doc)
frontend/src/components/mappings/mapping.ts

Core symbols most depended-on inside this repo

to_string
called by 200
src/mask/mapping/binding.rs
get
called by 103
src/utils/share.rs
push
called by 98
src/scrcpy/adb.rs
len
called by 78
src/scrcpy/audio.rs
send
called by 72
src/utils/mod.rs
error
called by 49
src/mask/mapping/script_helper.rs
join
called by 47
src/mask/mapping/script_helper.rs
updateLocalConfig
called by 32
frontend/src/store/localConfig.ts

Shape

Function 616
Method 296
Class 197
Enum 49
Interface 26

Languages

Rust78%
TypeScript22%

Modules by API surface

src/mask/mapping/script_helper.rs183 symbols
src/mask/mapping/cursor.rs54 symbols
src/web/device.rs50 symbols
src/scrcpy/audio.rs48 symbols
src/mask/mapping/cast_spell.rs42 symbols
frontend/src/components/mappings/mapping.ts38 symbols
src/mask/mapping/utils.rs36 symbols
src/scrcpy/media.rs30 symbols
src/mask/mapping/tap.rs30 symbols
src/mask/mapping/fire.rs28 symbols
src/mask/ui/basic.rs25 symbols
frontend/src/components/mappings/Mappings.tsx25 symbols

For agents

$ claude mcp add scrcpy-mask \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page