AI時代のiPhoneからmacOSへのリモート開発:Tailscale + Shellfish + tmux
AI/LLM の普及に伴い、AI/LLM との会話だけで作業できることが増えつつあります。 ソフトウェア開発という文脈でも例外ではなく、Claude Code や Codex CLI などのツールのおかげで、AI/LLM と会話しているだけでソフトウェア開発ができるという世界が現実になりつつあります。
以前のように PC の画面いっぱいにコードエディターを開く必要も薄くなりつつあり、依然としてソフトウェアの実行環境は必要ですがスマホからリモートで開発するということも選択肢に入るようになってきています。 つまり、机に向かって作業するだけでなく、スマートフォンから自宅の開発マシンにリモート接続し、場所を問わず開発できる時代になったのです。
この記事では、電車の中で iPhone からコーディングしたい、カフェで始めた作業を帰宅後に iPhone で続けたい——そんな要望を実現するリモートアクセス環境の構築方法を紹介します。
概要
このガイドでは、Tailscale と Shellfish、tmux を組み合わせることで、以下を実現します:
- ルーターのポート開放不要で外出先から自宅 Mac に安全アクセス
- 接続が切れても作業が継続され、再接続時に続きから再開可能
- iPhone と Mac で同じターミナルセッションを共有
必要なもの
macOS 側
iPhone/iOS デバイス
- App Store へのアクセス
- 以下のアプリ(App Store でインストール):
- Tailscale - VPN
- SSH クライアント(後述の推奨アプリから選択)
使用するツール
| ツール | 役割 | 解決する課題 |
|---|---|---|
| Tailscale | ピアツーピア VPN | ポート開放不要で外出先から自宅 Mac に安全アクセス |
| Shellfish | SSH クライアント | iPhone で GUI 操作、タップで接続、tmux 統合 |
| tmux | セッション管理 | 接続切断後も作業継続、複数デバイスで画面共有 |
接続の仕組み
iPhone (Shellfish)
↓
Tailscale VPN (ピアツーピア接続)
↓
macOS(開発マシン)
├─ SSH サーバー
└─ tmux セッション(永続化、マルチデバイス共有)
各レイヤーが連携して、モバイル環境でも安定したリモート開発を実現します:
| レイヤー | 技術 | 役割 |
|---|---|---|
| クライアント | Shellfish | タップで接続、GUI 管理 |
| ネットワーク | Tailscale | 安全な接続、NAT 越え、固定 IP |
| プロトコル | SSH | 暗号化された安全な接続 |
| セッション | tmux | 切断後も継続、画面共有 |
セットアップ手順
1. macOS 側の設定
1.1 必要なパッケージのインストール
Homebrew を使って macOS に必要なツールをインストールします:
# Tailscale (VPN) のインストール
brew install --cask tailscale-app
# tmux (ターミナルマルチプレクサ) のインストール
brew install tmux
1.2 tmux の設定(推奨)
tmux の設定ファイルを作成します。以下は Claude Code や AI ツールとの使用に最適化された設定です。
~/.tmux.conf に以下の内容を保存してください:
# ====================================================================================
# 基本設定 - 2025年推奨構成
# ====================================================================================
# Terminal Type: tmux-256color(現代的な推奨、tmux 2.6+)
# - screen-256color より優れた点:
# - Italics サポート(screen は非対応)
# - より正確な色再現
# - CJK(日本語)文字の改善された処理
set -g default-terminal "tmux-256color"
# True Color(24-bit RGB)サポート
# Modern tmux 3.2+ の推奨方法
set -as terminal-features ",*:RGB"
set-option -sa terminal-overrides ",tmux*:Tc"
# マウスサポート(iOS でのタッチ操作に必須)
set -g mouse on
# ウィンドウ/ペイン番号を 1 から開始(人間に優しい)
set -g base-index 1
setw -g pane-base-index 1
# ウィンドウを閉じたら番号を詰める
set -g renumber-windows on
# ====================================================================================
# Claude Code / AI ツール最適化
# ====================================================================================
# スクロールバックバッファを大幅に増加
# Claude Code は長い出力を生成するため、大きなバッファが必要
# 推奨: 500000行(約250MB)
# 参考: デフォルトは2000行、一般的な使用で50000行
set -g history-limit 500000
# ESC キー応答時間を最小化(vim/neovim 使用時の快適性)
# tmux 3.5 デフォルト: 10ms
set -sg escape-time 0
# Focus events を有効化(vim/neovim 統合)
set -g focus-events on
# メッセージ表示時間を延長(Claude Code の出力確認用)
set -g display-time 3000
# ペイン番号表示時間を延長(小さい画面での操作性向上)
set -g display-panes-time 4000
# ====================================================================================
# キーバインド
# ====================================================================================
# vi モードキーバインド(コピーモードで vim のキーが使える)
setw -g mode-keys vi
# ステータスバーは Emacs スタイル(zsh デフォルトと一致)
set -g status-keys emacs
# ====================================================================================
# ビジュアル設定
# ====================================================================================
# ステータスバーを上部に配置(iOS キーボードで隠れない)
set -g status-position top
# ステータスバーの色設定(シンプルで読みやすい)
set -g status-style bg=black,fg=white
# 現在のウィンドウを強調表示
setw -g window-status-current-style bg=blue,fg=white,bold
この設定の利点:
- Claude Code 対応1: 500000 行のスクロールバックで長い出力を完全に確認可能
- True Color2: 最新のカラースキームが正しく表示される(tmux-256color を使用)
- CJK 文字最適化: 日本語文字の表示品質向上
- iOS 最適化: タッチ操作、キーボード位置を考慮した設計
1.3 リモートログインの有効化
macOS のリモートログイン(SSH サーバー)を有効化します:
- システム設定を開く
- 一般 > 共有 を選択
- リモートログイン をオンにする
- アクセスを許可するユーザーを選択(推奨: 管理者のみ)
1.4 Tailscale のセットアップ
# Tailscale アプリを起動
open -a Tailscale
- Tailscale アプリが起動したら、指示に従ってログイン
- SSO プロバイダー(Google、GitHub など)で認証
- 接続が完了したら、macOS に割り当てられた Tailscale IP アドレスを確認:
tailscale ip -4
出力例: 100.64.1.2
重要: この IP アドレスは macOS(接続先サーバー)の Tailscale IP です。後の手順で使用するため、必ずメモしておいてください。
補足: Tailscale は各デバイスに 100.x.y.z 形式の固定 IP を自動割り当てします。この IP は、デバイスが Tailscale ネットワークに参加している限り変わりません。
1.5 Tailscale の 2FA 有効化(推奨)
- Tailscale 管理画面 にアクセス
- Settings > Users から自分のアカウントを選択
- Two-factor authentication を有効化
2. iPhone 側の設定
2.1 SSH クライアントの選択
iPhone/iPad 用の SSH クライアントは複数あります。筆者はいくつかのアプリを試した結果、Shellfish が最も使いやすいと感じました。2025 年 11 月時点での各アプリの評価は以下の通りです。
推奨: Shellfish (Secure ShellFish)3
特徴:
- ✅ 優れた tmux サポート: セッションのサムネイルプレビュー、Handoff でデバイス間のセッション移行が可能
- ✅ バックグラウンド SSH 維持: アプリがバックグラウンドでも SSH 接続を維持する機能
- ✅ Files アプリ統合: SSH サーバーを iOS の Files アプリに直接統合
- ✅ iCloud Keychain 同期: サーバー設定を自動同期
- ✅ 買い切り可能: $29.99 で永久使用可能(月額 $2.99、年額 $14.99 も選択可)
推奨理由:
- tmux との統合が優秀で、Claude Code の長い出力も問題なく扱える
- 長期的なコストパフォーマンスが高い(買い切り)
- 開発者のサポートが早い
代替案 1: Blink Shell4
特徴:
- ✅ Mosh の完全サポート: ネットワーク切り替え時も接続維持、デバイス再起動後も接続維持
- ✅ オープンソース: コミュニティによる継続的な改善
- ✅ Blink Code: ブラウザ版 VSCode 統合
- ✅ 高度なカスタマイズ: テーマ、フォント、レイアウトの自由度が高い
- ✅ iPad マルチタスク最適化: Split Screen / Slide Over に優れた対応
価格: 年額 $19.99(買い切りオプションなし)
推奨される用途:
- VSCode をモバイルで使いたい場合
- 不安定なネットワーク環境(移動中など)で Mosh による接続維持が必要な場合
代替案 2: Termius5
特徴:
- ✅ クロスプラットフォーム: Windows、macOS、Linux、iOS、Android で同期
- ✅ Mosh サポート: 接続の安定性向上
- ✅ SFTP 統合: ファイル転送機能内蔵
注意点:
- ⚠️ Claude Code との互換性問題: 2025 年 11 月時点で、AI ターミナルツール(Gemini CLI 等)使用時にスクロールバックの問題が報告されています。長い出力の後に自動的に入力欄にスクロールされ、前の出力を確認できなくなる場合があります。
価格: 無料版あり、Premium は月額 $15 程度
2.2 必要なアプリのインストール
App Store から以下をインストール:
- Tailscale - VPN 接続用
- Shellfish - SSH クライアント(上記の推奨を参照)
2.3 Tailscale のセットアップ
- Tailscale アプリを起動
- macOS と同じアカウントでログイン
- 接続が完了すると、macOS と同じ VPN ネットワークに参加
2.4 Shellfish のセットアップ
Shellfish に SSH 接続を設定します。
- Shellfish アプリを起動
- + ボタンをタップして新規ホストを追加
- 以下を入力:
- Label:
mac(任意の接続名) - Hostname:
<macOS の Tailscale IP>(例:100.64.1.2)- これは手順 1.4 でメモした macOS 側の IP アドレスです
- User:
<macOS のユーザー名>- macOS で
whoamiコマンドを実行すると確認できます
- macOS で
- Port:
22(SSH のデフォルトポート)
- Label:
- Save をタップして保存
これで設定が完了しました。ホスト名をタップするだけで接続できるようになります。
3. 接続テスト
3.1 SSH 接続のテスト
Shellfish で macOS への接続をテストします。
接続手順:
- Shellfish を開く
- 先ほど作成した
macホストをタップ - 初回接続時は、ホストキーの確認ダイアログが表示されるので Continue または Trust をタップ
- パスワード入力が求められた場合は、macOS のユーザーパスワードを入力
- 接続に成功すると、macOS のターミナル画面が表示されます
確認: 接続後、以下のコマンドでホスト名を確認できます:
hostname
macOS のホスト名が表示されれば成功です。
3.2 tmux セッションの開始
macOS に接続できたら、tmux セッションを開始します。または既存のセッションに参加することもできます:
# 新しいセッションを作成
tmux new -s dev
# または既存のセッションに参加
tmux attach -t dev
基本的な使い方
tmux の基本コマンド
セッション管理
# 新しいセッションを作成
tmux new -s <セッション名>
# 既存のセッションに参加
tmux attach -t <セッション名>
# セッション一覧を表示
tmux ls
# セッションから一時的に離脱(セッションは継続)
# Ctrl+B → d
# セッションを終了
exit
同一セッションを iPhone と Mac で共有
tmux を使うと、iPhone と Mac で同じターミナルセッションを共有できます。
-
セッションを開始する(どちらかのデバイスで):
macOS または iPhone から macOS に接続して tmux セッションを作成:
tmux new -s dev -
もう一方のデバイスから参加する:
- iPhone の場合: SSH クライアント(Shellfish/Blink Shell)で
macホストをタップして接続 - Mac の場合: ターミナルで
ssh <Tailscale IP>またはmosh <Tailscale IP>で接続
接続後、以下のコマンドで同じセッションに参加:
tmux attach -t dev - iPhone の場合: SSH クライアント(Shellfish/Blink Shell)で
-
同期された画面:
どちらのデバイスで入力しても、両方の画面に即座に反映されます。 これにより、iPhone で作業を開始し、Mac で続きを行う、といった使い方が可能です。
tmux の便利な機能
上記の設定により、以下の機能が有効になります:
- マウスサポート: タッチ操作でペインを選択可能
- vi キーバインド: スクロールモードで vim のキーが使える
- 自動番号振り直し: ウィンドウを閉じても番号が詰まる
- ESC 遅延なし: vim 使用時の遅延を解消
必要に応じて、~/.tmux.conf に設定を追加してカスタマイズできます。
トラブルシューティング
Tailscale で macOS が見つからない
原因: 両デバイスで異なるアカウントを使用している、または接続が確立されていない
解決方法:
- 両デバイスで同じ Tailscale アカウントにログインしているか確認
- macOS で Tailscale の接続状態を確認:
tailscale status - macOS でリモートログインが有効になっていることを確認
- iPhone の Tailscale アプリで接続状態を確認
SSH で "Permission denied" エラー
原因: リモートログインが有効になっていない、またはユーザー権限の問題
解決方法:
- macOS でリモートログインが有効か確認:
- システム設定 > 一般 > 共有 > リモートログイン
- 正しいユーザー名を使用しているか確認:
# macOS で現在のユーザー名を確認 whoami
tmux セッションが見つからない
原因: セッションがまだ作成されていない、またはセッション名が間違っている
解決方法:
- 既存のセッション一覧を確認:
tmux ls - セッションが存在しない場合は新規作成:
tmux new -s dev
応用編:VS Code on Browser
code-server のセットアップ
VS Code を iPhone の Safari で使用したい場合:
# macOS 側で code-server をインストール
brew install code-server
# code-server を起動
code-server
# iPhone の Safari で以下にアクセス
# http://<Tailscale IP>:8080
パスワードは ~/.config/code-server/config.yaml に記載されています。
まとめ
お疲れさまでした。これで iPhone から macOS に安全にリモートアクセスし、開発作業ができる環境が整いました。
ここまでで構築した環境は、まさに AI 時代の開発スタイル――モバイルで、常時接続で、途切れないという開発環境を実現できるはずです。 Tailscale の安全な VPN 接続、Shellfish のバックグラウンド SSH 維持機能、tmux の共有機能を組み合わせることで、AI ツールとどこからでも共同作業が可能になります。
AI アシスト開発とモバイル中心のワークフローは、生産性の新しい形を提示しています。 通勤中のデバッグ、カフェでのテスト実行、外出先からの即時デプロイ——どの場面でも、途切れずに「開発の流れ」を保つことができます。
セキュリティ設定(Tailscale の 2FA 有効化など)を忘れずに行い、快適なモバイル開発ライフをお楽しみください。
免責事項: この記事の情報は 2025 年 11 月時点のものです。ソフトウェアのバージョンアップや仕様変更により、内容が古くなる可能性があります。最新の情報は各ツールの公式ドキュメントをご確認ください。
Footnotes
-
Brian P. Hogan "Working with Claude Code" (2025 年 6 月) - 推奨: "big scrollback buffer" for Claude Code | 関連: pchalasani/claude-code-tools - Claude Code + tmux の統合ツール | ooloth/dotfiles - Claude Code 対応の実践的な dotfiles ↩
-
Terminal Type 設定: tmux-256color vs screen-256color については、コミュニティで広く議論されています。Unix & Linux Stack Exchange、Stack Overflow など複数のフォーラムで tmux-256color が推奨されています。 ↩
-
Shellfish (Secure ShellFish): App Store | 公式サイト | MacStories "Secure ShellFish Review" (2019) | 2025 年アップデート: DECSLRM 対応による tmux 改善 ↩
-
Blink Shell: App Store | 公式サイト | GitHub | オープンソース、5 年以上 AppStore でトップの開発者ツール ↩
-
Termius: App Store | 公式サイト | 2025 年 11 月時点での注意: AI ターミナルツール使用時にスクロールバックの問題あり - GitHub Issue: google-gemini/gemini-cli #10349 ↩
