0xdope

iPhoneからMac作業を安定して継続する構成を作る。

Wednesday, January 28, 2026 · B. Ackkerman · DevOps · 7 min read

Tailscale + Moshi + Mosh + tmuxでMacに安定接続し、セッションを維持する仕組みを構築してみた。

外出中でもMacの作業環境をそのまま使いたいなら、スマホ側はTailscaleとMoshiの組み合わせがかなり強い。 PC側のリモートシェルは、SSHよりMoshのほうが回線変動に強く、移動中でもセッションが切れにくい。

構成イメージ

---
config:
  look: handDrawn
  theme: dark
---
flowchart LR
    A[iPhone + Moshi] --> B[Tailscale VPN]
    B --> C[Mac mini / MacBook]
    C --> D[Mosh]
    D --> E[tmux session]
    E --> F[Long-running agent work]

Macのセットアップ

1. スリープを防止する

Amphetamineをインストールして起動し、意図しないスリープを止める。

2. リモートログインを有効にする

sudo systemsetup -getremotelogin
# Remote Login: On

3. SSHキーを準備し、公開鍵を登録する

秘密鍵は端末外に公開しない。以下は形式だけ示す。

-----BEGIN OPENSSH PRIVATE KEY-----
...
-----END OPENSSH PRIVATE KEY-----
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI... your-email@example.com

4. ターミナル多重化ツール tmux を入れる

brew install tmux

5. SSHの代替として Mosh を入れる

brew install mosh

mosh --server=/opt/homebrew/bin/mosh-server ackkerman@100.68.129.97

# mosh でも鍵を使う場合
mosh \
  --server=/opt/homebrew/bin/mosh-server \
  --ssh="ssh -i ~/.ssh/id_ed25519" \
  ackkerman@100.68.129.97

6. Tailscaleをインストールする

MacとiPhoneの両方で同じTailnetに参加させる。

7. AGENTS.md に通知設定を追記する

## Notifications

When you complete a task or need input, notify me:

curl -s -X POST https://api.getmoshi.app/api/webhook \
  -H "Content-Type: application/json" \
  -d '{"token": "WqGmAWm9W7e6DAOERpwnCDjEhT1awRbg", "title": "Status", "message": "Brief summary"}'

8. (オプション) 日本語の豆腐化を防ぐ

# profile に追加
export LANG=C.UTF-8

iPhoneのセットアップ

  1. Tailscale と Moshi をインストールする
  2. Moshiで接続先を作成する(ホストはTailscale IP、ユーザーはMacのログインユーザー)
  3. 接続後に tmux を起動する
tmux

tmux最小コマンド

コマンド説明
tmux new -s dev名前付きセッションを作成
tmux attach -t devセッションに接続
tmux lsセッション一覧を表示
Ctrl+B → dセッションから切断
Ctrl+B → $セッション名を変更

なぜSSHよりMoshが安定か

---
config:
  look: handDrawn
  theme: dark
---
stateDiagram-v2
    [*] --> Connected
    Connected --> WeakNetwork: 回線悪化
    WeakNetwork --> Roaming: Wi-Fi/LTE切替
    Roaming --> Recovered: 経路復帰
    Recovered --> Connected: 同一tmux継続
    WeakNetwork --> Disconnected: 長時間断
    Disconnected --> Connected: 再接続

MoshはUDPベースでローミング耐性が高く、IP変化や一時断に強い。 さらにtmuxを重ねると、接続が切れても作業プロセスを維持できる。

まとめ

この構成の要点は次の3つだ。

  • ネットワーク: Tailscaleで到達性を固定する
  • 端末接続: Moshi + Moshで不安定回線でも作業を継続する
  • セッション保持: tmuxでエージェント作業を常駐させる

スマホからMacを「終わらない作業エージェント」として使いたいなら、この組み合わせは実用性が高い。

This is an excerpt from B. Ackkerman's iPhoneからMac作業を安定して継続する構成を作る。 article. I highly recommend you give it a read!