DroidHarbor

macOS · Quick Share

Your Mac, in Android's share sheet.

DroidHarbor puts your Mac where your phone already looks. Pick a photo, tap Share → Quick Share, and it lands in a folder you chose. Send files, links and text back the same way. Nothing goes through the cloud, and there is no account to make.

Universal, Apple Silicon and Intel macOS 14 or later Free, GPL-3.0 English, Spanish, Italian, French

What it is

Quick Share, without the missing half.

Android has excellent built-in sharing between nearby devices. Macs were never invited. DroidHarbor speaks the same protocol, so your phone finds your Mac in the share sheet it already uses. No app on the phone, no QR codes, no uploading a file to yourself.

Receive from the phone

Photos, videos, APKs and documents, plus links, contacts, calendar events, addresses and phone numbers. Each one is handled as what it actually is.

Send back to the phone

Drop files on the menu-bar icon, or send a link or a note straight from the Mac. Right-click in Finder works too.

Stays on your network

Devices find each other over the local network and transfer directly. No cloud service, no account, no telemetry.

Things that travel well

  • Photos
  • Videos
  • Documents
  • APKs
  • Audio
  • Links
  • Plain text
  • Contacts (.vcf)
  • Calendar events (.ics)
  • Phone numbers
  • Addresses
  • Wi-Fi credentials

Install

Two minutes, then forget it's there.

  1. Get the app.

    Download the notarized DMG from the releases page, or build it yourself with the commands below.

  2. Drag DroidHarbor to Applications, then open it.

    The DMG shows the Applications folder beside the app, so it is one drag.

  3. Allow local network access when macOS asks.

    This is how the phone and the Mac find each other. Bluetooth, if you allow it, only makes discovery faster.

  4. Turn the extension on, so you can send from Finder.

    macOS ships third-party extensions switched off. To get Share… → DroidHarbor in Finder, enable it in System Settings → General → Login Items & Extensions.

  5. Switch Receiving on from the menu-bar icon.

    Your Mac now appears in nearby Android share sheets under the name shown in Settings.

The DroidHarbor menu-bar popover with Receiving switched on, showing quick actions and the save folder.
The menu-bar popover: the switch, the quick actions, and where files are saved.

Build from source

Requires Rust (stable), Xcode, protoc and Tuist.

# clone into a plain folder name: macOS treats a .app directory as a bundle
git clone https://github.com/eaceto/DroidHarbor.app.git droidharbor
cd droidharbor/apps/macos
tuist generate

# or produce a signed, notarized DMG (needs a Developer ID)
./release.sh 1.0.0

There is also a headless CLI for testing the protocol without the app:

cargo run -p dh-cli -- --help

Phone → Mac

Receiving a file

Anything you can share on Android can come to the Mac. The Mac stays invisible until you switch Receiving on, and every transfer needs your explicit acceptance.

  1. On the Mac: switch Receiving on.

    Set it to turn itself off after 10 minutes, 30 minutes or an hour in Settings if you would rather not stay visible.

  2. On the phone: pick the file → ShareQuick Share → tap your Mac.
  3. Check the four-digit code matches, then accept.

    The same code appears on both screens. It is what tells you the device you tapped is the device you are talking to.

  4. The file lands in your folder.

    By default ~/Downloads/droidharbor. Received items are never overwritten. A second copy of the same name gets its own.

The DroidHarbor window showing an incoming transfer with a four-digit confirmation code and Accept and Decline buttons.
An incoming transfer, with the code to check and the choice to make. Notifications carry the same Accept and Decline.
DroidHarbor receiving eight files, showing overall progress with speed and time remaining, and each file marked done, in progress or waiting.
A batch in flight: the total with speed and time remaining, and every file's own state, whether finished, running or still queued.

Trusted devices. Tick Always accept when you accept a transfer and that phone skips the prompt next time. Devices are matched by the name they announce, which a device chooses for itself, so trust the ones you own.

Everything that arrived, in one place

History keeps files, links, text, contacts, events, numbers and addresses together, each with the actions that suit it: reveal a file in Finder, open a link, call a number, add a contact. Filter by type, or search by name, extension, domain or sender.

The DroidHarbor history list with type filters, showing received files and links.
History, filtered by type and searchable. It lives in ~/.droidharbor/history.json, as plain readable JSON you own.

Mac → Phone

Sending files

The phone has to be looking: open Quick Share on Android (Settings → Connected devices, or the Files app) so it becomes discoverable, then pick it from the list on the Mac and accept the transfer on the phone.

  • Menu barDrag files onto the DroidHarbor icon and drop.
  • Send tabDrop them in the window, or choose them with ⌘O.
  • FinderRight-click a file → Share…DroidHarbor.
  • ProgressSpeed and time remaining while it goes, per item.
The Send tab of DroidHarbor with a drop zone and a list of nearby Android devices.
Drop something, pick the phone, accept on the phone.
DroidHarbor sending a 524.9 MB file to a Pixel 8, showing progress and a Cancel button.
Half a gigabyte on its way out, with a Cancel button for as long as it takes.

Mac → Phone

Sending a link or a note

Not everything worth sending is a file. Copy a URL on the Mac and it arrives on the phone as a link it offers to open, not as a text file to find and delete later. DroidHarbor tells the phone what kind of text it is sending, so the phone offers the right thing.

What you sendWhat the phone offers
A web addressOpen it in the browser
A phone numberDial it
A map link or addressOpen it in Maps
Anything elsePlain text, ready to copy
  • Clipboard⇧⌘V, or Send clipboard text in the menu bar.
  • ComposeSend Text… in the Send tab opens a box, pre-filled from the clipboard.
  • DragDrag selected text, or a link from your browser's address bar, onto the icon.
  • ShareSelect text in any app → Share…DroidHarbor.
The Send Text sheet in DroidHarbor with a URL typed in and a hint saying the phone can open it in a browser.
The sheet says what the phone will make of it before you send.

Reference

Keyboard and settings

ShortcutDoes
⌘RStart or stop receiving
⌘OChoose files to send
⇧⌘VSend the clipboard's text
⌘1 ⌘2 ⌘3Transfers, Send, Settings
  • NameWhat nearby phones call this Mac.
  • FolderWhere received files land.
  • IdleTurn receiving off by itself after 10, 30 or 60 minutes.
  • LoginOpen at login, quietly in the menu bar.
  • AlertsNotifications with Open and Show in Finder, and optional sounds.
The Settings tab of DroidHarbor showing device name, save folder, idle timeout, notifications and trusted devices.
Settings, including the list of devices you have chosen to trust.

Honesty

What it does, and what it can't

Your files stay yours

Transfers happen directly between the two devices on your local network. There is no server in the middle, no account, no analytics, and release builds write no logs. History is a JSON file in your home folder.

You are always asked

The Mac is invisible until you switch receiving on, every transfer needs acceptance, and the four-digit code must match the phone. Trusted devices are the one exception, and you choose them one at a time.

Unofficial protocol. Quick Share (Nearby Sharing) has no public specification. DroidHarbor implements a reverse-engineered version of it, built on the rquickshare library, and an Android or Play Services update could break it without warning. It is not affiliated with, or endorsed by, Google.

Current limits. Folders cannot be sent yet, only files. One transfer runs at a time. The phone must have Quick Share open on screen to be discoverable when the Mac is the one sending.