メインコンテンツへスキップ

Tmux 快速入門ガイド

AI アシスト

ゼロから始める Tmux ターミナルマルチプレクサの学習:基本概念、よく使うコマンド、および Claude Code との深い統合

はじめに

Adoption of tools like Tmux has surged, largely due to the agent team workflows found in command-line coding agent products like Claude Code.

Towards Data ScienceA beginner's guide to Tmux
移動

Claude Code の Agent Teams を使ったことがある、あるいは複数の Claude インスタンスを同時に実行したいなら、Tmux はほぼ必須のツールです。1つのターミナルウィンドウで複数のセッションを実行でき、ターミナルを閉じてもセッションはバックグラウンドで動き続け、さらに Claude は Tmux 内で複数の Agent を自動的に生成・管理できます。

このチュートリアルは Claude Code ユーザー向けに設計されており、Tmux の基礎知識と Claude Code との統合テクニックの両方をカバーしています。

Tmux を理解する

Tmux (Terminal Multiplexer)

ターミナルマルチプレクサ。1つのターミナルウィンドウ内で複数のターミナルセッションを作成・管理できます。コア機能はセッションの永続化——接続を切断してもセッションは動作し続け、再接続後に元の状態に復帰できます。

出典: Tmux Wiki移動

Tmux の3つのコア概念:

┌─────────────────────────────────────────────────────────┐
│                  Session(セッション)                     │
│  ┌─────────────────────────────────────────────────────┐│
│  │               Window(ウィンドウ)                     ││
│  │  ┌──────────────┐  ┌──────────────┐  ┌───────────┐ ││
│  │  │   Pane 1     │  │   Pane 2     │  │  Pane 3   │ ││
│  │  │  (Claude 1)  │  │  (Claude 2)  │  │  (Logs)   │ ││
│  │  │              │  │              │  │           │ ││
│  │  │              │  │              │  │           │ ││
│  │  └──────────────┘  └──────────────┘  └───────────┘ ││
│  └─────────────────────────────────────────────────────┘│
│  Window 1: Development    Window 2: Testing             │
└─────────────────────────────────────────────────────────┘
概念たとえ説明
Sessionワークスペース最上位のコンテナ、接続を切断しても動作し続ける
Windowブラウザタブ1つのセッションに複数のウィンドウを含められる
Pane画面分割1つのウィンドウを複数のペインに分割できる

インストールと基本

Tmux のインストール

# macOS
brew install tmux

# Ubuntu/Debian/WSL
sudo apt-get install tmux

# CentOS/RHEL
sudo yum install tmux

インストールの確認:

tmux -V
# 出力例:tmux 3.6a

プレフィックスキー

Tmux のすべてのコマンドはプレフィックスキーで始まり、デフォルトは Ctrl+B です。

コマンドの入力方法:

  1. Ctrl+B を押す(離さない)
  2. 離した後、コマンドキーを押す

例えば、ウィンドウの分割:Ctrl+B の後に % を押す

よく使うコマンドのクイックリファレンス

セッション管理

コマンド説明
tmux新しいセッションを作成
tmux new -s name名前付きセッションを作成
tmux lsすべてのセッションを一覧表示
tmux attach -t nameセッションに接続
tmux kill-session -t nameセッションを終了
Ctrl+B d現在のセッションをデタッチ(バックグラウンドで実行)

ウィンドウ管理

ショートカット説明
Ctrl+B c新しいウィンドウを作成
Ctrl+B n次のウィンドウ
Ctrl+B p前のウィンドウ
Ctrl+B 0-9指定のウィンドウに切り替え
Ctrl+B ,現在のウィンドウの名前を変更
Ctrl+B &現在のウィンドウを閉じる

ペイン管理

ショートカット説明
Ctrl+B %垂直分割(左右)
Ctrl+B "水平分割(上下)
Ctrl+B 矢印キーペイン間を移動
Ctrl+B x現在のペインを閉じる
Ctrl+B zペインを最大化/復元
Ctrl+B {ペインを左に移動
Ctrl+B }ペインを右に移動

その他のよく使うもの

