TwinDesk
New in 2.1 Calls, texts, photos, and no shared Wi-Fi needed

Your Mac, Windows PC, Linux box and Android phone, working together like they were made for it. One mouse and keyboard. Files that just fly across. Your phone's calls and texts, right on your computer.

  • Free and open source
  • No account
  • No cloud
  • No shared Wi-Fi needed
Mockup.png
Report.docx
Maya Fernando is callingAnswer on Inukas-MBA
Slides
Q4 plan
Maya
one mouse! files just fly calls, on the Mac/PC

Click to try a simple demo

A MacBook, a Windows PC monitor, an Android tablet extending the Mac/PC's desktop and a phone running TwinDesk, on one desk

Your devices are great at their own jobs
and terrible at working together.

Two keyboards, two mice. One very confused person.
Emailing yourself a file. Again. To the computer right next to you.
The phone rings… somewhere. Under a cushion, in another room, out of battery.

TwinDesk fixes all of that.

Install it on each device, pair once, and they work as one desk. Here's how a day with it looks.

Chapter 1 · PC ↔ PC

Two computers, one desk

A Mac and a Windows PC side by side. Or two PCs, two Macs, Linux and anything. Scroll along.

One mouse and keyboard

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

No second mouse, no switch box. The pointer slides from the Mac onto the PC like they're one big screen. Trackpad gestures carry over, and a double-tap of the hotkey brings everything home.

Your keyboard follows

Type on the PC with the Mac's keyboard.

Wherever the pointer is, that's where your keys go. Shortcuts too, with Ctrl and ⌘ swapped if you like.

Drag and drop files

Grab a file, carry it across, drop it anywhere.

Drag files across the screen edge and they land where you let go, with live progress on both sides. Or copy with ⌃⌥C and paste with ⌃⌥V. Big folder? Share it as a network drive.

One clipboard

Copy on one, paste on the other.

Instantly, or when you switch over. Password manager entries are skipped, and a Recent list keeps the last few things you copied.

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 yours, with its own Dock icon or Start-menu pin.

A second screen

The PC becomes your Mac's second monitor.

Extend with a real virtual display, or mirror. Drag a window across and keep going. Low-latency video with Fastest and Smooth modes, and optional frame generation.

Chapter 2 · PC ↔ Android

Your phone joins the desk

Most phone links stop at notifications. In TwinDesk your Android phone or tablet is a full peer: its calls, texts, photos, files, screen and apps, on your Mac, Windows or Linux computer.

Pair once

Open TwinDesk on both. Check the code. Done.

The phone shows up under Nearby on Wi-Fi or Bluetooth. Plug in a USB cable instead and it's even simpler: click Allow, no code. From then on they connect by themselves.

New · Calls

The phone rings. Answer it on your computer.

See who's calling, then Answer, Decline, Mute and End. With Bluetooth, your computer becomes the phone's headset, so you talk and listen right there. A dial pad, your contacts and the call history are on the Calls page.

New · Messages

Read and reply to texts with a real keyboard.

Every conversation, pictures included, new ones as they arrive, and a count in the sidebar. Start a new one by number.

New · Photos

Your camera roll, on the big screen.

Browse photos, videos and screenshots, open any of them big, and save one or a dozen to the computer. No cable, no cloud.

Files, like AirDrop

Share from any app, it lands on your computer.

Pick Send to computer in Android's share menu, or drag files onto the phone from the computer. Phone Files browses the phone's whole storage, and shared folders work both ways: the phone in Finder or Explorer, a computer folder in the phone's Files app.

Screen, apps and a second monitor

Phone apps in windows, a tablet as an extra screen.

Open single Android apps in windows of their own, next to your desktop apps, and control them with your mouse and keyboard. Prop up a tablet and it becomes a second monitor: Extend or Mirror, with touch as the mouse.

Chapter 3 · new in 2.1

Works anywhere. Even with no Wi-Fi.

On a train, in a café whose Wi-Fi blocks devices, or with no network at all. TwinDesk picks the best link by itself, and moves you when things change.

