v0.4 · phase 2 shipped

Vior

Turn your phone or tablet into a real second screen for your Mac, Linux, or Windows computer.
Send files, control with trackpad & keyboard, all over Wi-Fi or a USB cable.

macOS Linux Windows Android iOS — coming soon MIT licensed

Everything in one app.

No accounts. No cloud. No subscription. Just your phone, your computer, and your network.

Second screen

Use your phone or tablet as a real extra monitor — drag windows onto it. Or mirror your main screen to share.

Wi-Fi or USB cable

Same network? Auto-discovery finds your computer. No Wi-Fi? Plug the cable in — works without any router.

File transfer

Drag a file onto the desktop app, or tap Send on the phone. Goes directly between devices — never touches a cloud.

Trackpad + keyboard

Phone becomes a wireless trackpad with right-click, scroll, and a full keyboard with 40+ system shortcuts.

Pair-code security

One-time 4-digit code on the desktop. Trusted devices reconnect instantly — no re-pairing.

Single binary

Download one app, double-click to run. No installers, no drivers (Windows has an optional one), no setup wizard.

Connect in 3 steps.

No accounts, no setup wizard, no driver install. Just three taps.

1. Start on computer

Open Vior on your Mac, Linux, or Windows machine and click Start Server. You'll see a QR code and a 4-digit pair code.

2. Open on phone

Open the Vior Android app (or any browser on iOS). It finds your computer automatically over Wi-Fi, or you can scan the QR code.

4 8 2 1

3. Enter pair code · once

Type the 4-digit code shown on the desktop. From then on, that device is trusted — it auto-connects without asking again.

First time? Here's exactly what happens.

Every screen, every step — from opening the app to mirroring your display.

Desktop — Idle → Waiting

Open Vior on your computer. You'll see an amber dot and one button: Start Server. Click it — a spinner confirms it's starting — then a green dot appears with a real scannable QR code and a 4-digit pair code. Copy URL and Copy pair code buttons let you share manually.

Phone — Launch → Discovery

Open the Vior app on your phone. First time ever: pick your intent — Display, Remote, or Files. Pick once, never asked again. The app scans your network and shows your computer as a tappable row with name and IP. Tap the row to connect.

If no server found: scan the QR, type the pair code, or enter the IP manually. USB cable toggle is right above.

Pair — First time only

Type the 4-digit code shown on your desktop. From then on, that device is trusted forever — reconnects instantly, no re-pairing. Five wrong attempts per minute, then a short timeout. Manage trusted devices in Settings.

Connected — What you can do

The bottom tab bar unlocks: Display, Files, Remote. Tap View Stream to see your desktop on your phone — touch the screen to control the mouse. Toggle Extend (phone becomes a second monitor) or Mirror (phone shows the same screen). One tap reconfigures the display.

Files — Send anything

Tap Send File or Send Photo on your phone. Files transfer in 48KB chunks with SHA-256 verification on both ends. Trusted devices auto-accept without a prompt. On desktop, click Send file to phone to push files the other way. Everything lands in ~/Downloads/Vior.

Remote — Trackpad + Keyboard

Swipe to move the cursor with sub-linear acceleration. Tap = left click. Two-finger tap = right click. Two-finger drag = scroll. Tap Keyboard for the soft keyboard, 40+ shortcut buttons, and F-keys. A flash pill confirms every action.

macOS needs Accessibility permission for Remote. Vior shows a red card on the desktop and warns the phone too.

USB cable mode.

Plug your phone into the desktop with any data-capable USB cable. No router, no Wi-Fi password, no ADB, no developer mode.

Switch to USB

Tap the USB transport pill at the top of the screen. You'll see a breathing orb — "Waiting for cable…" — with a checklist: use a data cable, desktop must be running, tap Allow on the prompt.

Plug in

Connect the cable. The orb turns amber — "Verifying cable…" — while desktop and phone handshake (under 3 seconds). If the desktop isn't running Vior, the orb turns red with a Try again button.

Connected

The orb turns green. Video streams over the cable — touch controls the mouse. USB carries display + touch only. Trackpad & keyboard need Wi-Fi. A toast explains this on first Remote use.

Seamless switching

Wi-Fi drops while USB is plugged? USB takes over cleanly. Cable yanked? A 1.5-second debounce prevents accidental disconnect. In USB-only mode (Settings), unplugging keeps you on USB — no Wi-Fi fallback.

Built to stay connected.

Auto-reconnect

Wi-Fi blip? Phone backgrounded? Vior retries up to 5 times with exponential backoff (1s → 30s). A yellow banner shows progress. DHCP lease renewed? Vior re-scans the subnet for the same computer and reconnects transparently.

Heartbeat detection

Desktop polls server status every 3 seconds. If 3 polls fail, the UI transitions to "Server stopped unexpectedly" with a restart option — no more frozen "Server ready" for hours after a crash.

SHA-256 integrity

Every file transfer is verified end-to-end. The sender computes a SHA-256 hash incrementally. The receiver computes its own and compares — rejects on mismatch. Silent corruption caught, not ignored.

Cross-platform from day one.

Server runs natively on macOS, Linux, and Windows. Mobile client is an Android APK — iOS app is coming soon (Wi-Fi today via Safari + Add to Home Screen).

Platform Server Mobile client Build
macOS 13+ ✓ CGVirtualDisplay ✓ Web + Android universal binary
Linux (X11) ✓ xrandr + dummy ✓ Web + Android amd64 · arm64
Windows 10+ ✓ IDD driver ✓ Web + Android amd64
Android 9+ ✓ Capacitor APK aarch64
iOS 16+ ⏳ Coming soon today: Safari PWA

Built with boring, durable tools.

No frameworks-of-the-week. Everything below has been in production for years.

Go 1.25 Wails v2 Capacitor 7 React 19 WebSocket MJPEG over HTTP mDNS / UDP discovery