Cursor CLI と Git Worktree

4 min read

Worktree を使うと、同じリポジトリに対して複数のディレクトリ(それぞれ別ブランチ)を持てます。Cursor CLI は実行したディレクトリに対して動作します。両方を組み合わせると、複数ターミナルでそれぞれ別ブランチの worktree で cursor agent を並行実行できます — Cursor ウィンドウを複数開かず、キーボードだけでマルチタスク。

なぜ組み合わせるのか?

やり方 方法 向いている人
Worktree + Cursor ウィンドウ複数 1 worktree につき 1 ウィンドウ ファイルツリーやプレビューが欲しい IDE ユーザー
Worktree + CLI 複数ターミナル、それぞれ worktree に cd して cursor agent キーボード中心 or サーバー/SSH 環境

共通点:各 worktree は独立したディレクトリ → それぞれ独自のコンテキスト → 足を踏まない並行開発。複数クローンが別ブランチで同時に動いているようなものです。

基本:1 ターミナル 1 worktree

すでに 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 "Implement JWT login"

ターミナル 2(payment 用):

cd ~/projects/my-app--feature-payment
cursor agent "Add Stripe checkout flow"

CLI はデフォルトでカレントディレクトリをコンテキストにするので、両方のターミナルはそれぞれの worktree だけを変更します。「2 つの CLI Agent が並行動作」— Cursor ウィンドウを 2 つ開く必要がなく、リソース節約とコンテキスト切り替えの削減になります。

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

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

cd ~/projects/my-app
cursor agent "Add unit tests for feature/auth" --path ../my-app--feature-auth

--path で「どのディレクトリを見るか」を指定 — worktree のパスです。1 回に 1 worktree だけ扱うときや、スクリプトでパスが固定のときに便利です。

非対話 + Worktree(スクリプト・一括処理)

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

# 例:両 worktree で "fix lint"
cursor agent "Fix all auto-fixable errors per .eslintrc" --path ../my-app--feature-auth --no-interactive
cursor agent "Fix all auto-fixable errors per .eslintrc" --path ../my-app--feature-payment --no-interactive

またはループで(環境に合わせてパスを調整):

for dir in ../my-app--feature-auth ../my-app--feature-payment; do
  cursor agent "Fix linter errors" --path "$dir" --no-interactive
done

指示 1 つで複数ブランチを一括クリーン — PR 前の最終チェックに最適です。

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

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

組み合わせも可能:メイン開発はウィンドウ、サーバーでは CLI で別ブランチの小さい修正、など。

まとめ

  • Worktree = 複数ディレクトリ・複数ブランチ、CLI = カレント or --path で動作 → 相性が良い
  • 並行: 複数ターミナルを開き、それぞれ別 worktree に cd して cursor agent
  • 1 ターミナル: --path <worktree-path> で対象 worktree を指定
  • スクリプト・一括: --path + --no-interactive で複数 worktree に同じタスクを実行

次: 07-unlimit-loop-debug — テストが通るまで CLI にループで修正させる(コーヒーを飲んでいる間に)