What works over what
Same Wi-FiUSB cableBluetooth+ Wi-Fi Direct
Mouse, keyboard, clipboard, notifications✓✓✓✓
Calls and texts✓✓✓✓
Screens, apps, files, photos✓✓moves to Wi-Fi Direct✓

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 Wi-Fi, over Bluetooth, or on a USB cable.

  3. 3

    Pair once

    Compare a code (on a cable, just click Allow). After that they connect by themselves.

For the phone's screen and apps in windows, TwinDesk walks you through Android's wireless debugging once. Files, clipboard, notifications, calls, texts, photos and mouse and keyboard work without it.

Your desk stays yours.

TwinDesk only talks to devices you've paired with: directly, over your own network, Bluetooth, a direct Wi-Fi link or a cable. No accounts, no telemetry, no cloud relay. Your calls, texts and photos go straight from the phone to your computer and nowhere else. The only internet request is an update check against GitHub, 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.1.0

↔ Mac ↔ PC ↔ Mac ↔ Mac ↔ PC ↔ PC ↔ anything ↔ any computer

Changelog

  1. v2.1.0latest

    No shared Wi-Fi needed. Calls, texts, photos and files from your phone.

    📡 Connect anywhere

    • Bluetooth LE: phones and computers nearby connect by themselves, with no Wi-Fi at all.
    • Wi-Fi Direct: a fast direct link for files, screens and apps, then back to Bluetooth.
    • Phone hotspot: one click, and the computer joins the phone's hotspot.
    • USB pairing: plug in and press Allow, no code.
    • The link in use is always shown, and Bluetooth turns off on shared Wi-Fi to save battery.

    📱 Your phone on your computer

    • Calls: answer, decline, mute, hang up, and talk through the computer. Dial pad, contacts, history.
    • Messages: read conversations, see pictures, send texts.
    • Photos: browse photos, videos and screenshots, save them to the computer.
    • Phone Files: the phone's storage, with upload, rename, delete and new folders.
    • Shared folders both ways, the phone as a drive on Windows and Linux.
    • Mouse, keyboard and sound without wireless debugging.

    🖥 Everyday & fixes

    • Live file progress on every device.
    • Disconnect, Switch and Take over between devices.
    • Second-screen toolbar on Windows; pairing pops up over the window.
    • Windows: mouse sharing from the tray (#16), no blank pointer after UAC (#15), no stray scrolling (#17).
    • Linux: Extend fixes, monitors stay on at start on NVIDIA.
  2. v2.0.1Linux start-up crash fixed, clearer port errors, Windows antivirus false positive
    • Linux: no more crash on start with EADDRINUSE (#5); pairing works again.
    • All computers: a taken port 47800 is reported instead of crashing.
    • Windows: setup scripts changed so heuristic antivirus engines no longer flag the installer.
  3. v2.0.0Android joins: phone and tablet as full peers
    • Tablet or phone as a second screen, Extend or Mirror.
    • Android apps in their own windows, and the phone's screen mirrored.
    • Share menu Send to computer, drag and drop, ⌃⌥C/⌃⌥V.
    • Clipboard, notifications and sound sync.
    • Mount the phone in Finder. Missing Linux features and Windows on ARM added.
  4. v0.2.0Mac, Windows and Linux as one desk, out of beta
    • Second screen, one mouse and keyboard, clipboard, files, apps, notifications, terminal and sound between computers.
    • About page with update check and system info.
  5. v0.1.0The first public beta 🎉
    • Two computers on one network sharing screen, mouse and keyboard, clipboard, files, sound, notifications, terminal and apps, over an encrypted link.

Full release notes on GitHub →

Under the hood

for the curious, and for building it yourself

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's screen through adb and scrcpy's server.

The link between two devices is one TLS session wherever it runs: the local network, a phone's USB cable, or Bluetooth LE (a GATT pipe of TwinDesk's own). When a Bluetooth session needs bandwidth, TwinDesk brings up a Wi-Fi Direct group or joins the phone's hotspot, moves the session onto it, and takes it down again. Ports: TCP 47800 (control) 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 notifications and texts on your computer?

Those need the full version: the same app plus notification and SMS access. Play Protect blocks those 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.