
Bridge your iPhone to the Linux Wayland desktop
Tether aims to support all of the Apple Continuity features on Linux that are technically possible. If you've migrated away from macOS but still carry an iPhone, Tether provides the missing ecosystem integration.

| Feature | Status |
|---|---|
| Clipboard Sync | ✅ Stable |
| File Transfer | ✅ Stable |
| iOS App | ✅ Stable |
| Browser Extension | ✅ Stable |
| Mail Extension | ✅ Stable |
| Messages (SMS/iMessage) | 🧪 Beta |
| Notification Mirroring | 🧪 Beta |
| TOTP/OTP Vault | 🗓️ Planning |
Text copied on your Linux desktop appears instantly on your iPhone, and vice versa.
Drag and drop files from Linux directly into the iPhone app, or receive files automatically to your $XDG_DOWNLOAD_DIR (~/Downloads).
Read and reply to SMS and iMessage conversations, and see notifications from any app on the phone, on the Linux desktop.
There are two ways tether communicates with the iPhone:
You can use either or both, depending on your needs.
Connections use Mutually Authenticated TLS (mTLS), restricting TCP traffic securely using X.509 RSA certificates.
Streamline two-factor authentication across your devices:
A unified WebExtension that works in Thunderbird/Betterbird and Firefox/Chromium browsers:
The extension communicates with tetherd via native messaging. This allows users to autofill OTP codes into websites when the email arrives.
yay -S tether
On Debian/Ubuntu:
sudo apt install build-essential cmake ninja-build pkg-config git \
libwayland-dev libavahi-client-dev libssl-dev \
libglib2.0-dev libgtk-3-dev libgtk-layer-shell-dev libnotify-dev \
npm zip
On Fedora:
sudo dnf install gcc-c++ cmake ninja-build pkgconf-pkg-config git \
wayland-devel avahi-devel openssl-devel \
glib2-devel gtk3-devel gtk-layer-shell-devel libnotify-devel \
npm zip
# Clone the repository
git clone https://github.com/zackb/tether.git
cd tether
# Build and test
make release
# Install the daemon, cli, and GTK app
make install
On Linux, launch the GTK app (tether-gtk) or run the CLI to pair your iPhone.
WiFi pair via the GUI or CLI:
Open the iOS app, it will auto-discover the daemon. You will be prompted on both the iPhone and Linux to accept the pairing request. Once accepted on both ends, the devices are paired.
or
tether pair
Bluetooth (for Messages and Notifications):
First, one-time system setup. This prints only the steps your machine still needs, with the exact commands:
tether --bt-setup
Tether never applies these itself: they change how the machine behaves over Bluetooth outside of Tether, so running them is your call. The same steps appear in the GTK app's Devices page, with a "Copy commands" button.
Then pair. In the GTK app, pick your iPhone under BLUETOOTH on the Devices page and press "Pair over Bluetooth". Confirm the code on both the iPhone and Linux.
or
tether --bt-devices # find the iPhone's address
tether --bt-pair <address>
tether --bt-connection # what is up, and what is not
On the iPhone, under Settings > Bluetooth > (i) for this computer, enable "Show Message Notifications" and "Sync Contacts". Both are needed. They can take a few minutes to appear; "Show iPhone Permissions" in the GTK app re-advertises so they show up again.
tetherd: A background process running on Linux manages Bluetooth, TCP+mTLS, and Wayland integration.
tether: A CLI to communicate with the daemon. This also allows the WebExtension to interface with the daemon via native messaging.
tether-gtk: An application for Linux that provides a graphical interface to manage devices, send files, trigger clipboard sync, read and reply to iPhone messages, see mirrored notifications, and monitor connection status.
iPhone App: Discovers the daemon via Bonjour/mDNS, utilizing Apple's Network.framework for secure TLS negotiation. Not required for SMS/iMessage and notification mirroring, which use Bluetooth.
Browser/Mail Extension: WebExtension that interfaces with the daemon via native messaging. Use with Thunderbird/Betterbird and Firefox or Chromium-based browsers.
wlr-data-control protocol (Hyprland, Sway, Fenriz etc.)wayland-clientopensslpkg-configninjagtk3 (for tether-gtk)nlohmann-jsonglib2avahibluez, bluez-utils, and bluez-obex (for messages and notifications)tether --bt-setup prints the one command that applies it.
Do this before pairing.Contributions are welcome!
Tether is licensed under the MIT License.
322 commits
C++
82.4%
Swift
10.7%
JavaScript
3.6%
Shell
2.1%
CMake
1.2%

