Tips & Tricks中級9分で読めます

Claude Code を tmux で使う:並列実行・git worktree・設定まとめ

Claude Code を tmux の中で動かすと、SSH が切れても作業が止まらず、複数のセッションを並べて見渡せます。ペインでの並列実行、git worktree(claude -w)での分け方、承認待ちに気づく設定、Shift+Enter とスクロールの .tmux.conf までまとめました。

Claude Code はターミナルで動くので、ターミナルを分ける・残すための道具である tmux と組み合わせると便利になります。 この記事では、tmux の中で Claude Code を動かす理由から、複数のセッションを並べる方法、git worktree で作業フォルダを分ける方法、入れておくと困らない .tmux.conf の設定までを順にまとめます。

Claude Code の挙動と設定は、公式ドキュメント(Configure your terminal・Run parallel sessions with worktrees)と、手元の Claude Code 2.1.303・tmux 3.7c で確かめています。

tmux の中で動かすと何が変わるか

tmux の中で Claude Code を動かすと、次の 3 つができるようになります。

  • 残す: Claude Code は tmux サーバーの中で動きます。ターミナルを閉じても、SSH が切れても、作業は止まりません
  • 並べる: 画面をペインに分けて、Claude Code を 2 つ 3 つ同時に動かし、進み具合を並べて見られます
  • 気づく: 別のウィンドウで作業していても、Claude Code が承認を待っているウィンドウにステータスラインで印が付きます

tmux そのものの使い方(セッション・ウィンドウ・ペイン)を先に押さえたい人は、tmux 入門編のキーとコマンドの早見表も合わせて見てください。

まず 1 つ動かす:SSH が切れても止めない

サーバーやリモートの開発環境で Claude Code に長い作業を任せるなら、まず tmux のセッションを作ってから起動します。

1

名前を付けてセッションを作る

tmux new -s shop

shop はセッションの名前です。プロジェクト名にしておくと、あとで戻るときに迷いません。

2

セッションの中で Claude Code を起動する

claude

ここからはふだんどおり Claude Code に依頼します。

3

デタッチして、あとで戻る

Ctrl+b を押してから d を押すと、tmux から抜けて元のシェルに戻ります(デタッチ)。 Claude Code は止まらずに作業を続けています。 戻るときは次のコマンドです。

tmux attach -t shop
ターミナル$ssh dev[shop] 0:claude*tmux サーバーclaude✻ Editing…作業中Ctrl+b dtmux attach
デタッチしても、Claude Code は tmux サーバーの中で作業を続ける

SSH が切れたときも同じです。 つなぎ直して tmux attach -t shop を打てば、切れる前の画面がそのまま出てきます。

ペインで並べて、同時に動かす

Ctrl+b のあと % で画面を左右に、" で上下に分けられます。 分けたペインでそれぞれ claude を起動すれば、2 つの依頼を同時に進められます。

左右のペインで、別々のプロジェクトの Claude Code を 2 つ動かす(ブラウザの中で動いている tmux の再現です)

並べたあとによく使うキーです。

キーすること
Ctrl+b → ← → ↑ ↓となりのペインへ移る
Ctrl+b → zいまのペインを画面いっぱいに広げる(もう一度で戻る)
Ctrl+b → c新しいウィンドウ(タブ)を作る
Ctrl+b → wウィンドウとペインの一覧から選んで移る

並べて見たいのが 2 つまでならペイン、3 つ以上ならタスクごとにウィンドウを分けると、画面が狭くなりすぎません。

同じフォルダで 2 つ動かさない:git worktree で分ける

ペインを分けても、2 つの Claude Code が同じフォルダで動いていると、同じファイルを書き換え合ってしまいます。 片方のテストが、もう片方の書きかけの変更で落ちることもあります。

これを避けるのが git worktree です。 1 つのリポジトリから、別のブランチを取り出した作業フォルダをいくつも作れます。 履歴(.git)は共有したまま、ファイルだけがフォルダごとに分かれます。

同じフォルダで 2 つ動かすとclaudeclaudeshop-api/src/app.ts!同じファイルを書き換え合うworktree で分けるとclaude -w authブランチworktree-auth.claude/worktrees/auth/claude -w fixブランチworktree-fix.claude/worktrees/fix/.git履歴は共有
claude -w はセッションごとに専用の作業フォルダとブランチを作る

