Cursor CLI con Git Worktree

3 min read

Worktree te permite tener varios directorios (cada uno en una rama distinta) para el mismo repo. Cursor CLI actúa sobre el directorio donde se ejecuta. Combínalos y tendrás varias terminales ejecutando Agentes CLI en paralelo en ramas distintas — sin varias ventanas de Cursor, multitarea pura con teclado.

¿Por qué combinarlos?

Enfoque Cómo Mejor para
Worktree + varias ventanas de Cursor Una ventana por worktree Usuarios de IDE que quieren árbol de archivos y vista previa
Worktree + CLI Varias terminales, cada una con cd a un worktree, ejecutar cursor agent Usuarios teclado-first o entornos servidor/SSH

Punto en común: cada worktree es un directorio independiente → cada uno tiene su contexto → desarrollo paralelo sin pisarse. Como tener varios clones trabajando en ramas distintas a la vez.

Uso básico: una terminal por worktree

Suponiendo que ya creaste tus worktrees:

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

Terminal 1 (trabajando en auth):

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

Terminal 2 (trabajando en payment):

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

La CLI usa por defecto el directorio de trabajo actual como contexto, así que ambas terminales solo modifican su respectivo worktree. Es "dos Agentes CLI en paralelo" — no hace falta abrir dos ventanas de Cursor, ahorra recursos y evita cambiar de contexto.

Sin cambiar de directorio: usa --path para apuntar a un worktree

Estás en el directorio principal pero quieres que la CLI trabaje en un worktree concreto:

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

--path indica en qué directorio debe trabajar — la ruta del worktree. Útil para manejar un worktree cada vez o cuando la ruta está fija en un script.

No interactivo + Worktree (scripts / operaciones por lotes)

Ejecutar el mismo tipo de tarea en varios worktrees en secuencia (p. ej. añadir README a todos, arreglar lint en todos):

# Ejemplo: "fix lint" en ambos 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

O escribe un bucle (ajusta rutas a tu setup):

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

Una instrucción, limpiar varias ramas a la vez — ideal para el repaso final antes de abrir PRs.

Relación con "Worktree + varias ventanas"

  • Varias ventanas: cada ventana de Cursor abre un worktree, con el Agent, Chat y Tab del IDE.
  • CLI + Worktree: terminal + cursor agent — misma idea de "un directorio, un contexto", solo abre más terminales para paralelizar.

También puedes mezclar: desarrollo principal en la ventana y CLI en el servidor para pequeños fixes en otra rama.

Resumen

  • Worktree = varios directorios, varias ramas; CLI = actúa en el directorio actual o --path → pareja natural.
  • Paralelo: abre varias terminales, cada una con cd a un worktree distinto, luego ejecuta cursor agent.
  • Una sola terminal: usa --path <worktree-path> para el worktree que quieras.
  • Scripts/lotes: --path + --no-interactive para la misma tarea en varios worktrees.

Siguiente: 07-unlimit-loop-debug — Deja que la CLI repita y arregle el código hasta que pasen los tests (puedes ir a por un café).