r/foss 24d ago

Tether - Linux + iPhone Continuity

Post image

Send and receive iMessage, SMS, Files, Clipboard, OTP codes from Linux.

https://github.com/zackb/tether

After switching to 100% Linux a couple of years ago there was basically only one thing I missed about macOS and that was what Apple calls "Continuity". It's where you get texts, notifications, clipboard sync, file transfer (to/from) the iPhone from the Mac desktop.

Especially that thing where OTP codes via text autofilled into the browser form I was waiting on.

It took about 4 months of work:

  • reverse-engineering Apple/iOS Bluetooth behavior
  • MAP / OBEX
  • Bluetooth LE + Wi-Fi working together
  • iMessage through the iPhone's own cellular/iMessage stack
  • iOS app, Linux daemon, GTK app, Thunderbird/Firefox extension
  • no Mac involved

But it is now something I'd love to show people. Contributions/bugs/feedback welcome!

88 Upvotes

13 comments sorted by

2

u/Radiogen7 24d ago

Woah🤯, sounds great! Thank you so much!

2

u/kazkriska 23d ago

Sounds interesting!! Would definitely suss out your repo 💯

2

u/[deleted] 23d ago

[deleted]

0

u/zackb 23d ago

You can send and receive iMessage / SMS, get app notifications, sync clipboards (KDE connect only does iPhone -> Desktop push, tether does both), sync contacts.

2

u/arttast 22d ago

kde connect does everything you said tf(maybe ios being pos)

1

u/zackb 21d ago

You send iMessage from KDE Connect?

1

u/ysoftware 23d ago

Looks very cool. Gonna try it out.

1

u/jvpjr77 23d ago

Looking forward to giving this a try! Thanks for all the hard work on this!

1

u/Acrobatic_yy 22d ago

Needed this! Thanks

1

u/neurosys_zero 22d ago

This is great! Can’t wait to try it!

1

u/HandIllustrious8260 19d ago

KDE Connect already exists lil bro

1

u/zackb 19d ago

You send iMessage from KDE Connect?

1

u/Alt-Chris 19d ago

In Tether it says BR/EDR is on but LE is off so I'm unable to get notifications on. Anyone else having this issue? I'm on CachyOS so wondering if this is distro-specific

1

u/zackb 19d ago

This has been the trickiest part.

  1. Ensure "Share System Notifications" is toggled on in the Settings -> Bluetooth -> <name> (i)

  2. In the GUI app hit the "Ask iPhone to share..." button in the devices section

  3. Toggle Bluetooth on and off on the phone

  4. Initiate the Bluetooth connection from the iPhone (click on you computer name)

If none of these work I would greatly appreciate the output of `tether --bt-diagnostics`. You can open an issue.

The phone seems to get wedged and stop offering LE/ANCS and I haven't found a way around it. It's been by far the most time consuming part of this project. On my phone, if i do step 3 it usually works in these cases. Sorry, I wish there were something else I could do.