OpenVysor

Documentation

Using OpenVysor

Everything you need to install the app, connect a phone and get the most from it.

Overview

OpenVysor shows an Android phone on your computer and lets you control it. You can mirror the whole screen, or open a single app in its own phone-shaped window while the phone itself stays free.

It's a native desktop app that uses Android's ADB tool to reach the phone and scrcpy-server to capture the screen. There's no account, and nothing goes through the cloud.

Early development. Some features are written but haven't been confirmed on a real phone yet. See what is tested.

Install

Every computer needs ADB. Pick yours:

  1. Download OpenVysor-windows-x64.exe for Windows 10 or 11 x64, and keep it anywhere.
  2. Open it. SmartScreen may warn you because the app isn't code-signed yet. If you trust this download, choose More info, then Run anyway.
  3. If the app asks, choose Install ADB. To install it yourself, download SDK Platform-Tools and unzip it into %LOCALAPPDATA%\OpenVysor.

If ADB is somewhere unusual

OpenVysor looks in your PATH, your Android SDK folder and the usual install locations. To point it at a specific copy, set OPENVYSOR_ADB to the full path of the program.

Connect with USB

USB is the simplest way to start and usually the smoothest.

  1. On the phone, open Settings, then About phone, and tap Build number seven times to unlock Developer options.
  2. Open Developer options and turn on USB debugging.
  3. Connect a USB data cable, unlock the phone and tap Allow.
  4. The phone appears on the Devices page. Choose Mirror screen or Open an app.

Connect over Wi-Fi

Needs Android 11 or later, with the phone and computer on the same network. Choose Connect over Wi-Fi on the Devices page, then use one of these:

MethodWhat to do on the phone
QR codeOpen Developer options, then Wireless debugging. Tap Pair device with QR code and scan the code in OpenVysor.
Pairing codeTap Pair device with pairing code. Enter its IP address, port and 6-digit code in OpenVysor, then connect on the IP address tab.
IP addressFor a phone that's already paired. Enter the address and port shown at the top of Wireless debugging.

Phone windows

Every mirror opens as its own borderless window, shaped like the phone and showing only the screen.

  • Mirror screen shows the whole phone in one window.
  • Open an app lists the phone's apps. Pick one and it opens on its own virtual display, so you can open several at once.
  • Arrange windows on the Devices page lines them up side by side.
  • Drag the dark strip at the top of a window to move it.

If a phone is unplugged, the window offers Reconnect, and tries to resume by itself when the phone comes back.

Mouse and keyboard

InputWhat it does
Left click and dragTouch and swipe
Right clickBack, or wakes the screen
Middle clickHome
Scroll wheelScrolls under the pointer
TypingGoes to the phone's focused field
F11Full screen on or off
Alt + ← / →Moves to the previous or next phone window

Window toolbar

Hover over a button in the strip at the top of a phone window to see its name. App windows show the shorter set.

ButtonAvailable in
BackAll windows
Home, Recent appsWhole-phone windows
ScreenshotWhole-phone windows
Phone soundWhole-phone windows
Record, Full screen, CloseAll windows

Files and apps

Drag files onto a phone window. An .apk installs on the phone, and any other file goes to its Download folder. A message at the bottom of the window confirms the result.

Screenshots and recording

  • Screenshots save as PNG to Pictures/OpenVysor.
  • Recordings save as MP4 to Videos/OpenVysor. They contain video only, for now.
  • Rotating the phone ends a recording, because an MP4 video track has one fixed size.

Settings

Quality changes apply to windows you open afterwards.

SettingChoicesGood to know
ThemeLight, Dark
ResolutionNative, 2400p to 1024p1600p keeps motion smooth on most computers
Quality2 to 32 MbpsHigher is sharper and uses more bandwidth
Frame rate30 to 120 FPS60 FPS suits most uses
Phone soundOn, OffThe phone goes silent while mirroring
Clipboard syncOn, OffSee Privacy

Troubleshooting

ADB was not found

Install ADB as shown in Install, then restart OpenVysor. Or set OPENVYSOR_ADB to the full path of the program.

The phone isn't listed

Use a data cable rather than a charge-only cable, try another port, and check that USB debugging is on.

It says "Needs authorization"

Unlock the phone and tap Allow on the USB debugging prompt. If no prompt appears, choose Revoke USB debugging authorizations in Developer options and reconnect.

It says "No permission" on Linux

Linux is blocking USB access. Install your distribution's Android udev rules, then replug the cable.

The picture appears but touches do nothing

Some manufacturers need an extra setting. On Xiaomi phones, turn on USB debugging (Security settings).

The picture lags during fast motion

Stay on USB if you can, and set Resolution to 1600p and Frame rate to 60 FPS in Settings. Video is decoded on the CPU for now.

"Arrange windows" does nothing on Linux

Wayland doesn't let apps position their own windows, so you'll need to move them yourself.

Privacy

  • Video and input travel only between your phone and your computer. There's no account, and OpenVysor runs no servers.
  • Clipboard sync shares text copied on either side, including passwords. Leave it off if you'd rather not.
  • Phone screens can show private information. Take care when you share or record yours.

What is tested

Testing so far has used one phone (Nothing A059, Android 16).

PlatformBuilds and unit testsApp opensMirrors a real phone
Windows x64YesYesYes, for app windows
Linux x64YesYes, on a virtual displayNot yet
macOSYes, on GitHub ActionsNot yetNot yet

Confirmed on the phone: live video of an app in its own window, tapping with the mouse, the window toolbar and full screen, and a clean exit.

Written, still being tested: whole-phone mirroring, dragging, scrolling, typing, rotation, automatic reconnection, clipboard sync, drag and drop, Wi-Fi pairing, phone sound and recording.

Not done yet: hardware video decoding, an installer, code signing, sound in recordings and end-to-end latency measurements.

Architecture

OpenVysor is one Rust program, drawn with egui and OpenGL. ADB and scrcpy-server are separate programs that it runs.

StageWhat happens
StartThe embedded scrcpy-server is pushed to the phone once per app run, and started through adb shell.
TransportAn ADB tunnel carries separate sockets for video, audio and control.
DecodeH.264 is decoded by the Windows decoder, or by OpenH264 on macOS and Linux.
DisplayWhen frames queue up, only the newest is converted and drawn, so the picture stays live.
InputMouse and keyboard events become scrcpy control messages.
Clean-upChild processes are tied to the app's lifetime, so nothing is left running even after a crash.

Build from source

Install Rust. On Linux, you also need libasound2-dev, nasm and pkg-config.

git clone https://github.com/SahinurDEV/OpenVysor.git
cd OpenVysor/native
cargo build --release

Run the tests with cargo test. Tests that need a real phone are skipped unless you ask for them:

cargo test --release --test real_device -- --ignored --nocapture

License

OpenVysor is released under the Apache License 2.0 (notice). It includes scrcpy-server (license). It's an independent project, not affiliated with or endorsed by the makers of Vysor.