logo
Kurashizu Blogwhere ideas flow
  • Home
  • News
  • Blog
  • About
  • Home
  • News
  • Blog
  • About

© 2026 Kurashizu. All rights reserved.

Admin·New Post·Service Status
Powered by Cloudflare·05.11.26
← Back to news

Tether: iMessage, SMS, etc. on Linux

Original article
zackbartel.com|90 points|44 comments|by zackb|Aug 24, 2026

Tether: Bringing iMessage, SMS, and More to Linux

By Zack Bartel | August 23, 2026

When I made the jump to using Linux as my primary operating system, I was surprisingly content. While the absence of AirPlay was a minor annoyance, there was one glaring void: Apple's "Continuity."

I deeply missed the seamless ecosystem where my iPhone and computer acted as one—specifically the ability to sync clipboards, share files, receive notifications, and handle iMessages/SMS. The most frustrating loss was the magic convenience of one-time password (OTP) codes automatically filling into login forms.

The Vision for Tether

While implementing every single aspect of Continuity on a non-Apple OS is technically impossible, the goal of Tether is to achieve everything that is possible.

The Development Roadmap

I didn't start with the hardest problems. Instead, I built a foundation that could scale.

  1. Clipboard Synchronization: This was the first milestone. It was the simplest entry point and forced the creation of the necessary infrastructure for Wayland (Linux) and iOS.
  2. The iOS App: Because the App Store is a notorious hurdle, I released a lightweight iOS app early on that only supported clipboard syncing.
  3. The Backend: I developed tetherd, a basic daemon to handle the Linux side of the operation.

Security Architecture

Security was non-negotiable from day one. The communication between iOS and Linux utilizes mTLS (mutual TLS), ensuring both endpoints are authenticated.

Security=mTLS+Opus+Fable Security Sweeps\text{Security} = \text{mTLS} + \text{Opus} + \text{Fable Security Sweeps}Security=mTLS+Opus+Fable Security Sweeps

Tether Architecture Concept


Solving the OTP Puzzle

To tackle the OTP autofill issue, I leveraged my preference for Zen Browser (Firefox-based) and Betterbird (Thunderbird-based), both of which have excellent WebExtension support.

The workflow is simple: the mail extension identifies the code and passes it to the browser extension, which then locates the appropriate input field and injects the code.

Note: Currently, this is limited to my specific software stack. If you use a different mail client, this feature won't work yet. I'm a backend developer at heart, so I'd love some help expanding this to other clients!


The Bluetooth Breakthrough

For a long time, I believed there was no direct way to interface with iMessage or SMS without using a Mac as a proxy—which I consider a "fake" solution. However, I discovered ancs4linux and BlueFerry.

The real turning point was reading erikwb's protocol documentation, which illuminated how the process actually worked. This led to a philosophical and technical crossroads regarding licensing:

  • Existing Projects: Licensed under GPL.
  • Tether: Licensed under MIT.

"I believe putting an interoperability protocol implementation behind a copyleft license is a bit unfortunate. I want this to be usable by anyone, regardless of their project's license—perhaps as a libtether library."

Because of this, I opted for a clean room implementation in C++.

The Reality of Bluetooth in 2026

Even with the protocol figured out, the actual implementation was a nightmare. Bluetooth remains a "complete shit show," characterized by:

  • Vague error messages.
  • Devices that randomly disconnect (the "automatic kicking machine").
  • A mountain of edge-case fixes to compensate for hardware inadequacies.
// Conceptual "Clean Room" Bluetooth Logic
if (device.status == BLUETOOTH_SHITSHOW) {
    handle_edge_case(); 
    retry_connection();
}

Current Capabilities

Tether has evolved from a simple clipboard tool into a comprehensive integration suite.

FeatureStatusMethod
Clipboard Sync✅Wayland ↔\leftrightarrow↔ iOS
File Transfer✅mTLS Tunnel
OTP Autofill✅Browser/Mail Extensions
iMessage / SMS✅Bluetooth / ANCS
Notifications✅Bluetooth / ANCS
Contact Sync✅Bluetooth / ANCS

Join the Project

Tether was born from a need to "scratch my own itch," but I want it to be a tool for the entire Linux community. I gain nothing from this other than the satisfaction of creating something useful.

How you can help:

  • Report bugs
  • Suggest new features
  • Provide translations
  • Improve documentation

If you are an iPhone user running Linux, please give Tether a try!