Cursor CLI avec Git Worktree

4 min read

Worktree permet d'avoir plusieurs répertoires (chacun sur une branche différente) pour le même dépôt. Cursor CLI agit sur le répertoire où elle est lancée. Combinez les deux et vous avez plusieurs terminaux qui exécutent des Agents CLI en parallèle sur des branches différentes — sans plusieurs fenêtres Cursor, du multitâche pur au clavier.

Pourquoi les combiner ?

Approche Comment Idéal pour
Worktree + plusieurs fenêtres Cursor Une fenêtre par worktree Utilisateurs IDE qui veulent l'arborescence et l'aperçu
Worktree + CLI Plusieurs terminaux, chacun en cd dans un worktree, lancer cursor agent Utilisateurs clavier-first ou environnements serveur/SSH

Point commun : chaque worktree est un répertoire indépendant → chacun a son contexte → développement parallèle sans se marcher sur les pieds. Comme avoir plusieurs clones qui travaillent sur des branches différentes en même temps.

Utilisation de base : un terminal par worktree

En supposant que vous avez déjà créé vos worktrees :

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

Terminal 1 (sur auth) :

cd ~/projects/my-app--feature-auth
cursor agent "Implement JWT login"

Terminal 2 (sur payment) :

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

La CLI prend par défaut le répertoire de travail courant comme contexte, donc les deux terminaux ne modifient que leur worktree respectif. C'est « deux Agents CLI en parallèle » — pas besoin d'ouvrir deux fenêtres Cursor, moins de ressources et pas de changement de contexte.

Sans changer de répertoire : --path pour cibler un worktree

Vous êtes dans le répertoire principal mais voulez que la CLI travaille sur un worktree précis :

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

--path indique sur quel répertoire travailler — le chemin du worktree. Utile pour traiter un worktree à la fois ou quand le chemin est fixe dans un script.

Non interactif + Worktree (scripts / traitements par lot)

Exécuter le même type de tâche sur plusieurs worktrees à la suite (ex. ajouter un README partout, corriger le lint partout) :

# Exemple : "fix lint" sur les deux worktrees
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

Ou avec une boucle (adaptez les chemins à votre setup) :

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

Une instruction, plusieurs branches nettoyées d'un coup — pratique pour un dernier passage avant les PR.

Lien avec « Worktree + plusieurs fenêtres »

  • Plusieurs fenêtres : chaque fenêtre Cursor ouvre un worktree, avec l'Agent, le Chat et la complétion Tab de l'IDE.
  • CLI + Worktree : terminal + cursor agent — même idée « un répertoire, un contexte », il suffit d'ouvrir plus de terminaux pour paralléliser.

Vous pouvez aussi mixer : développement principal dans la fenêtre, et CLI sur le serveur pour de petits correctifs sur une autre branche.

Résumé

  • Worktree = plusieurs répertoires, plusieurs branches ; CLI = agit sur le répertoire courant ou --path → couple naturel.
  • Parallèle : ouvrez plusieurs terminaux, chacun en cd dans un worktree différent, puis lancez cursor agent.
  • Un seul terminal : utilisez --path <worktree-path> pour cibler le worktree voulu.
  • Scripts / lots : --path + --no-interactive pour la même tâche sur plusieurs worktrees.

Suivant : 07-unlimit-loop-debug — Laisser la CLI boucler et corriger le code jusqu'à ce que les tests passent (vous pouvez aller prendre un café).