Orca로 Claude Code가 다른 에이전트에게 리뷰를 맡기고 받아 오게 하는 법

동딩
2026.11.07·3분 읽기·
  • 리뷰어 띄우기둘째 탭에서 손으로Claude Code가 orca 명령으로
  • 끝났는지 보기탭을 오가며Orca가 알아챔
  • 지적 옮기기복사해 붙여 넣기Claude Code가 받아 와 고침
리뷰를 맡기고 받아 오는 세 가지 손일의 전후

Claude Code가 지적까지 받아 온다

orca-cli 스킬을 넣은 Claude Code에게 Orca 터미널에서 리뷰를 맡기면, 다른 Claude 에이전트를 띄워 끝날 때까지 기다렸다가 지적을 받아 와 고칩니다. Orca는 Claude Code·Codex 같은 에이전트 CLI 여러 개를 한 창에 띄우고 상태를 보는 데스크톱 앱입니다. orca-cli 스킬을 넣으면 Claude Code가 orca 명령으로 Orca의 터미널과 에이전트를 다룹니다.

이 글의 예는 정률 쿠폰 계산을 막 더한 coupon.js의 applyCoupon입니다. 지금은 원 단위 밑 소수를 남기고, 100%를 넘는 쿠폰에는 음수 금액을 돌려줍니다.

둘째 탭의 Claude Code도 음수 금액과 소수를 짚지만, 지적은 그 탭에만 남습니다. 고치려면 그 지적을 첫 탭에 옮겨 붙여야 합니다. Orca에서는 작업하던 Claude Code가 리뷰어의 지적 6건을 받아 coupon.js와 테스트를 고치고, 테스트 5개가 통과합니다.

Orca 앱과 orca-cli 스킬을 깝니다.

github.com
GitHub - stablyai/orca: Orca lets you run a fleet of coding agents (e.g. Claude Code, Codex) with your own subscription. Available on desktop, mobile and remote runtime.
Orca lets you run a fleet of coding agents (e.g. Claude Code, Codex) with your own subscription. Available on desktop, mobile and remote runtime. - stablyai/orca
bash
brew install --cask stablyai/orca/orca
npx skills add https://github.com/stablyai/orca --skill orca-cli --global

Orca 첫 설정에서 스킬을 깔았다면 orchestration 스킬도 있을 수 있습니다. 그 스킬은 리뷰처럼 결과를 돌려받을 일을 orca orchestration worker-start 워커에게 맡기라고 정해 두니, 이 글은 orca-cli만 깐 Claude Code 기준입니다.

Orca에서 저장소를 프로젝트로 추가하고, 그 저장소의 Orca 터미널에서 claude를 띄워 이렇게 보냅니다.

text
Orca 로 다른 Claude 에이전트를 하나 띄워서 방금 바꾼 coupon.js 를 리뷰받아 줘. 리뷰어는 고치지 말고 문제만 짚게 하고, 리뷰가 끝나면 그 지적을 받아서 네가 고쳐 줘.
orca 명령마다 권한 확인이 뜬다면

작업하던 Claude Code는 orca 명령을 셸로 실행합니다. 명령마다 묻는 권한 모드라면 리뷰어를 띄우고, 기다리고, 읽을 때마다 확인이 뜹니다. 이 흐름의 세 명령만 저장소의 .claude/settings.json에서 미리 허용해 둡니다.

json
{
"permissions": {
"allow": [
"Bash(orca agent launch:*)",
"Bash(orca terminal wait:*)",
"Bash(orca terminal read:*)"
]
}
}

끝났다는 신호를 Orca가 넘겨 준다

작업하던 Claude Code는 리뷰어를 띄운 뒤, Orca가 끝을 알려 줄 때까지 기다렸다가 리뷰어 화면을 읽어 옵니다. Orca는 에이전트가 일하는 중인지, 일을 마치고 다음 입력을 기다리는지를 터미널 제목과 훅으로 알아챕니다.

Claude Code는 Orca가 끝을 알릴 때까지 기다렸다가 지적을 읽어 온다

Claude Code작업하던 쪽Orca상태를 본다리뷰어 Claude같은 워크트리리뷰 요청agent launch리뷰어 띄움terminal waittui-idle까지입력 대기 화면터미널 제목·훅끝났다리뷰 화면지적 6건terminal readcoupon.js 고침테스트 5개 통과
커밋 전 변경을 리뷰어 Claude에게 리뷰받을 때