Bridge your iPhone to the Linux Wayland desktop
Tether aims to support all of the Apple Continuity features on Linux that are technically possible. If you've migrated away from macOS but still carry an iPhone, Tether provides the missing ecosystem integration.

| Feature | Status |
|---|---|
| Clipboard Sync | ✅ Stable |
| File Transfer | ✅ Stable |
| iOS App | ✅ Stable |
| Browser Extension | ✅ Stable |
| Mail Extension | ✅ Stable |
| Messages (SMS/iMessage) | 🧪 Beta |
| Notification Mirroring | 🧪 Beta |
| TOTP/OTP Vault | 🗓️ Planning |
Text copied on your Linux desktop appears instantly on your iPhone, and vice versa.
Drag and drop files from Linux directly into the iPhone app, or receive files automatically to your $XDG_DOWNLOAD_DIR (~/Downloads).
Read and reply to SMS and iMessage conversations, and see notifications from any app on the phone, on the Linux desktop.
There are two ways tether communicates with the iPhone:
You can use either or both, depending on your needs.
Connections use Mutually Authenticated TLS (mTLS), restricting TCP traffic securely using X.509 RSA certificates.
Streamline two-factor authentication across your devices:
A unified WebExtension that works in Thunderbird/Betterbird and Firefox/Chromium browsers:
The extension communicates with tetherd via native messaging. This allows users to autofill OTP codes into websites when the email arrives.
yay -S tether
On Debian/Ubuntu:
sudo apt install build-essential cmake ninja-build pkg-config git \
libwayland-dev libavahi-client-dev libssl-dev \
libglib2.0-dev libgtk-3-dev libgtk-layer-shell-dev libnotify-dev \
npm zip
On Fedora:
sudo dnf install gcc-c++ cmake ninja-build pkgconf-pkg-config git \
wayland-devel avahi-devel openssl-devel \
glib2-devel gtk3-devel gtk-layer-shell-devel libnotify-devel \
npm zip
# Clone the repository
git clone https://github.com/zackb/tether.git
cd tether
# Build and test
make release
# Install the daemon, cli, and GTK app
make install
On Linux, launch the GTK app (tether-gtk) or run the CLI to pair your iPhone.
WiFi pair via the GUI or CLI:
Open the iOS app, it will auto-discover the daemon. You will be prompted on both the iPhone and Linux to accept the pairing request. Once accepted on both ends, the devices are paired.
or
tether pair
Bluetooth (for Messages and Notifications):
First, one-time system setup. This prints only the steps your machine still needs, with the exact commands:
tether --bt-setup
Tether never applies these itself: they change how the machine behaves over Bluetooth outside of Tether, so running them is your call. The same steps appear in the GTK app's Devices page, with a "Copy commands" button.
Then pair. In the GTK app, pick your iPhone under BLUETOOTH on the Devices page and press "Pair over Bluetooth". Confirm the code on both the iPhone and Linux.
or
tether --bt-devices # find the iPhone's address
tether --bt-pair <address>
tether --bt-connection # what is up, and what is not
On the iPhone, under Settings > Bluetooth > (i) for this computer, enable "Show Message Notifications" and "Sync Contacts". Both are needed. They can take a few minutes to appear; "Show iPhone Permissions" in the GTK app re-advertises so they show up again.
tetherd: A background process running on Linux manages Bluetooth, TCP+mTLS, and Wayland integration.
tether: A CLI to communicate with the daemon. This also allows the WebExtension to interface with the daemon via native messaging.
tether-gtk: An application for Linux that provides a graphical interface to manage devices, send files, trigger clipboard sync, read and reply to iPhone messages, see mirrored notifications, and monitor connection status.
iPhone App: Discovers the daemon via Bonjour/mDNS, utilizing Apple's Network.framework for secure TLS negotiation. Not required for SMS/iMessage and notification mirroring, which use Bluetooth.
Browser/Mail Extension: WebExtension that interfaces with the daemon via native messaging. Use with Thunderbird/Betterbird and Firefox or Chromium-based browsers.
wlr-data-control protocol (Hyprland, Sway, Fenriz etc.)wayland-clientopensslpkg-configninjagtk3 (for tether-gtk)nlohmann-jsonglib2avahibluez, bluez-utils, and bluez-obex (for messages and notifications)tether --bt-setup prints the one command that applies it.
Do this before pairing.Contributions are welcome!
Tether is licensed under the MIT License.
322 commits
C++
82.4%
Swift
10.7%
JavaScript
3.6%
Shell
2.1%
CMake
1.2%