/

📌 답변 먼저 보기

Orca worktree는 작업마다 디스크상의 별도 git worktree를 만들어 에이전트가 같은 파일을 밟지 않게 하는 단위입니다. CLI에서는 orca worktree create로 만들고 --agent로 첫 터미널 에이전트를 고릅니다. 병렬은 “한 체크아웃에서 여러 채팅”이 아니라 “worktree 여러 개”입니다.

이 글은 Worktrees와 CLI reference에 적힌 생성·에이전트 지정·충돌 지점만 정리합니다. 가격·후기는 없습니다. 불확실한 플래그는 넣지 않습니다.

worktree create는 어떻게?

한 줄 답: 레포를 고르고 이름을 준 뒤 orca worktree create를 실행합니다. --json을 붙이면 스크립트가 결과를 읽기 쉽습니다.

문서 예시입니다. <repoId>는 orca repo list --json에서 온 값으로 바꿉니다.

orca worktree list --repo id:<repoId> --json
orca worktree ps --json
orca worktree create --repo id:<repoId> --name fix-login --json
orca worktree current --json

셀렉터는 긴 ID 대신 active, path:/abs/path, branch:feature-name, issue:123을 받을 수 있습니다. 스크립트가 대상 worktree 밖에서 돌면 명시 셀렉터를 씁니다.

UI에서 만들면 다이얼로그를 닫은 뒤 git fetch와 git worktree add가 백그라운드에서 이어집니다. 사이드바에 진행 줄이 생기고, 실패하면 Retry가 뜹니다. CLI로 만든 worktree는 사이드바 필터에 “CLI-created”로 구분됩니다.

이미 Orca worktree 안에서 create를 치면 자식으로 기록될 수 있습니다. 관계를 분명히 하려면 --parent-worktree active, 독립 작업이면 --no-parent입니다.

시작 기준(start-from)은 레포 base ref(보통 origin/main), 다른 로컬 브랜치, 커밋 SHA, 원격 브랜치입니다. 대량 생성 전에는 orca repo set-base-ref로 base를 맞춰 두는 것이 문서 습관입니다.

삭제는 디렉터리와 브랜치를 함께 지웁니다(확인 있음). 머지되지 않은 커밋 때문에 git이 브랜치를 남기면 Review N Branches 같은 검토 단계가 열릴 수 있습니다.

에이전트는 어떻게 고르나?

한 줄 답: create 때 --agent로 첫 터미널 에이전트를 띄우고, --prompt로 첫 일을 넣습니다. UI는 Agent selector에서 기본값을 정할 수 있습니다.

orca worktree create --name child-task --agent codex --prompt "Investigate the flaky login test" --json
orca worktree create --name review-api --agent claude --setup run --json
orca worktree create --name quick-check --agent codex --prompt "Summarize the diff" --setup skip --json
orca worktree create --name hidden-setup --setup inherit --json

문서가 정의한 플래그입니다.

  • --agent: 고른 에이전트를 첫 터미널에서 실행합니다. UI에서 Blank Terminal을 고르면 일반 셸만 뜹니다.
  • --prompt: 그 에이전트에 초기 작업을 보냅니다.
  • --setup run|skip|inherit: 레포 setup 훅입니다. inherit은 레포 정책을 따릅니다.

Orca는 모델을 팔지 않습니다. Claude Code, Codex, OpenCode, Grok, Cursor CLI 등 이미 쓰는 에이전트 CLI를 꽂습니다. 계정은 데스크톱 Add account 또는 헤드리스에서 orca account add(기본 Claude, Codex는 --agent codex)입니다.

여러 에이전트를 “추적되는 디스패치”로 돌리려면 문서는 일반 terminal send보다 Orchestration을 쓰라고 합니다. 터미널만 나열하는 것과 역할이 다릅니다.

진행 메모는 orca worktree set --worktree active --comment "..." --json입니다.

병렬 시 충돌은?

한 줄 답: 소스 파일은 worktree가 갈라 주지만, gitignore 경로·공유 디렉터리·같은 원격 브랜치·부모/자식 관계에서 겹칩니다.

Worktrees의 모델은 이렇습니다. 각 worktree는 자체 브랜치, 자체 디스크 파일, 자체 에이전트 터미널을 가집니다. 그래서 같은 버그를 세 에이전트에 나눠 주고 승자를 고르는 패턴이 안전합니다.

그래도 남는 충돌입니다.

  • 깨끗한 체크아웃: 새 worktree에는 gitignore된 의존성·캐시·로컬 시크릿이 없습니다. node_modules는 orca.yaml의 worktree.sharedDirectories(심볼릭/공유), .env는 루트 .worktreeinclude(복사)로 채웁니다. 이미 공유된 경로는 include가 다시 복사하지 않습니다. 추적 중이거나 없는 경로는 건너뜁니다.
  • 같은 원격/PR: 두 worktree가 같은 브랜치를 밀면 git 쪽에서 충돌합니다. 작업 이름을 다르게 두고 start-from을 명시합니다.
  • 부모/자식: 추론된 자식은 사이드바 중첩일 뿐 git 히스토리를 바꾸지 않습니다. 독립이면 --no-parent.
  • 호스트: 원격 런타임은 id:<serverId>:<id> 또는 path: 같은 서버 쪽 셀렉터를 씁니다. 로컬 cwd가 원격에 없을 수 있습니다.
  • 터미널 핸들: 런타임 범위입니다. 재시작 후 stale이면 orca terminal list --json으로 다시 잡습니다.

외부에서 git worktree add한 것은 숨김일 수 있습니다. Non-Orca worktrees에서 Show를 고릅니다. 일반 git(status, rebase)은 다음 렌더에 반영됩니다.

병렬의 검수 지점은 start-from 대비 diff입니다. 문서 수명 주기는 Create → Work → Review → Ship → Archive/Delete입니다. 한 사람이 통합·테스트를 맡는 편이 안전합니다.

출처

+ Recent posts