Open a terminal and run:
npm install -g ws-scrcpy
After installation, start the server:
ws-scrcpy
By default, the server runs on http://localhost:8000. ws-scrcpy
ws-scrcpy transforms the excellent scrcpy utility into a powerful, web-native tool for remote Android device management. Whether you're a developer testing apps across multiple devices, a support technician helping remote users, or an educator demonstrating mobile software, ws-scrcpy provides a flexible, open-source solution that runs entirely in your browser.
Its ability to support multiple simultaneous users and devices, combined with low latency and full control capabilities, makes it superior to many commercial alternatives for team-based Android workflows. Open a terminal and run: npm install -g ws-scrcpy
ws-scrcpy behavior is controlled by environment variables. You can set these in your shell or in a Docker Compose file.
| Variable | Default | Description |
| :--- | :--- | :--- |
| PORT | 8000 | The port the web server listens on. |
| BIND_ADDRESS | 0.0.0.0 | The interface to bind to. 0.0.0.0 allows access from external networks. 127.0.0.1 restricts it to the local machine. |
| ADB_PATH | adb | Path to the adb executable. If adb is in your system PATH, leave as is. |
| SCRCPY_SERVER_PATH | ... | Path to the scrcpy-server.jar. Usually auto-downloaded, but can be hardcoded. |
| MAX_SIZE | 1920 | The maximum width/height of the video stream. Lower this (e.g., 1024) for slower networks. |
| BIT_RATE | 4M | Video bitrate (e.g., 8M for 8Mbps). |
| MAX_FPS | 60 | Cap the frames per second. |
| NO_AUDIO | false | Set to true to disable audio forwarding (saves bandwidth). | After installation, start the server:
ws-scrcpy
This is the cleanest method for advanced users.
Full keyboard pass-through (including media keys, Ctrl, Alt, and special characters) works seamlessly.
Understanding the architecture helps appreciate its power:
[Android Device] <--USB/ADB--> [Server running ws-scrcpy] <--WebSocket/WebRTC--> [Browser Client]
Play Android games directly from your browser, using keyboard mapping or a gamepad connected to your computer.