Cursor CLI와 Git Worktree

5 min read

Worktree를 쓰면 같은 리포지토리에 여러 디렉터리(각각 다른 브랜치)를 둘 수 있습니다. Cursor CLI는 실행한 디렉터리 기준으로 동작합니다. 둘을 합치면 여러 터미널에서 각각 다른 worktree에 cursor agent를 병렬로 돌릴 수 있습니다 — Cursor 창을 여러 개 띄우지 않고, 키보드만으로 멀티태스킹.

왜 같이 쓰나?

방식 방법 적합한 경우
Worktree + Cursor 여러 개 worktree당 창 하나 파일 트리·미리보기가 필요한 IDE 사용자
Worktree + CLI 터미널 여러 개, 각각 worktree에 cdcursor agent 키보드 중심 사용자 또는 서버/SSH 환경

공통점: 각 worktree는 독립 디렉터리 → 각각 자기 컨텍스트 → 서로 발을 밟지 않는 병렬 개발. 여러 클론이 다른 브랜치에서 동시에 일하는 것과 비슷합니다.

기본: 터미널 하나당 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만 수정합니다. “CLI 에이전트 두 개가 병렬로 돌아가는” 구조 — Cursor 창 두 개를 열 필요 없고, 리소스 절약과 컨텍스트 전환 감소.

디렉터리 안 바꾸고: --path로 worktree 지정

메인 프로젝트 디렉터리에 있는데, CLI가 특정 worktree에서만 작업하게 하고 싶다면:

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

--path로 “어느 디렉터리를 볼지”를 지정 — worktree 경로입니다. 한 번에 하나의 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

지시 한 번에 여러 브랜치 정리 — PR 올리기 전 마지막 점검에 적합합니다.

“Worktree + 여러 창”과의 관계

  • 여러 창: Cursor 창마다 worktree 하나씩 열고, IDE의 Agent·Chat·Tab 자동완성 사용
  • CLI + Worktree: 터미널 + cursor agent — “한 디렉터리, 한 컨텍스트”는 같고, 터미널만 더 열어서 병렬화

조합도 가능: 메인 개발은 창에서, 서버에서는 CLI로 다른 브랜치 작은 수정 등.

요약

  • Worktree = 여러 디렉터리·여러 브랜치, CLI = 현재 디렉터리 또는 --path에서 동작 → 자연스러운 조합
  • 병렬: 터미널 여러 개 열고, 각각 다른 worktree에 cd한 뒤 cursor agent
  • 터미널 하나: --path <worktree-path>로 대상 worktree 지정
  • 스크립트·일괄: --path + --no-interactive로 여러 worktree에 같은 작업 실행

다음: 07-unlimit-loop-debug — 테스트가 통과할 때까지 CLI가 루프로 수정하게 하기(커피 마시고 와도 됨)