🌳
claude-tilex: git worktreeと連携してClaude Codeを並列実行する
claude-tilexは、git worktreeと連携してClaude Codeを複数のtmuxペインで並列実行するシェル関数です。各ペインで独立したブランチを作成し、同時に異なるアプローチでコーディングタスクを進められます。本記事では、前回紹介したtilexの発展版として、この新しい実装を紹介します。
Anthropic公式ドキュメントのチュートリアルでも、Claude Codeを使用する際にgit worktreeを活用することが推奨されています。git worktreeを使うことで、複数のClaude Codeセッションを並列で実行し、それぞれが独立したブランチで作業できるため、異なるアプローチを同時に試すことが可能になります。
claude-tilexが解決する課題
- 複数のアプローチを並列で試す:コードベースをブランチごとに隔離した上で異なる実装を同時に探索できます
- ブランチ作成からClaude起動までの自動化:手作業での画面分割、worktree作成やディレクトリ移動が不要です
claude-tilexの実装
以下のGistにコードを公開しています。この関数を~/.zshrc
や~/.bashrc
に追加してください。
実装のポイント
git worktreeとの統合
-
.worktrees/
配下に各ブランチ用のworktreeを作成します -
-B
オプションにより、既存ブランチも強制的に再利用可能です - 各ペインは独立したworktreeで動作するため、ファイル編集が競合しません
各ペインごとに異なるブランチ名を指定
claude-tilexの最大の特徴は、各ペインで独立したブランチ名を対話的に指定できることです。これにより:
- 同じ機能を異なるアプローチで実装する際、それぞれに意味のあるブランチ名を付けられます
- 例:
feature-async
、feature-sync
、feature-hybrid
など - 後から
git branch
で確認した際に、どのブランチがどのアプローチだったか一目瞭然です - 最終的に最良のアプローチを選んでマージできます
インタラクティブなブランチ名入力
- 各ペインで
read -p
によりブランチ名を対話的に入力できます - 実行内容に応じて意味のある名前(例:
feature-async-approach
、feature-sync-approach
)を付けられます
Claudeオプションの柔軟な指定
# 基本的な使い方
claude-tilex 3
# Opusモデルを全ペインで使用
claude-tilex 2 -- --model opus
使用例:並列アプローチの探索
例えば、「非同期処理の実装」というタスクに対して:
claude-tilex 3 -- --model opus
実行後、各ペインで以下のように入力:
- ペイン1:
async-promise
→ Promise/async-awaitベースの実装 - ペイン2:
async-rxjs
→ RxJSを使った実装 - ペイン3:
async-generator
→ ジェネレータベースの実装
これにより、3つの異なるアプローチを同時に進め、最適な解決策を効率的に見つけられます。
ワークフローの流れ
-
claude-tilex 3
を実行 - 各ペインで「branch name:」というプロンプトが表示される
- それぞれ異なるブランチ名を入力(例:
feature-approach-1
、feature-approach-2
、feature-approach-3
) - 自動的にworktreeが作成され、そのディレクトリに移動してClaude Codeが起動
- 各ペインで独立して開発を進める
- 最終的に最良の実装を選んで本流にマージ
前提条件
- tmuxがインストールされていること
- gitリポジトリ内で実行すること
-
Claude Code(
claude
コマンド)が利用可能なこと -
.gitignore
に.worktrees
を追加しておくこと
まとめ
claude-tilexは、git worktreeの分離性とtmuxの並列性を組み合わせ、Claude Codeを使った探索的プログラミングを大幅に効率化します。同じ問題に対して複数のアプローチを同時に試すことで、最適な解決策をより早く見つけられるでしょう。
前回のtilexと同様、このツールもシンプルなシェル関数として実装されているため、必要に応じてカスタマイズも容易です。ぜひ日々の開発ワークフローに組み込んでみてください。
GitHubで編集を提案
Discussion