iPhoneからMac作業を安定して継続する構成を作る。
Wednesday, January 28, 2026 · B. Ackkerman · DevOps · 7 min read
Tailscale + Moshi + Mosh + tmuxでMacに安定接続し、セッションを維持する仕組みを構築してみた。
外出中でもMacの作業環境をそのまま使いたいなら、スマホ側はTailscaleとMoshiの組み合わせがかなり強い。 PC側のリモートシェルは、SSHよりMoshのほうが回線変動に強く、移動中でもセッションが切れにくい。
- Moshi記事: https://getmoshi.app/articles/mac-remote-endless-agent-setup
- Tailscale: https://tailscale.com
- Moshi: https://getmoshi.app
- Mosh: https://mosh.org
構成イメージ
---
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のセットアップ
- Tailscale と Moshi をインストールする
- Moshiで接続先を作成する(ホストはTailscale IP、ユーザーはMacのログインユーザー)
- 接続後に
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!