仕組み
サーバーレス。あなたのマシンがすべて。
Tailii のアーキテクチャは一貫して「余計なものを間に挟まない」ことでできています。 このページでは、その中身を隠さずに説明します。
全体像
登場人物は 2 台だけ。iPhone のアプリと、あなたのマシン(Mac / Linux)で動く
tailii-host(OSS)。その間を SSH が結びます。
制御・会話・画像 すべてこの中
唯一の例外はバックグラウンド通知で、これはあなたのマシンから Apple の APNs へ直接送られます。ここにも運営者のサーバーは介在しません。データの取り扱いの詳細は プライバシーポリシーにまとめています。
「憑依」の正体 — tmux と対話版 CLI
Tailii がセッションを開始すると、ホスト側では tmux の中で 対話版の claude / codex CLI がそのまま起動します。API を叩き直すラッパーでも、ヘッドレスの別実行系でもなく、あなたが PC のターミナルで使っているものと同一のプロセスです。
これがいくつかの大事な性質を生みます。
- PC との行き来が自由 — 同じ tmux セッションにホストマシン のターミナルから attach すれば、iPhone で進めた会話の続きを PC で操作できます。逆も同じ。どちらで開いても「同じ 1 つの会話」です。
- 切断に強い — セッションの生存は tmux が担うので、iPhone 側の接続が切れてもエージェントは止まりません。再接続すれば、途切れていた間の出力ごと追いつきます。
- 契約がそのまま — サブスクリプション認証済みの CLI をそのまま使うため、API キーの発行も従量課金も不要です。普段の契約で、普段どおりに動きます。
アプリはこの生きたセッションの出力を解釈し、ネイティブなチャットとして描画します。ターミナルの画面をピクセルで転送しているわけではないので、細い回線でも軽く、スマホの操作系に馴染みます。
承認が届くまで
エージェントがツールを実行しようとした瞬間、その実行は一時停止し、構造化されたイベントが SSH 経由で iPhone に届きます。あなたが承認カードで「許可」または「拒否」を選ぶと、その結果がエージェントに返り、実行が再開(または中止)されます。
- Claude Code は公式の
PreToolUsehook を入口にします。ツール名・概要・作業ディレクトリ、Write / Edit なら変更の diff が添えられます。 - Codex は App Server のネイティブ承認 API を使います。入口は違っても、iPhone 側では同じ承認 UI に合流します。
承認の粒度はセッションごとに選べます(毎回確認 / 編集のみ自動 / 全自動)。また、承認やツール実行のイベントはホスト側に監査ログとして残るため、後から「いつ・何を許可したか」を追跡できます。
通知の経路
通知は 2 つの経路を使い分けます。
- アプリ接続中 — SSH チャネルからイベントを受け取り、iPhone のローカル通知として表示します。ネットワークを一切出ません。
- バックグラウンド(準備中) — アプリを閉じていても承認待ちや完了を受け取れるプッシュ通知は、現在準備中の実験的機能で、既定では無効です。有効化した場合の経路は、あなたの マシンから Apple の APNs(プッシュ通知サービス)への直接送信です。
どちらの経路にも Tailii 運営者のサーバーは存在しません。「通知のために会話内容を外部に送る」という妥協をしない設計です。
セットアップ
必要なもの
- macOS または Linux のマシン(SSH サーバーが有効なこと。macOS では「リモートログイン」を ON)
- Node.js 20 以上 / tmux
- ログイン済みの
claudeCLI(Claude Code)またはcodexCLI - Tailii iPhone アプリ
手順は 1 コマンド
setup は環境診断・ランチャーの生成・ペアリング用 QR
の表示までを一度に行います。QR が読めない環境では、表示される接続先と 6
桁の確認コード(SAS)を手入力する方法も選べます。診断だけをやり直したいときは
npx tailii-host doctor。
外出先からの到達性
Tailii 自身はトンネルや穴あけを行いません。自宅 LAN 内ではそのまま、外からは Tailscale などで「あなたの端末だけがホストマシンに届く」経路を作るのが推奨構成です。到達性をアプリに内蔵しない=攻撃面を増やさない、という判断です。
セキュリティとプライバシーの設計
- 専用鍵によるSSH接続 — ペアリング時に Tailii 専用の鍵ペアを生成して使います。既存の SSH 鍵を流用しません。
- 秘密情報は Keychain へ — 接続情報・鍵は iOS の Keychain に保存。会話キャッシュ等も端末内にのみ置かれます。
- ペアリングの検証 — 直接入力ペアリングでは 6 桁の確認コード(SAS)で相手のマシンを検証し、なりすましを防ぎます。
- データは 2 台の間だけ — 会話・コード・認証情報が通るのは iPhone とホストマシンの間の SSH のみ。解析 SDK・トラッキングもゼロです。
- コードで検証できる — ホスト側の tailii-host は MIT ライセンスで公開されています。
詳細はプライバシーポリシーへ。