Claude Code の remote-control が入ってから、スマホからの運用がかなり現実的になりました。外出先での開発コードの修正に加えて、移動中に思いついたメモのmarkdown化やgoogleカレンダーの一括イベント登録などを簡単にできるのが便利です。
最近、スマホから動かしているものはこんな感じです。
- Obsidian の Vault 管理リポジトリ
- Google WorkspaceをCLIで操作するリポジトリ (https://github.com/googleworkspace/cliをクローンしてアカウント認証)
remote-control は10分ほどでセッションが切れる仕様なので、最初から切れる前提で、Tailscale と Termius で再接続できるようにしています。
スマホから回すうえで必要なのは次の3つです。
- 切断への備え
- 実行環境の分離
- 作業前の退避
この記事では、Docker と tmux を使って、スマホから回しやすい Claude Code 実行環境を組む方法をまとめます。構成の軸は次の3つです。
-
tmuxでセッションを維持する -
Dockerで実行環境を分離する -
Gitで作業前バックアップを取る
この記事の構成は「完全に安全」なサンドボックスを保証するものではありません。
ただし、少なくともホスト直実行より事故を減らしやすい構成にはできます。
なお、この記事のコマンドは基本的にLinux前提です。
Macではそのまま進めやすい一方で、Windowsでは WSL上のLinux環境がほぼ必須 です。
この記事でできること
- 作業対象のリポジトリでバックアップを取る
-
tmuxセッションを立ち上げる -
Dockerコンテナ内で Claude Code を起動する - スマホでセッションURLを開く
- 切れたら
Tailscale+Termiusで復帰する
前提環境
- Mac / Linux: そのまま進めやすい
- Windows: WSL 上の Linux 環境がほぼ必須
Windows では PowerShell やコマンドプロンプトではなく、WSL のシェルで実行する前提です。
前提を押さえたうえで、次に構成を整理します。
構成の考え方
-
Git: 変更の保険 -
tmux: 接続が切れてもセッションを維持 -
Docker: 実行環境の分離
事前に理解しておきたい注意点
構成自体はシンプルですが、先に押さえておいたほうがいい点があります。
1. マウントした作業フォルダのファイルは普通に変更される
Docker の中で動かしていても、-v $(pwd):/workspace でマウントしたディレクトリ配下のファイルは変更されます。
そのため、作業前のGitコミットはほぼ必須です。
2. --dangerously-skip-permissions は強い設定
承認不要で流せるのでスマホ運用とは相性が良いですが、その分だけ慎重に使う必要があります。
信頼できる作業対象でのみ使うのが無難です。
3. 「安全」より「安全寄り」と表現するのが正確
ホスト直実行より分離しやすい、という意味では有効です。
ただし、マウントした作業フォルダや設定ファイルへの影響までゼロになるわけではありません。
4. remote-control だけで完結させず、再接続手段を持っておく
remote-control は10分ほどでセッションが切れる仕様です。
そのため、切断後にどう復帰するかまで含めて設計しておくのが重要です。
私の場合は、Tailscale で接続経路を確保し、Termius から対象マシンへ入り、tmux セッションの再接続や必要なコマンドの再実行を行えるようにしています。
手順
以下は、作業したいリポジトリのルートで実行します。
Step 1. 作業前にGitバックアップを取る
まずは現在の状態をコミットしておきます。
git add . && git commit -m "pre-claude work backup"
この一手間で、もし意図しない変更が入っても戻しやすくなります。
Step 2. tmux セッションを開始する
次に、通信切断対策として tmux を立ち上げます。
tmux new-session -s claude-sandbox
スマホ回線やリモート接続は不安定になりがちですが、tmux 上で動かしておけば、接続が切れてもセッション自体は残りやすいです。
Step 3. Docker 上でClaude Codeを承認不要モードで起動する
そのまま tmux セッション内で、対象ディレクトリに移動したうえで次を実行します。
touch ~/.claude-docker.json && mkdir -p ~/.claude-docker ~/.npm-docker && sudo chown -R $USER:$USER ~/.claude-docker ~/.claude-docker.json ~/.npm-docker && sudo docker run -it --rm -v $(pwd):/workspace -v ~/.claude-docker:/home/node/.claude -v ~/.claude-docker.json:/home/node/.claude.json -v ~/.npm-docker:/home/node/.npm -w /workspace -u node node:22 npx -y @anthropic-ai/claude-code --dangerously-skip-permissions
このコマンドでやっていることは主に以下です。
- 現在の作業フォルダを
/workspaceにマウント - Claude関連の設定とnpmキャッシュをホスト側に保持
-
node:22コンテナ内で@anthropic-ai/claude-codeを起動 -
--dangerously-skip-permissionsで承認を省略
スマホからの使い方
起動後、ターミナルに https://claude.ai/code/session_... のようなURLが表示されます。
そのURLをスマホのブラウザで開けば、以後はWeb UIから指示できます。
ただし、remote-control のセッションは10分ほどで切れる仕様です。
そのため、Claudeアプリ側は切れる前提で運用したほうが自然です。
私は次のように役割を分けています。
- 普段の対話操作: Claudeアプリ側の
remote-control - 切断時の復帰:
Tailscale+Termius - 作業継続の土台:
tmux
この3つを組み合わせておくと、スマホ主体でもかなり安定して回せます。
スマホ運用では、次のような使い方と相性が良いです。
- 長めの実装より、明確な小タスクを投げる
- 1回ごとに「何を変更したか」を確認する
- 危険な操作は避け、対象ディレクトリを絞る
私は Step 1 から Step 3 までのコマンド、gws関連のskillsをチートシートとしてmakrdownファイルとして保存し、スマホでそのままコピーしています。
tmux からデタッチする
作業を裏で動かしたまま手元の接続だけ外したい場合は、tmux からデタッチします。
Ctrl+B を押した後に D
再接続したい場合は次を実行します。
tmux attach -t claude-sandbox
これで、スマホ側の通信が切れても、ターミナルセッションに戻って状況を確認できます。
この構成が向いているケース
- 自宅サーバーやLinuxマシンで常時使いたい
- スマホから雑に指示して、裏側で継続実行させたい
- 移動中に思いついた修正を、そのまま実装に反映したい
- ホストに直接ツールを入れすぎたくない
逆に、次のケースでは別構成も検討できます。
- GUI中心の作業が多い
- Dockerやtmuxに不慣れで、まずは最短で試したい
- 承認不要モードを使いたくない
まとめ
Claude Codeをスマホから扱うなら、Docker + tmux + Git の組み合わせはかなり実用的です。
特に、
-
tmuxで切断に強くする -
Dockerでホストを汚しにくくする -
Gitでロールバックしやすくする
という3点が効きます。
「完全に安全」ではないものの、スマホからの運用を現実的にしつつ、事故も減らしやすい構成としてはかなりバランスが良いと感じています。
同じように、スマホからClaude Codeを触りたい人の参考になれば。