📑

Claude Code + Tmuxによる並列AIエージェントの環境構築

に公開

はじめに

Claude Code + Tmuxによる並列AIエージェントの環境構築手順を記載します。
私はtmuxに詳しくありませんがこの手順で実現できました。
tmuxに自身がない人も参考にしてください。

参考にした記事

https://note.com/natty_puma9348/n/nc3329fe4e101
https://zenn.dev/kazuph/articles/beb87d102bd4f5

環境

Windows
WSL + Ubuntuをインストール済
Docker Desktopをインストール済

手順

rootユーザーでUbuntuを起動

sudo adduser claudeuserでユーザーを作成。パスワードなどを設定。

sudo usermod -aG sudo claudeuserでclaudeuserにsudo権限を追加。

sudo usermod -aG docker claudeuserでclaudeuserにdocker権限を追加。

groups claudeuserで権限を確認。

su - claudeuserで作成したユーザーでログイン。

npm install -g @anthropic-ai/claude-codeでClaude codeをインストール。

sudo apt install tmuxでWSL上にtmuxをインストール。

cd /mnt/c/Users/{ユーザー名}/Documents/github/{リポジトリ名}などで作業対象のディレクトリに移動。

tmux new -s claude-co \
\; split-window -h \
\; split-window -v \
\; select-pane -t 0 \
\; split-window -v \
\; select-pane -t 0 -T "PM" \
\; select-pane -t 1 -T "フロントエンドエンジニア" \
\; select-pane -t 2 -T "バックエンドエンジニア" \
\; select-pane -t 3 -T "フルスタックエンジニア" \
\; send-keys -t 0 'claude --dangerously-skip-permissions' Enter \
\; send-keys -t 1 'claude --dangerously-skip-permissions' Enter \
\; send-keys -t 2 'claude --dangerously-skip-permissions' Enter \
\; send-keys -t 3 'claude --dangerously-skip-permissions' Enter

で新しいtmuxセッションを起動して各ペインに名前を付ける。さらに各ペインでClaude Codeを--dangerously-skip-permissionsで起動。
ペイントはtumxにより分割されたターミナルのことであり、今回であれば4つペインが存在する。

この時点で下記のようになっていればOK。

vim ~/.tmux.conf
で下記を追記して保存。参考記事の設定をそのまま流用。必須ではないが下記を設定したほうが使いやすい。

# --- プレフィクスを Ctrl + ] に変更 ---
  unbind C-b                 # 旧デフォルトを解除
  set -g prefix C-]          # 新しいプレフィクス
  bind C-] send-prefix       # Ctrl + ] 自身を送信キーとして使う
  
  # --- 操作を快適にする最小設定 ---
  set -g escape-time 0       # プレフィクス後の待ち時間をゼロに
  set -g mouse on            # マウスでペイン選択・リサイズ可(任意)

後はPM役(左上のペイン)に「claude-tmux.mdに沿ってシステム開発を実施してください」など指示を出せば、各ペインでClaude Codeが並列実行される。
claude-tmux.mdは下記のようなものを準備する必要があり。
下記も荒い部分が多いため精査中。
https://github.com/dbd-fish/claude-code_task-system/blob/main/claude-tmux.md

開発が完了したらtmux detachでセッションから抜けてターミナルが元にもどる。

tmux kill-session -t セッション名で不要セッションを削除。
またはtmux kill-serverで全てのセッションを削除。

tmuxでよく使いそうなコマンド集

tmux a -t セッション名で既存セッションを開始

tmux aで最後のセッションを開始

tmux lsでセッション一覧を確認

tmux detachでセッションから抜ける。

tmux kill-session -t セッション名で既存セッションを削除

tmux kill-serverで全セッション削除

Discussion