Mojo

Every monitor you want, on the computer you reach.

Mojo is a free, open-source remote desktop. Ask for three screens and the remote machine plugs in three real virtual displays, each streamed to its own window at up to 240 fps.

Windows, macOS, Linux, Android, iPhone, iPad and TVs. Written in Rust. No account required.

studio-pc · remote desktop

Drag monitors to arrange them.

Frames arrive before you notice.

Measured from the moment the host starts grabbing a frame until the viewer holds a decoded picture. Median of a four-second run per row.

Capture + encode Network Decode Queueing and scheduling

RTX 3070 with NVENC and NVDEC, Ryzen 7 5700X, host and viewer on the same machine over loopback, so the GPU is shared by both ends. Your network adds its round trip; display scan-out adds the rest. Full tables are in the performance docs.

Everything the others charge for, free.

Each of the big names is great at one thing. Mojo sets out to beat all of them at once: a gaming-grade stream with the work features of a support tool, on every operating system.

~5 mscapture to decoded picture at 1080p144 on a LAN
240 fpsper monitor, 720p to 4K
0keyframes needed to repair lost frames across ten simulated bad networks
∞virtual monitors, created on the remote machine as you ask
FeatureMojoParsecAnyDeskTeamViewerRustDeskMoonlight / Sunshine
Virtual monitorsUnlimited, every host OSPaid, up to 3NoNoWindows onlyWindows fork only
Frame rateUp to 240, 1080p240 at ~5 ms60 free606060–120120–240
4:4:4 colour for sharp textYes, freePaidNoNoPartlyYes
Sign-in screen, lock screen, admin promptsYesYesYesYesYesYes
Privacy mode (dark screen, locked input)YesPaidYesYesYesNo
Session recordingYes, no re-encodeNoYesPaidYesNo
Your microphone on the remote machineYesYesNoYesYesNo
2FA or device pairingPairing with a 6-digit code (SPAKE2)YesYesYesPaidPIN
Controllers with rumbleYes, on every viewerYesNoNoNoYes
Linux hostYes, X11 and GNOME WaylandNoYesYesYesYes
TV appsAndroid TV and Apple TVNoPartlyPartlyPartlyYes
Self-hosted relayYes, freePaidPaidPaidYesn/a
Price for all of the aboveFree and open sourcePaid tiersPaid tiersPaid tiersPaid Pro tierFree

Competitor details come from their public documentation and pricing pages; see COMPETITORS.md for sources. Mojo's figures are measured on an RTX 3070 test machine and in Windows and macOS VMs; the method and full tables are in the performance docs.

Built like a video pipeline, used like a desktop.

Virtual monitors, not window tricks

The host creates displays its own OS believes in: RandR monitors on X11, Mutter virtual monitors on GNOME, an indirect display driver on Windows, CGVirtualDisplay on macOS. Apps, docks and taskbars treat them like hardware. A computer with no monitor plugged in gets one automatically.

Hardware encode, end to end

NVENC, AMF, Quick Sync, VideoToolbox or Media Foundation on the host; NVDEC, VAAPI, D3D11 or VideoToolbox on the viewer. Software x264 steps in when no GPU encoder answers.

Holds up on bad networks

59 of 60 fps at 1080p with 5% packet loss and under 7 ms on a LAN. A lost frame is repaired by the next one, never by a keyframe burst. Forward error correction sized to measured loss, rate control that reads both delay and delivered throughput, and bitrate changes that never force a keyframe. See the results.

Your cursor, at local speed

The remote pointer shape becomes your own OS cursor, so pointing never waits for the network. Desktop audio streams as 10 ms Opus frames.

Clipboard and files, both ways

Copy text or files on one machine and paste on the other. Drag a folder onto a remote window and it lands in the Explorer or Finder window you dropped it on, or on the desktop.

Reach it from anywhere

On a LAN, hosts announce themselves. Across the internet, connect by 9-digit device ID: peers punch through NAT directly and fall back to a relay you can host yourself.

Encrypted, pinned, yours

TLS 1.3 end to end. The viewer remembers each host's certificate and refuses impostors. Relays only ever forward ciphertext. Passwords are rate-limited per address.

Made for games

Up to 240 fps, raw relative mouse with pointer lock, and up to four controllers per viewer that the host sees as Xbox pads. When a game rumbles, your controller does too, on desktop, Android and Apple devices.

