worktrunk — 並行AIエージェント開発に適したRust製Git worktree管理CLI
max-sixty/worktrunk
★ 12,397 ・ Rust
概要
Worktrunk(コマンド名: wt)は、Gitのworktree(作業ツリー)機能をブランチと同じような感覚で扱えるように設計されたRust製のコマンドラインツールです。
Claude CodeやCodexといった自律型のAIコーディングエージェントが普及するにつれ、複数のタスクを並行して実行させるワークフローが増加しています。各エージェントに独立した作業ディレクトリを割り当てる手段としてGit標準のworktree機能が有用ですが、標準コマンドではパスの指定や移動の手間が多く、操作手順が煩雑になりがちでした。
Worktrunkは、ブランチ名を指定するだけでworktreeの作成・切り替え・削除を行えるようにし、並行して走るエージェント環境の立ち上げや管理を大幅に効率化します。エージェントを複数立ち上げて並列開発を行うエンジニアや、複数の機能開発・バグ修正を並行して進めたい開発者に向いているツールです。
主な特徴
Worktrunkには、並行開発ワークフローを支援するための多彩な機能が備わっています。
- ブランチ感覚のワークツリー操作:
wt switchやwt switch -cなどのシンプルなコマンドで、パスを意識せずにworktreeの作成や移動を行えます。ブランチ名から作業ディレクトリのパスがテンプレートに基づいて自動計算されます。 - 外部コマンドの即時実行(
-xオプション): worktreeを作成・切り替えた直後に、Claude Codeなどのエージェントや初期化コマンドをワンライナーで直接実行できます(例:wt switch -c -x claude feat)。 - 統合された一覧表示と状態確認(
wt list): 単にパスを並べるだけでなく、ステージング状態、親ブランチとの差分コミット数、未プッシュの有無、CIステータスやAI要約(--full時)などを一覧で確認できます。 - ワークフロー自動化フック: worktreeの作成時、マージ前、マージ後などに任意の処理を実行するフック機能が用意されており、依存関係のインストールや初期設定を自動化できます。
- ビルドキャッシュの共有(CoW対応): APFS、btrfs、XFSといったCopy-on-Write対応ファイルシステムを活用し、
node_modules/やtarget/などの生成物を再ビルドや物理コピーなしでworktree間で共有する仕組み(wt step copy-ignored)を備えています。 - ワンコマンドでのローカルマージ:
wt merge mainを実行することで、コミットメッセージの自動生成、コミット、リベース、mainブランチへのマージ、作業終了後のworktreeとブランチの削除までを一括処理できます。
使い方
インストール
各種パッケージマネージャーからインストール可能です。ディレクトリ移動を伴うため、インストール後にシェル統合の設定コマンド(wt config shell install)を実行します。
Homebrew (macOS / Linux):
brew install worktrunk && wt config shell install
Cargo (Rust):
cargo install worktrunk && wt config shell install
Windows (Winget):
Windowsでは標準のWindows Terminalが wt コマンドを使用しているため、Winget経由では競合を避けるために git-wt というエイリアス名も提供されます。
winget install max-sixty.worktrunk
git-wt config shell install
※Windows Terminal側のエイリアスを無効化することで、直接 wt として利用することも可能です。
その他の環境:
Arch Linux(sudo pacman -S worktrunk)や、Conda・Pixi(conda install -c conda-forge worktrunk / pixi global install worktrunk)でも提供されています。
基本的な操作手順
1. 新しい作業ツリーの作成と切り替え
機能ブランチ用のworktreeを作成し、同時にそのディレクトリへ移動します。
$ wt switch --create feature-auth
✓ Created branch feature-auth from main and worktree @ ~/repo.feature-auth
2. 作業状況の確認
現在のリポジトリに関連付けられている全worktreeの状態を一覧表示します。
$ wt list
Branch Status @± ^↕ ^…± Remote⇅ Commit Age Message
@ feature-auth + ↑ +27 -8 ↑1 +31 4bc72dc 2h Add authenticatio…
^ main ^⇡ ⇡1 0e631ad 1d Initial commit
○ Showing 2 worktrees, 1 with changes, 1 ahead, hidden: Path
@ は現在の作業ツリー、+ はステージされた変更、↑1 はmainより1コミット進んでいることを示します。
3. 作業完了後のマージと片付け
ローカルでmainへマージして作業ツリーを片付ける場合は、wt merge を使用します。
$ wt merge main
◎ Generating commit message and committing changes... (2 files, +53, no squashing needed)
Add authentication module
✓ Committed changes @ a1b2c3d
◎ Merging 1 commit to main @ a1b2c3d (no rebase needed)
* a1b2c3d Add authentication module
auth.rs | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++
lib.rs | 2 ++
2 files changed, 53 insertions(+)
✓ Merged to main (1 commit, 2 files, +53)
◎ Removing feature-auth worktree & branch in background (same commit as main, _)
○ Switched to worktree for main @ ~/repo
PR(プルリクエスト)ベースで進める場合は、wt step commit で変更をコミットし、gh pr create 等でPRを作成、マージ後に wt remove でツリーを削除する手順が推奨されています。
4. 並行エージェントの立ち上げ
-x フラグに続けて実行したいエージェントのコマンドを渡し、-- 以降にプロンプトを渡すことで、複数のエージェントを各worktreeで同時に起動できます。
wt switch -x claude -c feature-a -- 'Add user authentication'
wt switch -x claude -c feature-b -- 'Fix the pagination bug'
wt switch -x claude -c feature-c -- 'Write tests for the API'
技術的なポイント
- Rustによる実装: 軽快なコマンドライン操作と配布の容易さを実現するため、Rustで実装されています。
- シェル統合の採用: 通常のGitコマンド(
git worktree add)ではカレントシェルのディレクトリを自動で変更できませんが、Worktrunkはwt config shell installを通じてシェル関数/ラッパーを組み込み、コマンド実行と同時にディレクトリ遷移(cd)をスムーズに行える設計になっています。 - CoW(Copy-on-Write)を活用したキャッシュ最適化:
node_modulesや Rustのtargetディレクトリのように容量が大きく生成に時間がかかるビルド資産を、対応ファイルシステム(macOSのAPFS、LinuxのbtrfsやXFS)のクローン機能を活用してディスク領域を圧迫せずに複製・共有する機能が組み込まれています。 - LLM・エージェント連携を意識した設計: 単なるGitラッパーにとどまらず、差分からのコミットメッセージ自動生成、ブランチごとの要約表示、作業ツリー作成とエージェント起動の直結など、近年のAI支援開発フローに最適化された機能群が提供されています。
注意点
- ライセンスの明記状況: リポジトリのメタデータ上ではライセンス種別が「不明(Not specified)」となっています。ソースコードの再配布や改変、商用利用を行う際は、プロジェクト内の個別ファイルやリポジトリのライセンス表記を事前に確認してください。
- Windowsでのコマンド名衝突: Windows環境では
wtが標準の Windows Terminal(Windows Terminal の実行コマンド)と競合します。Winget経由ではgit-wtとして導入されるか、Windows Terminal側のアプリ実行エイリアスを無効化する設定が必要となります。 - ファイルシステムの依存性: ビルドキャッシュ共有などの一部の高度な機能(
wt step copy-ignored)は、APFS、btrfs、XFSといったCopy-on-Write(リフリンク)をサポートするファイルシステム上でのみ機能します。
まとめ
Worktrunkは、Gitの強力ながら扱いにくかったworktree機能を、日常的なブランチ操作と同じ手軽さで使えるようにしたCLIツールです。Claude CodeなどのAIエージェントを複数立ち上げて並行作業を行う際や、複数の機能開発をストレスなく切り替えたい開発現場において、作業効率の向上が期待できます。