claude -w で起動する

Claude Code には worktree を作って起動するオプションがあります。

claude --worktree auth   # 短く claude -w auth でもよい
  • 作業フォルダは .claude/worktrees/auth/、ブランチは worktree-auth になります
  • 新しいブランチは、既定ではリモートの既定ブランチ(ふつうは main)から作られます
  • 名前を省くと、Claude Code が bright-running-fox のような名前を付けます
  • そのリポジトリで一度も Claude Code を起動していないと、信頼の確認が出ずにエラーで止まります。先に一度 claude を起動して確認に答えておきます

.claude/worktrees/ は .gitignore に足しておきます。 足さないと、元の作業フォルダの git status に worktree の中身が出てきます。

echo '.claude/worktrees/' >> .gitignore

worktree はまっさらなチェックアウトなので、.env のような Git の管理外のファイルはありません。 リポジトリの直下に .worktreeinclude を置き、.gitignore と同じ書き方で並べておくと、worktree を作るたびに写してくれます。

.env
.env.local

Claude Code を終えるとき、worktree に変更もコミットも無ければ、worktree とブランチは自動で片付けられます。 変更が残っていれば、残すか消すかを聞かれます。残した worktree には、終了時に表示される claude --worktree <名前> --resume で戻れます。

tmux と組み合わせる

タスクごとにウィンドウを作り、それぞれで claude -w を起動するのが分かりやすい形です。

tmux new -s shop
claude -w auth
# Ctrl+b c で新しいウィンドウを作ってから
claude -w fix-header

ウィンドウの名前は Ctrl+b → , で変えられます。worktree と同じ名前にしておくと、ステータスラインを見るだけでどれがどの作業か分かります。

自分で worktree を作る場合

既にあるブランチで作業したいときや、リポジトリの外に置きたいときは、git で直接作ってから claude を起動します。

git worktree add ../shop-fix -b fix-header   # 新しいブランチで作る
cd ../shop-fix
claude

git worktree list                            # 一覧を見る
git worktree remove ../shop-fix              # 終わったら消す

承認待ちに気づく:ベルとステータスライン

別のウィンドウで作業していると、Claude Code が承認を待っていることに気づけません。 次の設定を ~/.claude/settings.json に入れると、Claude Code が知らせるとき(承認を待つとき、返事のあと入力を待っているとき)に端末のベルを鳴らします。

{
  "preferredNotifChannel": "terminal_bell"
}

tmux は、ベルが鳴ったウィンドウのステータスラインに ! を付けます。

[shop]0:auth!1:fix2:review*ベルが鳴ったウィンドウCtrl+b 0いまのウィンドウ
! の付いたウィンドウが、Claude Code が待っているところ

Ctrl+b のあとウィンドウの番号を押せば、そのウィンドウへ移れます。 手元で確かめたところ、この設定が無いと tmux の中ではベルが鳴らず、! も付きませんでした(Ghostty・Kitty・iTerm2 では既定でデスクトップ通知が出ますが、tmux の中ではあとで書く allow-passthrough が要ります)。

.tmux.conf に入れておく設定

tmux の中の Claude Code で困りやすいのは、Shift+Enter・通知・マウスのスクロールの 3 つです。 次の設定を ~/.tmux.conf に足します。

# Shift+Enter で改行できるようにする(tmux が Enter と区別して渡す)
set -s extended-keys on
set -as terminal-features 'xterm*:extkeys'

# Claude Code の通知と進み具合の表示を、外のターミナルへ通す
set -g allow-passthrough on

# マウスのホイールで Claude Code の会話をスクロールする
set -g mouse on

動いている tmux には、次のコマンドで読み込み直します。

tmux source-file ~/.tmux.conf
NOTE

Shift+Enter が使えない端末でも、Ctrl+J か、\ のあと Enter なら改行できます。VS Code などで Shift+Enter を使えるようにする /terminal-setup は、ターミナルの設定ファイルに書き込むコマンドなので、tmux の外で実行します。

スクロールと検索