ショートカット説明
Ctrl+B [コピーモードに入る(スクロール可能)
qコピーモードを終了
Ctrl+B ?すべてのショートカットキーを表示

Claude Code との統合

なぜ Claude Code に Tmux が必要なのか

  1. Agent Teams の Split-pane モード:各 Teammate が独立したペインに表示
  2. バックグラウンド実行:ターミナルを閉じてもタスクが実行し続ける
  3. セッションの永続化:切断後に再接続で完全なコンテキストを復元
  4. マルチインスタンス管理:複数の Claude セッションを同時に実行

基本的な使い方:Claude をバックグラウンドで実行

# tmux 内で Claude を起動
tmux new -s claude-work
claude

# セッションをデタッチ(Claude は動き続ける)
# Ctrl+B d

# 後で再接続
tmux attach -t claude-work

--tmux パラメータの使用

Claude Code は Tmux 統合をネイティブサポートしています:

# 新しい tmux セッション内で Claude を起動
claude --tmux

# worktree と組み合わせて使用
claude -w feature-auth --tmux

これにより自動的に:

  1. 新しい tmux セッションを作成
  2. その中で Claude Code を起動
  3. セッション名を claude-{ランダムID} とする

Agent Teams の Tmux モード

Agent Teams は split-pane 表示モードを使用でき、各 Teammate が独立したペインで動作します:

// settings.json
{
  "teammateMode": "tmux"
}

またはコマンドラインで:

claude --teammate-mode tmux

効果:

┌─────────────────────────────────────────────────────────┐
│                    Team Lead                             │
├─────────────────┬─────────────────┬─────────────────────┤
│   Teammate 1    │   Teammate 2    │    Teammate 3       │
│   Security      │   Performance   │    Testing          │
│                 │                 │                     │
└─────────────────┴─────────────────┴─────────────────────┘

実用的な設定

推奨の ~/.tmux.conf

~/.tmux.conf を作成または編集:

# Ctrl+A をプレフィックスキーとして使用(押しやすい)
set -g prefix C-a
unbind C-b
bind C-a send-prefix

# マウスサポートを有効化
set -g mouse on

# 履歴バッファを増やす(Claude は大量に出力する)
set -g history-limit 50000

# vim スタイルのペインナビゲーション
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R

# より直感的な分割ショートカット
bind | split-window -h
bind - split-window -v

# 設定の即時リロード
bind r source-file ~/.tmux.conf \; display "Config reloaded!"

# 256色サポート
set -g default-terminal "screen-256color"
set -ga terminal-overrides ",*256col*:Tc"

# ウィンドウ番号を1から開始(0は遠すぎる)
set -g base-index 1
setw -g pane-base-index 1

# ステータスバーの最適化
set -g status-position bottom
set -g status-left-length 40
set -g status-right-length 60

設定のリロード:

tmux source-file ~/.tmux.conf

Claude Code 専用設定

Claude Code 向けの最適化設定:

# Claude セッションポップアップのショートカット
bind -r y run-shell '\
  SESSION="claude-$(echo #{pane_current_path} | md5sum | cut -c1-8)"; \
  tmux has-session -t "$SESSION" 2>/dev/null || \
  tmux new-session -d -s "$SESSION" -c "#{pane_current_path}" "claude"; \
  tmux display-popup -w80% -h80% -E "tmux attach-session -t $SESSION"'

この設定の効果:

  1. Ctrl+A y で Claude ポップアップを開く
  2. 各ディレクトリに独立した Claude セッション
  3. ポップアップを閉じてもセッションは動作し続ける
  4. 再度開くと前の会話を復元

よくあるワークフロー

ワークフロー1:マルチプロジェクト並行

# 各プロジェクトに独立したセッションを作成
tmux new -s project-a
# 中で Claude を起動
claude -w feature-x

# デタッチ後、別のセッションを作成
# Ctrl+B d
tmux new -s project-b
claude -w bugfix-y

# セッション間を切り替え
tmux switch -t project-a
tmux switch -t project-b

# またはすべてのセッションを一覧から選択
# Ctrl+B s

ワークフロー2:開発ダッシュボード

マルチペインの開発環境を作成:

# セッションを作成
tmux new -s dev

# 3つのペインに分割
# Ctrl+B %(垂直分割)
# Ctrl+B "(右側を水平分割)

# ペインレイアウト:
# ┌───────────┬───────────┐
# │  Claude   │   Logs    │
# │           ├───────────┤
# │           │   Tests   │
# └───────────┴───────────┘

# 最初のペインで Claude を実行
claude

# 2番目のペインに切り替え(Ctrl+B 右矢印)
tail -f logs/app.log

# 3番目のペインに切り替え
npm test -- --watch

ワークフロー3:リモート開発

Tmux の最も強力な機能はセッションの永続化であり、SSH リモート開発に特に適しています:

# リモートサーバーに接続
ssh user@server

# tmux セッションを作成
tmux new -s remote-claude

# Claude を起動
claude

# SSH 接続を切断(Claude は動き続ける)
# Ctrl+B d
exit

# 後で再接続
ssh user@server
tmux attach -t remote-claude
# Claude セッションが完全に復元

ワークフロー4:Agent Teams の監視

tmux で Agent Teams のすべての Teammates を監視:

# Claude を起動して tmux モードを使用
claude --teammate-mode tmux

# Agent Team を作成
# "agent team を作成してコードをレビューして..."

# この時点で画面が自動分割され、各 Teammate が1つのペイン
# 異なるペインをクリックして対応する Teammate と直接コミュニケーション可能

トラブルシューティング

よくある問題

問題解決策
色の表示が正しくないTERM=xterm-256color を確認
マウスが動作しない設定に set -g mouse on を追加
コピー&ペーストの問題コピーモードで Enter を使用してコピー
セッションが消えたtmux ls を確認、システム再起動の可能性

孤立セッションのクリーンアップ

Claude Code は時々、未クリーンアップの tmux セッションを残すことがあります:

# すべてのセッションを一覧表示
tmux ls

# 特定のセッションを終了
tmux kill-session -t session-name

# すべてのセッションを終了(注意!)
tmux kill-server

iTerm2 ユーザー

macOS の iTerm2 を使用している場合は、ネイティブ統合を使用できます:

# iTerm2 の tmux 統合モードを使用
tmux -CC

# または Claude Code で
claude --teammate-mode tmux

iTerm2 は tmux ペインを自動的にネイティブタブとスプリットスクリーンに変換します。

私の使用感

いつ Tmux を使うか

シナリオTmux は必要か
シンプルな単発の Claude 会話不要
長時間実行されるタスク必要
Agent Teams強く推奨
リモート開発必須
マルチプロジェクト並行推奨

最小構成

設定をいじりたくなければ、これらのコマンドだけ覚えてください:

# セッションを作成
tmux new -s work

# デタッチ(バックグラウンド実行)
Ctrl+B d

# 再接続
tmux attach -t work

# ペインを分割
Ctrl+B %    # 左右分割
Ctrl+B "    # 上下分割

# ペインを切り替え
Ctrl+B 矢印キー

Claude Code との最良の組み合わせ

  1. Worktree + Tmux:各 worktree を独立した tmux セッション内で

    claude -w feature-auth --tmux
  2. Agent Teams + Tmux:すべての Teammates を可視化して管理

    claude --teammate-mode tmux
  3. 長時間タスク + デタッチ:起動後にデタッチし、後でチェック

    # 起動
    tmux new -s migration
    claude
    # "データベースマイグレーションを実行して..."
    # Ctrl+B d
    
    # 数時間後
    tmux attach -t migration

おわりに

Tmux は Claude Code を効率的に使うための重要なツールであり、特に以下のシナリオで威力を発揮します:

ポイント説明
永続化接続を切断してもセッションが失われない
並行複数の Claude インスタンスを同時に管理
可視化Agent Teams の split-pane 表示

3つのコアコマンドで始められます:

  • tmux new -s name セッション作成
  • Ctrl+B d セッションのデタッチ
  • tmux attach -t name 再接続

関連記事

参考資料

動画チュートリアル

コメント

目次