Cursor CLI と Git Worktree の組み合わせ

5 min read

Worktree は同じリポジトリに複数のディレクトリ(それぞれ異なるブランチ)を持たせます。Cursor CLI は実行したディレクトリを操作します。組み合わせると、複数のターミナルで CLI Agent を異なるブランチで並行実行できます — Cursor ウィンドウを複数開く必要なく、キーボード中心のマルチタスクが実現します。

なぜ組み合わせるのか?

アプローチ 方法 向いている人
Worktree + 複数の Cursor ウィンドウ ウィンドウごとに1つの worktree を開く IDE でファイルツリーやプレビューを使いたい人
Worktree + CLI 複数ターミナル、各 worktree に cd して cursor agent を実行 キーボード中心の人、サーバー/SSH 環境の人

共通点:各 worktree は独立したディレクトリ → それぞれ独立したコンテキスト → 互いに邪魔することなく並行開発。まるで複数の分身が異なるブランチで同時に作業するようなもの。

基本的な使い方:ターミナル1つに対して worktree 1つ

worktree を既に作成している前提:

~/projects/
├── my-app/                  ← main
├── my-app--feature-auth/    ← feature/auth
└── my-app--feature-payment/  ← feature/payment

ターミナル 1(auth 担当):

cd ~/projects/my-app--feature-auth
cursor agent "JWT ログインを実装して"

ターミナル 2(payment 担当):

cd ~/projects/my-app--feature-payment
cursor agent "Stripe チェックアウトフローを追加して"

CLI はデフォルトで現在の作業ディレクトリをコンテキストとして使うため、両ターミナルは各自の worktree のみを変更します。「2つの CLI Agent が並行実行」— Cursor ウィンドウを2つ開く必要なく、リソース節約とコンテキスト切り替えの削減。

ディレクトリを変えずに:--path で worktree を指定

メインプロジェクトディレクトリにいながら、特定の worktree で作業させたい場合:

cd ~/projects/my-app
cursor agent "feature/auth にユニットテストを追加して" --path ../my-app--feature-auth

--path で「見るディレクトリ」=その worktree のパスを指定します。1つの worktree ずつ処理したい場合や、スクリプトでパスが固定の場合に適しています。

非インタラクティブ + Worktree(スクリプト/バッチ)

複数の worktree に同じ種類のタスクを順番に実行(例:全部に README 追加、全部の lint 修正):

# 例:両 worktree に「lint 修正」を実行
cursor agent ".eslintrc に従って自動修正できるエラーをすべて修正して" --path ../my-app--feature-auth --no-interactive
cursor agent ".eslintrc に従って自動修正できるエラーをすべて修正して" --path ../my-app--feature-payment --no-interactive

またはループで書く(実際のパスに合わせて調整):

for dir in ../my-app--feature-auth ../my-app--feature-payment; do
  cursor agent "リンターエラーを修正して" --path "$dir" --no-interactive
done

一度指示して複数のブランチをまとめて整理 — PR 前の一括仕上げに最適。

「Worktree + 複数ウィンドウ」との関係

  • 複数ウィンドウ:各 Cursor ウィンドウが worktree を開き、IDE の Agent・Chat・Tab 補完を使う。
  • CLI + Worktree:ターミナル + cursor agent — 「1ディレクトリ、1コンテキスト」という同じ考え方で、ターミナルを増やすだけで並行化。

混在させることもできます:メイン開発はウィンドウで、別のブランチはサーバー上で CLI を使って少し修正。

まとめ

  • Worktree = 複数ディレクトリ、複数ブランチ;CLI = 現在ディレクトリまたは --path で操作 → 相性抜群。
  • 並行:複数ターミナルを開き、各 worktree に cd して cursor agent を実行。
  • 単一ターミナル--path <worktree パス> で対象 worktree を指定。
  • スクリプト/バッチ--path + --no-interactive で複数 worktree に同じタスクを実行。

次へ:07-unlimit-loop-debug — CLI に自動でループ修正させて、テストが通るまで実行(コーヒーを飲んでいていいです)。