ws-scrcpy is a web-based client for scrcpy , a popular open-source tool that allows users to mirror and control Android devices from a computer . While the original scrcpy is a desktop application, ws-scrcpy translates this functionality into a web browser interface using WebSockets (hence the "ws" in the name). Core Functionality Web-Based Access : It allows you to view and control your Android device screen directly in a browser (Chrome, Firefox, etc.) without installing a local client on every machine. Device Discovery : The server automatically detects Android devices connected via USB or Wi-Fi (ADB) and runs a specialized scrcpy-server.jar on them to initiate the stream. Bidirectional Control : Users can send mouse clicks, touches, and keyboard events back to the device through the browser interface. Low Latency Streaming : It utilizes H.264 video streaming and provides multiple decoding options, such as MSE Player (hardware-accelerated in-browser) and Broadway Player (software-based via WebAssembly). Technical Architecture The project, primarily maintained on the NetrisTV/ws-scrcpy GitHub , consists of several components working in tandem: Node.js Server : Acts as a bridge between the Android device and the web browser. Modified scrcpy-server : A customized version of the Genymobile/scrcpy server that includes a WebSocket server to communicate directly with the web client. Frontend Decoders : Multiple JavaScript-based decoders (like Broadway or TinyH264) that render the H.264 stream into an HTML5 canvas. Deployment & Current Status Hi, how can I connect to a remote android device? #47 - GitHub
ws-scrcpy is a web-based client for scrcpy , allowing you to mirror and control Android devices directly through a web browser using WebSockets. This is particularly useful for remote access without installing a native client on every computer. Key Features Browser-Based Access : Control your Android device from any modern web browser. Low Latency : Utilizes WebSockets for high-performance video and audio streaming. Remote Management : Includes features like remote shell access and minimalistic file management. No Root Required : Like the original scrcpy, it operates via ADB and does not need root permissions. Prerequisites Before setting up ws-scrcpy, ensure you have: Genymobile/scrcpy: Display and control your Android device - GitHub
ws-scrcpy is a web-based version of the popular open-source tool scrcpy , which allows you to view and control Android devices from a desktop. While the original scrcpy is a standalone application, ws-scrcpy uses WebSockets to bring that same functionality directly into your web browser. Key Features Browser-Based Control : Mirror and control your device via Chrome, Firefox, or other modern browsers without needing to install the scrcpy client software on every machine. Flexible Video Decoding : It includes multiple player options for different browser capabilities, such as Mse Player (HTML5 Video), Broadway Player (WebAssembly), and WebCodecs Player (hardware-accelerated decoding in Chromium). Full Interaction : Supports touch events, multi-touch emulation (using CTRL/SHIFT), mouse wheel scrolling, and keyboard event capturing. Remote Management : Features include a remote shell (adb shell in-browser), file listing/downloading, and the ability to drag and drop APKs to push them to the device. Shared Clipboard : Supports bidirectional copy-pasting between your computer and the Android device. How It Works Backend : A Node.js server runs on your host computer. Connection : This server detects connected Android devices via ADB (USB or TCP/IP) and deploys a modified scrcpy-server.jar to them. Streaming : The device streams H.264 video to the Node.js server, which then relays it to your browser via WebSockets. Installation & Setup scrcpy/doc/connection.md at master - GitHub
is a web-based client prototype for , allowing you to mirror and control Android devices directly through a web browser. It eliminates the need for standalone desktop applications by leveraging WebSockets for low-latency communication. Key Features Web-Based Control : View and interact with your Android device using mouse clicks, key strokes, and touch events within a browser window. Multiple Decoders : Supports several decoding options to suit different browser capabilities: Mse Player : Uses the Media Source API for H.264 video. Broadway Player : A software-based decoder compiled into WebAssembly (Wasm) for browsers without hardware acceleration. WebCodecs Player : Modern, high-performance decoding for supported browsers. Persistent Connection : Unlike the original scrcpy, the server can keep the server-side jar running on the device even after a disconnection, allowing for easier re-connection via IP. Developer Tools Integration : Includes features like remote shell access (via xterm.js) and the ability to debug web pages or web views on the connected device. iOS Support (Limited) : Offers a prototype for tracking and basic control of iOS devices, though functionality differs from the Android implementation. Architecture & Customization The tool is built using TypeScript and Node.js. Users can customize their builds by modifying a configuration file (e.g., build.config.override.json ) to include or exclude specific features: INCLUDE_ADB_SHELL : Enables the remote shell feature. INCLUDE_FILE_LISTING : Adds a simple file management interface. SCRCPY_LISTENS_ON_ALL_INTERFACES : If set to true, allows direct browser connections to the device without routing through a local ADB server. Common Use Cases NetrisTV/ws-scrcpy: Web client prototype for scrcpy. - GitHub ws-scrcpy
ws-scrcpy is a web-based prototype of the popular scrcpy tool, designed to mirror and control Android devices directly within a web browser. While the original scrcpy is a desktop application, ws-scrcpy leverages WebSockets to bridge the gap between a remote device and a browser-based UI. Technical Architecture The tool functions by modifying the core scrcpy server to act as a WebSocket server. Video Delivery : It captures H.264 video from the Android device and decodes it in the browser using various decoders like Mse Player (based on Media Source Extensions) or Broadway Player (a software decoder compiled to WebAssembly). Control Flow : Bidirectional WebSockets transmit touch, keyboard, and mouse events from the browser back to the device, while simultaneously receiving the video stream and clipboard data. Connectivity : It can connect to devices via USB or over TCP/IP (ADB over Wi-Fi). Core Use Cases [Suggestion] Using a webclient instead sdl app. #313 - GitHub
ws-scrcpy is a specialized web-based extension of the renowned open-source tool scrcpy . Developed by NetEase, it transforms the core functionality of screen mirroring and remote control into a browser-accessible experience, eliminating the need for a dedicated local client. The Evolution of Screen Mirroring Traditional mirroring tools, like the original scrcpy , rely on a direct desktop interface and a local installation. While highly efficient with ultra-low latency (35–70ms), they can be restrictive for teams or users who need to access devices remotely across different networks. ws-scrcpy bridges this gap by acting as a bridge between the Android Debug Bridge (ADB) and a web browser using WebSockets. Key Technical Advantages Browser-Based Accessibility : Users can control their Android devices via any modern web browser (Chrome, Firefox, Safari) without installing separate software. Remote Team Collaboration : It is particularly effective for quality assurance (QA) and development teams who need to share access to a single physical device located in a different office or data center. Low Friction Setup : Like its predecessor, it requires no root access and no app installation on the Android device itself. Feature Parity : It retains essential features such as keyboard/mouse control, file drag-and-drop, and high-quality video streaming. Use Cases and Impact For Android developers , ws-scrcpy simplifies debugging by allowing them to view device logs and screens directly in the same browser where they might be managing other web-based development tools. For general users , it provides a seamless way to manage notifications or use mobile-only apps on a desktop environment without tethering themselves to a specific workstation. In conclusion, ws-scrcpy represents the "cloudification" of device management. By leveraging the performance of scrcpy and the ubiquity of the web, it offers a powerful, flexible, and cross-platform solution for the modern, interconnected workflow. If you'd like to dive deeper into this topic: Do you need a comparison between ws-scrcpy and other web-based tools like AirDroid ? Genymobile/scrcpy: Display and control your Android device - GitHub
is a web-based client prototype for , allowing you to display and control Android devices directly through a web browser. It functions by running a Node.js server that communicates with a modified version of the scrcpy-server.jar on the Android device via WebSockets. Key Features Browser-Based Mirroring : View your Android screen in a browser using decoders like Mse Player Remote Control : Perform touch events (including multi-touch), keyboard inputs, and mouse wheel scrolling remotely. Device Management : Includes basic file listing, drag-and-drop APK installation, and a remote shell through Limited iOS Support : Can track and control iOS devices if WebDriverAgent are configured. Security Considerations There are significant security trade-offs to keep in mind when using ws-scrcpy: No Encryption : By default, there is no encryption between the browser and the Node.js server or the Android device. No Authorization : There is no built-in level of authorization for connecting to the server. Modified scrcpy : The modified server remains running even after the last client disconnects and listens on all network interfaces. Deployment and Status Installation : Requires Node.js and can be set up by cloning the ws-scrcpy GitHub repository , installing dependencies with npm install , and starting with Docker Support : While the official project does not include a Dockerfile, community forks like n1n3b1t's 2025 update have added Docker support and other modern updates. Current State : As of 2025, the original maintainers are no longer actively developing the project, though the community continues to provide forks and updates for newer scrcpy versions. Updated ws-scrcpy with docker, and few updated for 2025 ws-scrcpy is a web-based client for scrcpy ,
Title: The Ghost in the Glass Maya was a debugger. Not the kind with a magnifying glass, but the kind who chased phantom bugs through layers of code. Her weapon of choice? ws-scrcpy . It was 3:00 AM. A server farm in Virginia was throwing kernel panics, but the only physical access she had was a dusty Android tablet taped to a rack. It ran the logging interface. She couldn't drive two hours to the data center. She could , however, open her laptop. A few keystrokes later, the browser window flickered. Then, like a mirror into another room, the tablet's home screen appeared on her screen. High-res. Low latency. She wiggled her mouse, and a phantom finger swiped left on the distant device. Ws-scrcpy didn't just mirror—it breathed . Maya dragged a file from her local drive—a patched firmware binary—and dropped it onto the virtual screen. The browser’s WebSocket hummed. 2,000 miles away, the tablet’s file explorer opened and accepted the drop. “Come on,” she whispered. She opened a terminal on the tablet (thanks to the built-in shell access of ws-scrcpy) and typed: fastboot flash boot patched.img The server’s heartbeat resumed. Pings returned. But then—she noticed something odd. The tablet’s screen, usually static, was moving on its own. A ghost tap. A swipe. The Settings app opened, then closed. Then the camera. Maya hadn’t touched her mouse. She stared at the ws-scrcpy interface. It showed 1 active viewer . Herself. She refreshed the page. The counter dropped to zero, then climbed back up to… 2 . Her pulse hammered. Someone else was inside the same WebSocket tunnel. A shadow viewer. No authentication logs. No IP trail. She couldn't close the connection—if she did, she’d lose the ability to patch the server. But if she stayed, the ghost would see everything. Then she remembered: ws-scrcpy had a hidden feature. A console command: --lock-device . She opened the developer tools, injected a raw WebSocket frame, and sent: {"type": "lock", "force": true} The tablet’s screen went black. The ghost’s cursor vanished. Silence. Maya finished the patch. Rebooted the server. Then, slowly, she unlocked the device. The camera feed was on. And in the grainy preview, reflected in the tablet’s own glass, she saw a figure standing in the empty data center—shoulder to shoulder with the rack. But the data center had been locked for hours. She closed the browser. Killed the power to the tablet remotely. The next morning, security footage showed no intruder. Just a tablet, screen cracked, lying face-down on the floor. And a single line in the ws-scrcpy logs:
"Session 0x7F3A: Unknown origin. Low latency. High fright."
Maya never used ws-scrcpy alone again. But she never stopped watching the viewer count. Device Discovery : The server automatically detects Android
This report covers ws-scrcpy , a web-based client prototype for the popular Android mirroring tool scrcpy . Overview ws-scrcpy is an open-source project that allows users to mirror and control Android devices directly through a web browser. While the original scrcpy is a standalone desktop application, ws-scrcpy uses a Node.js server and WebSockets to stream video and handle input events, making it accessible on any device with a modern browser. Key Features Web-Based Interface : View and control Android screens using browsers like Chrome or Firefox without installing client-side software. Multiple Decoders : Supports several decoding methods to ensure compatibility and performance, including: Mse Player : Uses HTML5 Media Source Extensions for hardware-accelerated decoding. TinyH264/Broadway : Software-based decoders compiled to WebAssembly for environments without hardware support. WebCodecs : A modern API for high-performance decoding in Chromium-based browsers. Remote Control : Provides full interaction via mouse and keyboard, including multi-touch emulation and scrolling. File Management : Supports basic file listing, drag-and-drop APK installation, and file uploads/downloads. Shell Access : Includes a built-in terminal emulator for running ADB shell commands directly in the browser. Architecture & Security The tool operates on a client-server model . A Node.js server acts as a bridge between the browser and the Android device, which runs a modified version of the scrcpy-server.jar . Critical Security Note :By default, ws-scrcpy lacks built-in encryption and authentication. Connections between the browser and the server are typically plain HTTP/WS. It is highly recommended to run the server behind a secure proxy or within a private network to prevent unauthorized access to your device. Usage & Implementation Installation : Typically deployed using Node.js or via Docker images for easier setup in environments like Unraid or home servers. Device Setup : Requires USB Debugging to be enabled on the Android device under Developer Options. Connectivity : Devices can be connected via USB or wirelessly via the local network. NetrisTV/ws-scrcpy: Web client prototype for scrcpy. - GitHub
(short for "scrcpy via WebSockets") is a powerful web-based client that extends the capabilities of the original tool, allowing you to mirror and control Android (and some iOS) devices directly through a web browser. While the standard scrcpy is a desktop application, ws-scrcpy translates that experience into a portable web interface using WebSockets for low-latency streaming and interaction. Core Functionality and Features The tool serves as a bridge between your mobile device and a browser-based console, offering several high-utility features: Browser-Based Mirroring : Streams H.264 video from your device to a browser, decoding it via technologies like BroadwayPlayer TinyH264Player Remote Control : Provides full interaction using your computer's mouse and keyboard, including multi-touch emulation (using ), scrolling, and capturing keyboard events. Device Management : Allows you to drag and drop APKs or other files directly into the browser to upload them to the device. Remote Shell : Offers an integrated in your browser for executing terminal commands on the connected device. File Listing : Users can browse, upload, and download files directly through the web interface. iOS Support : Unlike the original scrcpy, ws-scrcpy includes experimental support for iOS screen casting and basic remote control (touch/scroll) using WebDriverAgent Technical Requirements To set up ws-scrcpy, you typically need a server-side environment to handle the WebSocket proxying: Server Side : Requires Node.js (v10+) executable available in your system's PATH. Device Side : For Android, you must enable USB Debugging (and sometimes "Security Settings" for input control) in Developer Options. Browser Support : Modern browsers that support WebSockets WebAssembly Media Source Extensions are required for the video stream to function correctly. Why Use ws-scrcpy? The primary advantage of ws-scrcpy over standard scrcpy is its accessibility and deployment flexibility . Because it runs in a browser, you can host the server on one machine (like a home server or a dedicated workstation) and access your Android device from any other device on the network without installing specific software on the client. Docker Hub This makes it an ideal tool for developers needing to test apps across multiple devices remotely, or for users who want to control their phone from a device that doesn't support the native scrcpy client, such as a tablet or another mobile phone. deploy it using Docker