liuzhuogood

MyWebScrcpy

MyWebScrcpy is a Go + WebCodecs Android mirroring and control service that works right in the browser with no client install, supporting H.264/H.265/AV1 decode, touch and keyboard control, and file management.

v2026.10.28
Published at
17h ago
8
Stars
0
Download
Synced at
15h ago

Latest release

v2026.10.28Oct 27, 2026, 08:58 PM
Downloads slow? Switch the source anytime above

README

Project Overview

MyWebScrcpy puts an Android device's screen and controls inside a browser tab: the Go server pushes its embedded scrcpy-server to the device over ADB, video frames travel to the browser via WebSocket and render through WebCodecs hardware decoding, while touch and keyboard events are injected back. The client side needs zero installation, and a single binary embeds both the frontend assets and scrcpy-server.

Item Value
Form Go single-binary service + browser frontend (Vue)
Codecs H.264 / H.265 / AV1, WebCodecs hardware decode
Client Chrome 94+, no client install needed
API HTTP / WebSocket with a built-in OpenAPI listing
Device link ADB (USB or network)

Plug the phone into ADB, then mirror, tap and manage files right in the browser.

Core Capabilities

  • Mirroring and control: click, drag, wheel, right-click-back, text injection and shortcuts; mobile browsers support touch, with one-tap rotate and fullscreen
  • Player inspector: color picking (HEX/RGB with a 240px magnifier), UI Automator XML tree linked with XPath element location, and live foreground package/activity queries
  • ADB terminal: a web shell on xterm.js with a real PTY, supporting Tab completion and arrow-key history
  • File manager: browse shared storage /storage/emulated/0 with upload/download, move, rename, batch delete and undo
  • Controlled recording: record MP4 from the shared H.264 session, auto-stop from 1 minute to 8 hours, with device audio optional
  • Big-screen monitoring: multi-device wall in small/medium/large layouts, with picture-in-picture and auto-reconnect
  • Python Vision: a separate WebSocket lets Python subscribe to the video session and overlay recognition boxes and automated actions on the picture

Quick Deploy

git clone https://github.com/liuzhuogood/MyWebScrcpy.git
cd MyWebScrcpy
bash scripts/build.sh
./mywebscrcpy

Open http://localhost:8080 in the browser and click a device to mirror; mirroring, monitoring and file management live at /player, /dashboard and /files. On first macOS run, clear the unsigned-app quarantine with sudo xattr -rd com.apple.quarantine.

API and Integration

After startup, /api-docs.html lists all endpoints and /api/openapi.json provides the machine-readable catalog. Recording endpoints look like POST /api/recordings?serial=..., with matching routes for query, stop, download and delete.

Use Cases

  • Frontend and automation engineers debugging real devices remotely
  • Testers who need a UI inspector with XPath location
  • A monitoring wall driving many devices from one host
  • Demoing a phone screen without installing remote-control clients

Requirements

Item Requirement
Server Go 1.25.5+ (build), ADB
Browser Chrome 94+ (WebCodecs)
Device USB debugging or network ADB enabled

Notes

  • ADB required: the device must be connected to the host via USB debugging or network ADB — this is not wireless casting
  • Desktop shell in progress: the v1.20 Tauri wrapper is experimental; existing server usage is unchanged
  • XML snapshots are static: UI Automator dumps are momentary, and self-drawn views may expose no nodes

Release history

Sort