最近の Claude Code は、vim のように画面全体を使って描く方式(fullscreen rendering)で動くことがあります。 入力欄が画面の下に固定されていれば、この方式です。 この方式では会話が tmux の履歴に残らないので、操作が少し変わります。

したいことfullscreen rendering のとき
会話をさかのぼるマウスのホイール(set -g mouse on が要る)か PgUp / PgDn
会話を検索するCtrl+o で一覧の表示に切り替えてから /
tmux のコピーモードで扱うCtrl+o のあと [ で会話を端末の履歴へ書き出してから、Ctrl+b → [

従来の描き方(入力欄が出力と一緒に流れていく)のときは、会話が tmux の履歴に残るので、ふだんどおり Ctrl+b → [ のコピーモードでさかのぼれます。

NOTE

tmux 3.6 までは、画面をまとめて描き換える仕組み(synchronized output)に対応していないため、Claude Code の表示がちらつくことがあります。気になるときは tmux を新しくしてください。

Agent teams のメンバーを tmux のペインで見る

Claude Code の Agent teams は、1 つのセッションがリーダーになって、ほかの Claude Code(メンバー)に作業を割り振る機能です。 2026年10月時点では試験的な機能で、環境変数 CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 で有効にします。

既定ではメンバーはリーダーの画面の中で動きますが、~/.claude/settings.json に次を入れると、tmux の中で起動したときにメンバーが 1 人ずつ tmux のペインに分かれます。

{
  "teammateMode": "auto"
}

"auto" は tmux の中で起動したとき(と、it2 コマンドを入れた iTerm2)だけペインに分け、そうでなければ従来どおり 1 つの画面で動かします。 終わったあと tmux のセッションが残っていたら、tmux ls で探して tmux kill-session -t <名前> で閉じます。

よくある質問

tmux の中の Claude Code で Shift+Enter が改行にならないのはなぜですか? tmux が既定では Shift+Enter と Enter を区別せずに渡すからです。~/.tmux.conf に set -s extended-keys on と set -as terminal-features 'xterm*:extkeys' を足し、tmux source-file ~/.tmux.conf で読み込み直すと改行になります。設定しなくても、Ctrl+J か、\ のあと Enter ならどの端末でも改行できます。

tmux の中で Claude Code の会話をマウスのホイールでスクロールできません。 Claude Code が全画面の描画(fullscreen rendering)で動いているときは、tmux のマウスモードが要ります。~/.tmux.conf に set -g mouse on を足して読み込み直してください。キーボードの PgUp と PgDn は設定なしでも効きます。

同じリポジトリで Claude Code を 2 つ動かしても大丈夫ですか? 同じ作業フォルダで動かすと、2 つのセッションが同じファイルを書き換え合います。claude --worktree <名前>(短く claude -w <名前>)で起動すると、.claude/worktrees/<名前>/ に専用の作業フォルダと worktree-<名前> ブランチが作られ、セッションごとに分かれます。

SSH が切れても Claude Code を動かし続けるには? サーバー側で tmux new -s <名前> を打ってから、その中で claude を起動します。Claude Code は tmux サーバーの中で動くので、SSH が切れても作業は続きます。つなぎ直したら tmux attach -t <名前> で戻れます。

tmux の別のウィンドウにいるとき、Claude Code の承認待ちに気づくには? ~/.claude/settings.json に "preferredNotifChannel": "terminal_bell" を入れると、Claude Code が知らせるときに端末のベルを鳴らします。tmux はベルが鳴ったウィンドウのステータスラインに ! を付けるので、ほかのウィンドウにいても気づけます。

tmux をブラウザで練習する

この記事で使った tmux の操作(セッションを作る・デタッチして戻る・ペインとウィンドウを分ける・コピーモード)は、tmux 入門編でブラウザの中の本物そっくりの tmux を操作しながら練習できます。 インストールは要りません。ゲームのように 1 つずつ進めながら、キーを手に覚えさせられます。

AI エージェントを並べて動かすための道具には、tmux のほかに Herdr もあります。エージェントごとの状態(作業中・承認待ち・完了)を一覧で見られるのが特徴で、Herdr 入門編で同じように練習できます。

関連コース

実際に手を動かして学んでみませんか?

関連記事

← 記事一覧に戻る