- スマートフォンだけで6つのClaude Codeエージェントを並列実行しながら開発作業を行う構成の説明
- Termiusとmosh、Tailscale VPN、Vultr VMを組み合わせ、ノートPCなしでも安定したリモート開発環境を維持
- tmuxセッションの維持とPoke Webhook通知により非同期開発が可能で、Claudeが入力を求めるときだけプッシュ通知で応答
- セキュリティはTailscale専用アクセス、nftables、fail2banなどの多層防御で強化
- コーヒーを待つ間や移動中でもPRレビュー・リファクタリング・バグ修正が可能な、完全なモバイル開発ワークフローを実現
全体構成の概要
- スマートフォンからTermiusアプリでmoshを使い、Tailscale VPN経由でVultr VMに接続する構成
- VM内部でClaude Codeが実行され、PreToolUse hookがPoke Webhookを呼び出してプッシュ通知を送信
- ユーザーは通知を受け取り、Claudeの質問に応答する循環構造
- この方式で非同期開発ループを構成し、いつでもどこでも作業可能
インフラの詳細構成
- Vultr VMはシリコンバレーリージョンにあり、スペックは
vhf-8c-32gb
- コストは1時間あたり$0.29、1日あたり約**$7**
- Tailscale専用アクセスによりSSHは非公開、パブリックポートはすべて遮断
- vm-startとvm-stopスクリプトでVMの起動と停止を自動化
- iOSショートカットからVultr APIを通じて直接VMを起動可能
- セキュリティ層はクラウドファイアウォール、nftables、fail2banで構成
モバイルターミナル環境
- TermiusはiOS/AndroidでSSHとmoshをサポート
- moshはネットワーク切り替え時も接続が維持され、Wi‑Fi ↔ セルラーの切り替えや省電力モードでもセッションが継続
- コマンド例:
mosh --ssh="ssh -p 47892" [email protected]
- 欠点としてSSH agent forwardingをサポートしないため、GitHub認証が必要な作業はtmux内で通常のSSHを使用
セッションの永続性
- ログイン時に自動でtmuxセッションへ接続されるよう
.zshrcを設定
- Termiusを閉じて再度開いてもセッションはそのまま維持
- 複数のClaudeエージェントをtmuxウィンドウで並列実行
C-a cで新しいウィンドウを作成し、C-a nで切り替え
プッシュ通知システム
- Claude CodeのAskUserQuestionイベント発生時にPreToolUse hookが実行
poke-notify.shスクリプトが質問を抽出し、Poke WebhookへPOSTリクエストを送信
- スマートフォンで通知を受け取り、質問を確認してすぐに応答可能
- この機能により、ユーザーはターミナルを継続的に確認しなくても完全な非同期開発が可能
信頼とセキュリティのモデル
- Claude Codeはpermissiveモードで実行され、VMは隔離されているため本番システムにはアクセス不可
- 開発に必要な最小限の秘密情報のみを含む
- 想定外の動作が起きてもVMは破棄可能
- コスト制御によってリスクを最小化し、1日あたりの最大費用を制限
並列開発構成
- Git worktreeを活用して複数の機能ブランチを同時運用
- 例:
myproject-sidebar, myproject-dark-mode など
- 各worktreeは独立したtmuxウィンドウとClaudeエージェントを持つ
- ポートはブランチ名のハッシュに基づいて決定されるため衝突しない
- 計算例:
django_port = 8001 + (hash_val % 99)
- 最大6つのエージェントを同時に実行
活用シナリオ
- コーヒーを待つ間や移動中でもPRレビュー、リファクタリング、バグ修正が可能
- Claudeが10〜20分かかる作業をしている間、ユーザーは別のことをし、通知を受けて応答してから再開できる
- デスクトップなしでも完全な開発サイクルをスマートフォンで実現
構成要素の要約
- Vultr: 1時間あたり$0.29のクラウドVM
- Tailscale: 安全なプライベートネットワーク
- Termius: モバイルSSHクライアント
- mosh: ネットワーク耐性の高いシェル
- tmux: セッションの永続性を維持
- Poke: Webhookベースのプッシュ通知
- Claude Code: 実際の開発作業を実行
結論
- 環境全体は1つのClaude Codeセッションで構築可能
- Vultr APIキーとGitHubアクセス権を渡すだけで、Claudeが安全な開発VMを自動構成
- 結果としてスマートフォンだけで完全な開発環境を実現し、モビリティと効率を最大化した事例
4件のコメント
うーん……ここまでしなきゃいけないのか……という気もしますね……
Claude CodeのWeb版を使いながら、タイピングせずに音声でコマンドを出せたらいいなと思いました。韓国語の音声をテキストとして認識させる方法のようなものが分からなくて……
Androidでは、キーボードのマイクボタンを押してから入力したい内容を話し、もう一度マイクボタンを押すと、一度に韓国語で入力できます。
Hacker Newsの意見
パンドラの箱が開いてしまった。これでホワイトカラー労働者は24時間ずっと働く世界へ向かっている
皿洗いや犬の散歩、買い物の最中でさえLLMと会話しながら無意味な機能を作り、結局は子どもたちが生きる環境を壊していくという矛盾を感じている
LLMは毎日便利に使っているが、長期的に考えると認知的不協和が大きすぎる
結局私たちは、この体制は変えられないと信じるか、その中で個人的利益を探すファウスト的取引をしている
結局は人間が介在するバランスが必要だ。LLMベースの自動化も似た道をたどる気がする
あまり悲観しすぎず、まだ一息つく余裕はある
道具が代わりにやる世界には興味も面白さもない。世界は変わっていくだろうが、それは若い世代の役目だ
個人プロジェクトではClaude Codeをカフェや短い空き時間に活用している
結局、自分で境界線を設計すれば、こうした負の流れの犠牲にならずに済む
私はオフィスの机に高速なMacBook Proを置き、tmux、tailscale、git worktreeで環境を組んでいる
tailscaleとsshのおかげでスマホからでもvibecode作業はできるが、質の高い作業はやはり机の前でしかできない
SaaS製品を作るときは、コードレビュー、ログ、メトリクス、ユーザー行動分析まで丁寧に見なければならない
結局は大きな画面とキーボードが必要だ。世界が変わっても基本は変わらない
かなり洗練された設定だ。特にTailscaleを活用している点が気に入った
私はもっと単純な方法でClaude Code for WebをiPhoneアプリで使っている
Anthropicがセッションごとに21GBのVMを複数立ち上げてくれるが、追加料金はない
ときどき犬の散歩中にも複数セッションを同時に回している。かなりうまく動く
今はTailscale + Terminus(iPad) + 自宅マシンの組み合わせを使っていて、複数機能を同時に扱う方法を探している
LLMを完全に信頼できるほどの自信がついたということなのだろうか
ライブアプリプレビュー、docker-in-docker、マルチエージェント機能を1つのモバイルアプリで提供している
私も似たようなものを作っている — clauderonプロジェクト
サーバー上でセッションをDocker、K8s、Zellijで実行し、Git worktree + proxyで分離している
Web UIやアプリでClaude Codeセッションを管理でき、コンテナには認証情報がない
Claude Code Webより環境制御の自由度が高く、そのぶん安定している
まだWIPだが、より親しみやすいUXを目指している
私はスマホで長文を入力するのが嫌いなので、このワークフローは合わない
代わりにClaude Codeが入力を求めるとHome Assistantがプッシュ通知を送り、PCに戻って作業を続ける
短いメッセージやレビューコメントには限界がある。
ClaudeモバイルアプリがClaude Codeをミラーリングできるようになるといい
好きなAIプロバイダー経由で高品質な音声文字起こしができる
gpdstore.netのようなところでは折りたたみ式デュアルスクリーンモデルも出ている
ttydはターミナルをhttpで共有できるので、スマホのブラウザから音声入力で操作できる
Claudeがミスをしたり、何千行ものコードを追加したときにどうするのか気になる
テストや品質管理のないサイドプロジェクトならともかく、保守の悪夢になるかもしれない
JulesとGitHub Copilot Agentだけでも似たようなワークフローは可能だ
Claude Code for Webのドキュメントも参考になる
自分でクラウド環境を構築すれば、データベースや特定ツールの呼び出しまでエンドツーエンドテストできる
私も会社で似たものを作った
SSHセッションで画像の貼り付けをサポートするよう改修した
ローカルファイルパスを検出すると自動でサーバーにアップロードし、元の入力はそのまま渡す
これでFinderからファイルをドラッグすると自動でサーバーに上がる。透過的な同期が印象的だ
ブランチ名でポートをハッシュする方式は、衝突確率が約14%ほどある
6個のブランチと99個のポートスロットなら、「衝突なし」と言うには非効率なハッシュだ
代案としてexe.devでVMを立ち上げる方法もある
モバイルアクセスが標準でサポートされているらしい。
私はノートPCでしか使ったことはないが、ブラウザベースのコーディングエージェントはターミナルより快適だった