
2026/08/24 14:09
Tether:Linux での iMessage や SMS の利用
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
テザー(Tether)は、iPhone とペアリングされた際の macOS の「Continuity」機能——iMessage、SMS、コンタクト同期、通知、ファイル共有、クリップボード同期、ワンタイムパスワード(OTP)の自動入力——を Linux へ統合し、KDE Connect など既存ソリューションが補えていないギャップを埋めています。セキュリティは当初から最優先事項であり、iOS と Linux の通信には mTLS 暗号化を採用し、定期的に Opus および Fable のセキュリティスキャンを実施することで実現しました。他のメールクライアントへの広範なサポートはまだ利用できません。開発者はバックエンド開発を優先し、拡張子の移植には集中しないためです。OTP の自動入力は、Zen Browser(Firefox)と Betterbird(Thunderbird)向けのブラウザおよびメール拡張機能を通じて行われ、メールからコードを拡張機能へ送ってログインフォームの自動埋め込みを実現します。
直接の iMessage/SMS アクセスのための Bluetooth 統合は、GPL ベースのプロジェクト(例:ancs4linux や BlueFerry)とのライセンス衝突を避けるために、独自のカスタム C++「クリーンルーム」手法を用いて実装されています。テザーは引き続き MIT ライセンスを採用しています。現在の Linux ベースのデーモンは、Tailscale などの earlier プロキシ方式と比べてより優れた直接的な接続体験を提供しており、ユーザーからは不快であると評価されていました。iOS アプリが先に登場し、当初は基本的なクリップボード同期のみを処理し、その後に広範な Continuity スタックが構築されました。
ファイル共有およびプッシュ通知は直ちに利用可能ですが、ハードウェア制約や Bluetooth 切断の問題など、将来のアップデートにおける課題依然存在しています。特に Bluetooth の実装は 2026 年においてもエッジケースが多いため困難です。本プロジェクトは金銭的利益よりも真なる価値と満足感を提供することを目指しており、シームレスなクロスプラットフォーム接続を求める技術愛好家にとってユニークなツールとなっています。バグレポート、機能要望、翻訳、ドキュメントなどの貢献をコミュニティから歓迎します。
本文
macOS から Linux に:Tether による Continuity 機能の完全再現
macOS を恋しく感じたことはありませんでしたが、Linux専業に切り替えただけで、思っていた以上に macOS の機能が欠けていなかったことに驚愕しました。
TL;DR: 私がいちばん不便だったと感じていた「Continuity」機能をすべて、Tether で実現しました。
何が足りなかったのか
AirPlay は残念ながら再現されていませんが、私が本当に欲しかったのは Apple が「Continuity」と呼んでいる機能です。 具体的には以下のような iPhone と Mac 間の連携機能のことです。
- iMessage や SMS の送受信
- ファイル共有
- クリップボード同期
- Mac で iPhone の通知を確認
特に、メールやメッセージアプリ宛てに送信されたワンタイムパスワード(OTP)コードが、ログインフォームで待機している瞬間に自動補完される機能が最も恋しく思えました。規模は小さいように見えますが、これが私が本当に欠けていたものだったのです。
Linux 上で Continuity のすべての機能を完全再現することは不可能ですが、Tether は**「技術的に可能である範囲で、すべてを実装する」**ことを目指しています。
- KDE Connect: 素晴らしいツールですが、私の求める機能(特に OTP 自動補完の深度)を果たせず、ロードマップにも今後実装の見込みがない点が問題でした。
Tether の開発史:始まりと工夫
クリップボード同期からのスタート
Tether は最初に大きな穴を埋めることに着手しました。
- クリップボード同期を最初に取り組んだのは、OTP フローを実装する必要があると確信していたからであり、最も手軽だったからです。
- これにより、macOS と Linux(Wayland)間でのコピー&ペーストが可能になり、後々必要となる基盤整備も同時に進めることができました。
アプローチの違い
App Store を大きなハードルと感じていたため、リリース戦略は以下のように行われました。
- まず iOS アプリをリリース。クリップボード同期のみをサポートする形で出荷。
- Linux 側には非常にシンプルな
デーモンが用意されました(それだけで構成)。tetherd
セキュリティ第一主義
セキュリティは从一开始第一優先事項です。安全性を決して妥協しません。
- iOS と Linux 間の通信は最初から mTLS を採用しており、双方の同意がないと何ら通信も開始されません。
- 以来、Opus と Fable を用いた定期的なバグ・セキュリティスキャンを実施しています。
メールの裏技(WebExtensions)
メールやブラウザ関連については創意工夫には長けていませんが、正直 gesagt、少し「裏技」を使っています。
- Zen Browser(Firefox)と Betterbird(Thunderbird)を使用しており、どちらも WebExtensions を非常に良好にサポートしています。
- OTP 処理専用の以下を自作しました。
- ブラウザ拡張機能
- メール拡張機能
動作仕組み:
- メール拡張機能が受信した OTP コードを検出し、それをブラウザ拡張機能へ送る。
- ブラウザ側では OTP 入力フィールドを探し、届いたコードを自動的に補完する。
現状非常にうまく動作していますが、課題は広範な互換性です。現在別のメールクライアントを使用している場合は対応できておりません。改善にご興味をお持ちの方は歓迎いたしますが、私はバックエンド側の開発に注力し続けます。
ブルートゥース統合の大転換点
これまで、iMessage や SMS に直接アクセスするインターフェースが存在しないと理解していましたが、Mac 上でプロキシを立ち上げる方法は存在しても本質的解決策ではありませんでした。Tailscale を併用しても不快感を伴う経験でした。
その折、以下のプロジェクトに出会い、完全に驚きました。
- anc4linux
- BlueFerry
特に ErikWB のプロトコルドキュメントが詳細で、ようやく何が起こっているかを理解できるほどのものでした。
ライセンスと実装の課題
これらのプロジェクトは GPL ですが、Tether は MIT ライセンスを堅持し続ける予定です。
- C++ によるクリーンルーム実装を強く望んでいました。
- 相互運用性プロトコルの実装をコピーレフトライセンスで制限する点には疑問を感じています。誰でも利用可能な仕組み(例:
と称したパブリックライブラリの提供)が理想です。libtether
いずれにせよ、最も難しい課題が解決されたことで、ブルートゥース統合の実装も滑らかに進みました。(ただし 2026 年現在でも完全に手直し状態にあります)。
- 問題の続発
- 明確な説明が欠ける箇所
- 自動的なキック機構
- ブルートゥースの不備を補うためのエッジケース対応
現在の Tether がサポートする機能
目標にたどり着きました。現在、Tether は Linux 環境で以下をサポートしています。
| 機能カテゴリ | サポート内容 |
|---|---|
| コミュニケーション | iMessage、SMS、通知表示、連絡先同期 |
| 共有・連携 | ファイル転送、クリップボード同期 |
| セキュリティ | OTP 処理(ブラウザ上での自動補完) ✅ |
そしてついに、あの煩わしい OTP コードがブラウザ上で自動補完されるようになりました!
なぜ Tether を作っているのか?
確かにこのプロジェクトは自分の課題を解決するためのものでしたが(scratch my own itch)、Tether が誰でも使えるツールとなることを心から願っています。
- 人々が利用することによる直接的な利益はありません。
- 「自分が作ったものが役に立つ」という満足感しか得られていません。
貢献の歓迎
バグ報告、新機能の提案、翻訳、ドキュメント整備など、何であっても素晴らしいです。
Linux を使用しながら iPhone をご所有の方は、ぜひ Tether を試していただければ幸いです。