Text as sharp as the real screen

Switch on 4:4:4 and every pixel of colour comes across, so small type and coloured code look exactly as they do on the other machine. Free, where others charge for it.

Reach it when nobody is there

One switch runs Mojo as a background service. On Windows you can sign in, unlock, answer admin prompts and press Ctrl+Alt+Del from your phone; it comes back after a reboot. Wake a sleeping computer from the device list first.

Pair once, skip the password

Enter a 6-digit code on your phone, tablet or laptop once and it connects without the password from then on. The code can't be relayed by an impostor, and you can remove any device in a click.

Privacy, recording, your voice

Black out the host's screens and lock its keyboard and mouse while you work. Record a session exactly as it streamed, with no re-encode. Talk through your own microphone into calls on the other machine. Chat from any app.

Open source, no account

The host, viewer, desktop app and relay are all in one Rust repository. Nothing phones home, and nothing requires a sign-in.

The same Mojo on every OS.

Feature parity across Linux, Windows and macOS is a requirement, not a stretch goal. Here is exactly where each piece stands today.

Tested end to end (real desktops, VMs or emulators) Implemented, awaiting hardware testing Not available
Share this computer (host)View a computer (client)
FeatureLinuxWindowsmacOSLinuxWindowsmacOS
Stream monitors X11, GNOMEDXGIScreenCaptureKit YesYesYes
Virtual monitors RandR, MutterSudoVDAdriver install neededCGVirtualDisplay Requested by any client
Mouse and keyboard XTest, MutterSendInputCGEvent YesYesYes
Local cursor with remote shape XFixesGDINSCursor YesYesYes
Desktop audio PulseAudio, PipeWireWASAPI loopbackScreenCaptureKit YesYesYes
Clipboard text YesYesYes YesYesYes
Clipboard files and folders YesYesYes YesYesYes
Drop files into the window under the pointer File managers, desktopDownloads otherwiseExplorer, desktopFinder, desktop Drag sourceDrag sourceDrag source
Hardware video NVENC, QSVNVENC, AMF, QSV, MFVideoToolbox NVDEC, VAAPID3D11VAVideoToolbox
LAN discovery, device ID, relay YesYesYes YesYesYes
Game controllers uinput (Xbox 360)ViGEmBus (Xbox 360)As mouse and keyboard YesYesYes
Unattended access (background service) systemd user unitService: sign-in, lock screen, UACLaunchAgent Pair any viewer with a 6-digit code
Privacy mode X11not on GNOME Wayland yetCurtain, input lockedInput lockedblackout needs real hardware to confirm YesYesYes
Microphone to the host Virtual mic built inVB-CABLEBlackHole YesYesYes
Session recording Recorded on the viewer YesYesYes
Desktop app and installer deb, AppImageNSIS installerdmg YesYesYes

Your phone, tablet and TV are viewers too.

Native apps for Android, Android TV, iPhone, iPad and Apple TV share Mojo's Rust core and decode in hardware. A controller is all you need on a TV: it becomes an Xbox controller on the computer, or the mouse and keyboard when you'd rather drive the desktop.

AndroidAndroid TViPhone, iPadApple TV
Hardware decodeMediaCodecMediaCodecVideoToolboxVideoToolbox
TouchTrackpad, direct, pinch zoomNoneTrackpad, direct, pinch zoomNone
KeyboardOn-screen with key bar, hardwareOn-screen, hardwareOn-screen with key bar, hardwareOn-screen
ControllersYesYesXbox, PlayStation, MFiSame, plus Siri Remote
Remote control as pointern/aD-pad moves, OK clicksn/aTouch surface moves, click clicks
Record, privacy mode, pairingYesYesYesYes
Microphone to the hostAndroid 10+NoneYesNone
Use the device as an extra monitorAdds a virtual display sized to the screen

Get Mojo

Mojo is early, fast-moving software. Installers and app builds are attached to releases; you can also build everything from source.

Windows

The installer sets up the desktop app, viewer, host, FFmpeg and firewall rules.

Releases

macOS

A dmg with FFmpeg bundled. iPhone, iPad and Apple TV builds come from scripts/build-apple.sh with Xcode.

macOS setup

Linux and Android

deb and AppImage packages, and an APK for Android phones, tablets and TVs. Or build from source:

git clone https://github.com/moderniselife/MojoRDP
cd MojoRDP && cargo build --release