Turn your phone into a second monitor.
Stream, control, transfer — from any browser.
Download the latest release for your platform from GitHub Releases.
If you have Go installed:
go install github.com/subhashraveendran/vior/cmd/vior@latest
git clone https://github.com/subhashraveendran/Vior.git cd Vior make build # CLI only make desktop # Desktop app
Open the Vior app. You'll see the idle screen with a "Start Server" button.
Click Start Server. Vior picks a free port automatically and starts listening for connections. A QR code appears.
On your phone, scan the QR code or click "Use web browser" to see the URL. Open it in any browser. The phone reports its screen dimensions automatically.
Vior creates a virtual display matching your phone's resolution. Drag windows onto it from your computer. Touch on the phone controls the cursor. Rotate for landscape.
Switch to the Files tab in the connected view. Click Send File or drag files onto the app to transfer them to your phone.
Click Disconnect to stop. The virtual display is automatically removed.
# Start server — waits for phone to connect vior start # Phone connects → virtual display created → streaming begins # Press Ctrl+C to stop
# Skip WebSocket handshake, set resolution manually vior start --virtual-width 1179 --virtual-height 2556
# Check ADB status vior usb status # Set up USB forwarding vior usb setup # Then start normally vior start
# List all displays vior displays # Mirror display 1 onto display 0 vior display mirror --source 1 --target 0 # Set display 1 to extended mode vior display extend 1
vior start [flags]
-p, --port int Port (default: auto)
-q, --quality int JPEG quality 1-100 (default: 80)
-f, --fps int Frames per second (default: 30)
-d, --display int Display index (default: 0)
--no-websocket Legacy mode (no WebSocket handshake)
--no-discovery Disable UDP broadcast
Open Safari, Chrome, or any browser on your phone.
Type the URL shown by Vior, or scan the QR code from the desktop app.
The stream begins automatically. Your phone reports its screen dimensions and Vior creates a matching virtual display.
Touch the screen to control the cursor. Tap the fullscreen button for immersive mode. Rotate for landscape.
On your Android phone: Settings → Developer Options → USB Debugging → On.
Plug your phone into your computer with a USB cable.
In Settings, toggle USB on. Or run vior usb setup in CLI. ADB downloads automatically if needed.
On your phone, open http://localhost:8080 — it connects over USB.
Phone reports its screen size. Virtual display matches automatically. No presets needed.
Touch on phone maps to mouse on computer. Tap, drag, scroll — all forwarded in real-time.
Rotate phone to landscape. Display resizes automatically. Works both ways.
Send files in both directions. Drag & drop on desktop. Image previews. Progress tracking.
Connect via USB for lower latency. ADB auto-downloads. No manual setup needed.
Any browser on any device. No app install on phone. macOS, Linux, Windows server.
| Platform | Virtual Display | Screen Capture | Status |
|---|---|---|---|
| macOS 13+ | CGVirtualDisplay | CGDisplayCreateImage | Full support |
| Linux (X11) | xrandr + dummy driver | kbinani/screenshot | Partial |
| Windows 10+ | Win32 + IDD driver | kbinani/screenshot | Partial |