워크트리는 같은 저장소를 브랜치마다 다른 폴더에 꺼낸 작업 사본입니다. 새 워크트리에는 커밋 전인 정률 쿠폰 변경이 없어서, Claude Code는 리뷰어를 지금 워크트리에 띄웁니다. 리뷰어가 끝나면 사용자에게도 Orca의 완료 알림이 뜹니다.

리뷰어는 Orca가 --dangerously-skip-permissions로 띄워 권한을 묻지 않으니, 고치지 말라는 말은 프롬프트로만 전해집니다.

리뷰어 명령과 모델을 직접 정하려면

리뷰어를 띄우고, 기다리고, 읽는 명령은 셋입니다. <handle>에는 launch 응답의 outcome.handle(term_로 시작하는 값)을 넣습니다. Claude를 Chat으로 열게 설정했다면 --surface terminal을 붙여야 그 값이 생깁니다.

bash
orca agent launch --agent claude --surface terminal --prompt "coupon.js 의 커밋되지 않은 변경(git diff)을 리뷰해 줘. 고치지 말고 문제만 짚어 줘." --json
orca terminal wait --terminal <handle> --for tui-idle --timeout-ms 300000 --json
orca terminal read --terminal <handle> --screen --json

리뷰어는 Claude Code 기본 모델로 뜨고, 사용량은 작업하던 쪽과 같은 Claude 계정에서 나갑니다. 다른 모델은 launch에 --model claude-sonnet-5-5처럼 지정합니다. --agent에는 codex 같은 다른 에이전트도 넣을 수 있습니다.

--for tui-idle은 리뷰어가 입력 대기 화면이 될 때까지 기다리고, --timeout-ms로 상한을 둡니다. 다 읽은 탭은 orca terminal close --terminal <handle>로 닫습니다.

--screen은 보이는 화면만 읽어 긴 리뷰는 앞이 잘립니다. 처음부터 읽으려면 그 옵션 없이 읽은 응답의 oldestCursor로 --cursor <oldestCursor> --limit 200을 주는데, 화면을 다시 그린 조각이 섞여 나옵니다.

리뷰어가 파일을 고칠까 걱정된다면

리뷰어 권한은 설정 → 에이전트에서 수동·자동·Yolo 가운데 고르고, 에이전트마다 따로 정할 수도 있습니다. 수동을 고르면 Orca가 Claude Code를 --permission-mode default로 띄워, 리뷰어가 파일을 고치기 전에 그 탭에서 묻습니다.

Orca가 띄운 에이전트는 폴더 신뢰 확인도 건너뛰어 그 저장소의 훅이 바로 실행됩니다. v1.4.254부터는 새 저장소에서 처음 에이전트를 띄울 때 Orca가 저장소를 믿을지 한 번 묻고, '에이전트가 묻도록 하기'를 고르면 리뷰어도 신뢰 확인을 띄웁니다. 답은 저장소 설정의 에이전트 폴더 신뢰에서 바꿉니다.

결과가 필요 없는 일은 넘기고 끝낸다

결과를 돌려받지 않을 일에 '넘겨 줘'라고 하면, Claude Code가 새 워크트리의 에이전트에게 넘기고 기다리지 않습니다. 리뷰어는 이번 변경 밖의 정액 쿠폰도 짚었습니다. 금액이 없으면 NaN이 되고, 음수면 가격이 오릅니다.

text
정액 쿠폰 검증은 새 워크트리에서 다른 Claude 에이전트에게 넘겨 줘.
새 워크트리로 넘긴 화면

새 워크트리는 기본 기준 브랜치(보통 origin/main)에서 출발해, 커밋 전인 정률 쿠폰 수정이 없습니다. 같은 coupon.js를 고치는 일이면 하던 수정을 커밋하고 '지금 브랜치에서 따서 넘겨 줘'라고 해 그 커밋에서 출발하게 합니다. 넘겨받은 에이전트가 끝나면 Orca는 그 워크트리의 에이전트를 done으로 바꾸고, 사이드바에서 읽지 않은 워크트리로 굵게 표시합니다.

Comments

댓글

powered by giscus ↗