Apple ↔ Apple
Continuity works beautifully, and the friction of leaving is exactly the point.
Open source · direct device link
Bridge puts a live link between the two devices on your desk. Notifications, clipboard, files and battery cross over directly — radio to radio. No network, no account, no cloud, no server anywhere in the path.
The problem
The Android↔Mac gap is commercial, not technical. Every shipping phone-to-desktop link exists because one vendor owns both sides of it — and the two you own happen to belong to different vendors.
Continuity works beautifully, and the friction of leaving is exactly the point.
Microsoft sells no phone, so Phone Link defends Windows. Samsung ships the other half.
Nobody gains from building it for a rival. The radios are already there; the maintainer was missing.
Bluetooth LE for discovery and wake, Wi-Fi for payload, mDNS for service advertisement — both sides have had the hardware all along. Bridge is just the published protocol and the app on each end.
How it works
One resident link carries control. Anything bulky gets its own channel, opened for the transfer and torn down after — so a 2 GB video never parks itself in front of your notifications.
The foreground service broadcasts one Bridge service UUID — the only constant in the build. Nothing about either device is known in advance.
It reads an identity characteristic — a randomly generated device id, a name, a type and two capability arrays — then opens an L2CAP channel for the session.
The phone asks to pair; the Mac shows the request in its menu bar and waits. Nothing is trusted until you accept it yourself.
Walk away and the Mac says out of range; walk back and it reconnects without you touching anything. Capability arrays, not a version number, decide what each peer may send.
What it does
Bridge speaks the KDE Connect wire format — a public, stable protocol — rather than inventing a private one.
Phone notifications land in macOS Notification Center. Where the notification supports a reply, you type it on the Mac and it goes back out through the phone.
Copy on one device, paste on the other. Each side stamps its clip with a timestamp and ignores anything staler than what it already holds, so reconnecting never ping-pongs an old clipboard back at you.
Send without unlocking the phone or opening a browser. Bridge names a tier and a destination, the receiver opens that channel, the bytes move, the channel closes — the control link stays free the whole time.
Charge level and charging state, pushed from the phone and visible from the Mac's menu bar — no app to open, no phone to pick up.
Security & privacy
Each device generates a self-signed certificate once, at first launch, and keeps it forever. The fingerprint of that certificate is the device's identity. There is no password, no account, and nothing in the middle to subpoena.
No relay, no broker, no account, no telemetry. Bluetooth and your own Wi-Fi are the entire network path; the internet is never in it.
Dropped before parsing — an unknown device cannot even get its JSON looked at.
It is never silently re-paired. A reinstall and an impostor look identical from the outside, so both require a deliberate re-pair by you.
The device id is random, generated once at first launch, and derived from no hardware identifier. One service UUID is the only constant in the build.
Either side can drop the pin and go back to advertising. Pairing a different phone is an unpair and one more confirmation — no reinstall, no config file.
Install
Installing the app on both devices is the only setup step. There is nothing to sign up for.
brew install --cask deepakk33/tap/bridge-link
Bridge lives in the menu bar, not the Dock. On first run macOS asks for Bluetooth, Notifications and Local Network — all three are needed.
Ad-hoc signed, not notarized by Apple. There is no Apple Developer Program membership behind this build, so Gatekeeper has not blessed it. The cask clears the quarantine attribute on install; if you download the app by hand, macOS will refuse to open it until you allow it in System Settings → Privacy & Security. Read the cask and the source first if that trade-off matters to you — it should.
https://github.com/deepakk33/Bridge/releases/latest
Download the APK from the latest release and install it. Bridge is not on Google Play, so your phone will ask you to allow installs from your browser or file manager once.
Then grant Bluetooth and Notifications when prompted, enable Notification access in Settings (the app links you straight there), and let Bridge ignore battery optimisation so the service is not killed.
Open both apps and accept the pair request on the Mac. From then on it reconnects on its own. Requires macOS 15 (Sequoia) or later, Android 12 (API 31) or later, and Bluetooth LE on both.
Honest limitations
Some of this is a choice. Some of it is the operating system saying no. Either way you should know it before you install, not after.
Automatic background clipboard sync is not possible on Android 16 without
rooting the phone. The OS made READ_CLIPBOARD_IN_BACKGROUND role-managed,
so it cannot be granted to a sideloaded app — not by ADB, not by Shizuku, only by root. This is
not something a future release of Bridge can fix.
So the clipboard works deliberately instead:
Mac-side reading is unrestricted, so the direction that annoys you least is the one that still works instantly.
Bridge does not mirror or control the phone's screen. scrcpy already does that well over USB or ADB-over-Wi-Fi; duplicating it badly would help nobody.
A Mac is paired to exactly one phone, and a phone to one Mac. Either side can unpair and pair with a different device at any moment — but fan-out to several phones at once is out of scope.
No Apple Developer Program, no Play Store listing. That means no review queue and no platform policy — and also no notarization and no store vetting. The source is public precisely so that trade-off is yours to check.
A Mac has one Wi-Fi radio, and macOS cannot host a hotspot at all any more. So tier 4 means the phone hosts and the Mac leaves its current network to join — never automatic, always a button with a warning, and the Mac rejoins afterwards.
Bridge runs a foreground service and survives being swiped from recents, but some Android skins are more aggressive than stock. Setting Bridge to unrestricted battery usage is part of setup for a reason.
FAQ
No. The resident link is Bluetooth LE, and it carries presence, notifications, clipboard and all control — with Wi-Fi switched off entirely. Wi-Fi is only climbed to when you move a file big enough to justify it, and if there is no shared network, small files still go over Bluetooth Classic.
No. There is no server, no relay and no account in the design, so there is nothing for Bridge to call home to. The only network path is the radio between your two devices, plus your own LAN when a file is large enough to use it.
Any Mac on macOS 15 (Sequoia) or later, and any Android phone on Android 12 (API 31) or later, both with Bluetooth LE. No device id, serial, name or address is baked into either build — everything about the pair is discovered at runtime.
Yes. MIT licensed, source on GitHub, no paid tier, no upsell, nothing to subscribe to. It was built to solve one person's problem and costs nothing to give away.
AirDrop does not speak to Android at all, and Quick Share for desktop does not speak to macOS. Both are also file-transfer tools: they will not mirror a notification, let you reply from the Mac, sync a clipboard or show you the phone's battery. Bridge is the resident link, not a one-shot send.
It stays on your two devices. Notifications, clips and files cross the link directly and are not stored anywhere else; there is no analytics SDK, no crash reporter and no identifier collected. The device id each app generates is random and is only ever shown to the other device.
Notarization requires a paid Apple Developer Program membership, which this project does not have. The app is ad-hoc signed with a self-signed certificate instead, which is enough for macOS to run it but not enough for Gatekeeper to vouch for it. The Homebrew cask handles the quarantine attribute; the source is public so you can build it yourself if you would rather not trust a binary.
Open the Mac menu-bar panel and tap Unpair — that drops the pinned fingerprint and puts the Mac back into scanning. Install Bridge on the new phone, open it, and accept the pair request on the Mac. No reinstall on the Mac, no configuration file, no build change.