TwinDesk

New in 2.0 Android support 📱

Your Mac, Windows PC, Linux PC and Android phone, working together like they were made for it. One mouse and keyboard, screens, apps, files, clipboard and notifications, shared between all of them.

  • Free and open source
  • No account
  • No cloud
  • No extra hardware
A MacBook, a Windows PC monitor, an Android tablet extending the Mac's desktop and a phone running TwinDesk, on one desk

Your devices are good at their own jobs
and bad at working together.

TwinDesk fixes that.

Any combination

Mac ↔ Windows, Mac ↔ Mac, PC ↔ PC, Linux ↔ anything, and Android ↔ any computer.

No account, no cloud

Devices talk directly over your network or a USB cable, on an encrypted link.

No extra hardware, no root

Install the app on each device and pair once. That's the whole setup.

Chapter 1

💻 Two computers, one desk

Put a Mac and a Windows PC side by side and use them like one machine.

One mouse and keyboard

Push the pointer off the edge. Keep working on the other computer.

Your keyboard follows the pointer. Trackpad gestures (Spaces swipes, pinch to zoom, show desktop) carry over, and a double-tap of the hotkey brings everything home.

The other Mac's apps on the Apps page, and the Cursor page with the screen layout
A second screen

Extend your Mac onto the PC, or the PC into a window.

A real virtual display, or a mirror. Low-latency H.264 with Fastest and Smooth playback, and optional frame generation.

The MacBook's extended screen in a window on another Mac, with the Receive screen settings
The other computer's apps

A Windows app on your Mac, in a window of its own.

No full remote desktop, just the app you need, next to your own, with its own Dock icon or Start-menu pin.

Chess, Clock and Calculator from one Mac in their own windows on the other Mac
Files, folders and a terminal

Drag files across the screen edge and drop them anywhere.

Or copy with ⌃⌥C and paste with ⌃⌥V. Share a folder that shows up as a network drive, and ssh twindesk opens a shell on the other side, no passwords needed.

The Files page and the Terminal page
One clipboard

Copy on one, paste on the other.

Instantly, or when you switch over. Entries from password managers are skipped, and a Recent list keeps the last few things you copied.

The same copied text in the clipboard history on both Macs
A Mac connected to a Windows PC, and the PC's apps listed on the Mac
Mac and Windows, side by side. The same app on every platform, so a Mac and a PC pair just like two Macs.
Chapter 2 · new

📱 Your phone and tablet join in

Most phone links stop at notifications and a file drop. In TwinDesk your Android phone or tablet is a full peer: it pairs like a computer and gets the same features.

Your phone, on your desktop

Android apps in windows right next to your desktop apps.

See the phone's screen in a window and control it with your mouse, trackpad and keyboard, or open single apps on their own. Pin them to the Dock or the Start menu like any other app.

The tablet's home screen in a Mac window, and Calculator, Calendar and Clock open as separate Mac windows
A second screen you already own

Turn a tablet into an extra monitor.

Extend for more desktop space, or Mirror to show what's on your screen. Drag windows onto it and use touch as the mouse: tap to click, hold to right click, two fingers to scroll.

Share screen settings on the Mac, and the tablet showing the extended Mac desktop
Sharing as easy as AirDrop

Share from any Android app, land it on your computer.

Pick Send to computer in the system share menu. Going the other way, use the macOS Share menu, Explorer's Send to, or drag files across the screen edge. Files arrive with a notification you can tap to open.

The Mac's Files page, the Android share menu with Send to computer and Copy to computer, and a received-file notification on the tablet
Your mouse and keyboard on the phone

The pointer carries on onto the phone.

Type with your real keyboard in any Android app, scroll with your trackpad, then double-tap the hotkey to come back.

Cursor settings on the Mac and on the phone, with the device layout
The same copied text in the clipboard history on the Mac and on the tablet
Copy here, paste there. Instant, in the background, with a Quick Settings tile that sends the phone's clipboard in one tap.
Notification settings on the Mac and on the phone
Notifications both ways. The phone's show up on the computer as native notifications. Hide the text for privacy or mute single apps.

Wi-Fi or a USB cable, your choice

TwinDesk finds your phone on the network by itself and reconnects after a Wi-Fi drop. Plug in a cable and it switches over for even lower latency, then back to Wi-Fi when you unplug.

The Android app on a phone: Overview, Screen, Files, Clipboard and More
Made for phones and tablets. Tabs at the bottom on a phone, a full sidebar on a tablet. Plus Quick Settings tiles, home screen shortcuts and sound in both directions.
The Android app on a tablet: Overview and Files

Works with

↔Mac ↔ Windows PCEverything in Chapter 1
↔Mac ↔ MacEverything
↔PC ↔ PCEverything
↔Linux ↔ Mac, PC or LinuxEverything, with a few differences
↔Android ↔ Mac, Windows or LinuxEverything in Chapter 2

Up and running in two minutes

  1. 1

    Download

    Get TwinDesk for each computer and your phone. It's free.

  2. 2

    Open it on both

    They find each other on the same network, or over a USB cable for a phone.

  3. 3

    Pair once

    Compare a code. From then on they connect by themselves.

For the phone's screen, apps, touch and mouse, TwinDesk walks you through turning on Android's wireless debugging once. Files, clipboard and notifications work right away.

Your desk stays yours.

TwinDesk only talks to devices you've paired with, directly over your own network or cable. No accounts, no telemetry, no cloud relay. The only internet request is an update check against GitHub's public releases, and you can turn it off.

Get TwinDesk

Free and open source. Install it on every device you want on your desk.

All releases · Star it on GitHub ★ · latest: v2.0.0

not sure yet? try it first, no install:

Under the hood

for the curious, and for building it yourself
Each computer runs the TwinDesk app and a native helper; they are linked by a TLS control channel, WebRTC media and system services. A phone joins over Wi-Fi or USB. Mac, PC or Linuxthe other device TwinDesk appwindow, pairing, link, state native helperinput, displays, capture TwinDesk appa computer, or the Android app helper · or adb + scrcpyinput, displays, phone screen TLS control · TCP 47800 WebRTC screen + sound clipboard · files · ssh

Each computer runs an Electron app for the window, pairing, the link and the state machines. Next to it runs a small native helper (Swift on macOS, C# on Windows, C on Linux) for what the OS keeps to itself: capturing and injecting input, virtual displays, gestures, window capture and native drag and drop. The Android app is Kotlin and Jetpack Compose; the computers drive the phone through adb and scrcpy's server. Ports: TCP 47800 (control link) and UDP 47801 (discovery), on your local network only.

Build it yourself

You need Node.js 18+ on every platform. Full steps, Android included, are in the README.

macOS 13 Ventura or later
xcode-select --install
cd mac
npm install
npm run build:helper
npm start
Windows 10 / 11
cd windows
npm install
npm run build:helper
npm start
Linux (X11 or Wayland)
sudo apt install build-essential libx11-dev \
  libxi-dev libxtst-dev libxrandr-dev libxfixes-dev
cd linux
npm install
npm run build:helper
npm start
Download TwinDeskFree · every platform

📱 Your download has started

Install it on your phone or tablet, open TwinDesk and pair it with your computer. That's it.

Want the phone's notifications on your computer?

That needs the full version: the same app plus notification access. Play Protect blocks notification access in downloaded apps, so it's a separate APK.

  1. Easiest: let your computer install it. In TwinDesk on the computer, open Phone › Notifications from the phone. It goes on over wireless debugging, and your settings and pairing stay.
  2. Or yourself: turn off Play Protect first (Play Store › your profile › Play Protect › ⚙ › Scan apps with Play Protect), then install the full APK.