Claude Code와 Codex를 팀으로 운영하는 법
OpenRig로 Claude Code 빌더와 Codex 리뷰어를 한 팀으로 띄우고, 일을 맡기고, 내리는 순서를 정리했어요. 설치 전 백업과 되돌리는 법도 함께 있어요.
하네스(Claude Code, Codex)가 모델을 감싼다면, 리그(rig)는 그 하네스들을 감싸요. OpenRig는 에이전트 팀을 YAML(RigSpec)로 적고 명령 하나(rig up)로 띄우는 오픈소스예요. 에이전트마다 dev-build@starter 같은 좌석 주소가 있어서, 그 자리의 대화가 바뀌어도 주소와 역할, 미리 적어 둔 맥락은 그대로 남아요. 모든 에이전트는 tmux 세션 안에서 돌아서 직접 들어가 볼 수도 있어요.
OpenRig는 설치와 실행 중에 ~/.tmux.conf 에 OpenRig 블록을 넣고, ~/.codex/config.toml 에 훅과 신뢰 설정을, ~/.claude.json 에 작업 폴더 신뢰를 써요. README도 완전한 보존이나 되돌리기를 보장하지 않는다고 적고 있으니, 처음 쓰기 전에 꼭 백업하세요.
이렇게 되면 성공이에요
- 1설치
rig --version 이 버전을 보여 주고, rig doctor 에 막는 문제가 없음 - 2로그인
쓰려는 쪽의 claude auth status 나 codex login status 가 로그인 상태 (starter를 그대로 띄우면 둘 다) - 3팀 준비
rig ps --nodes --rig starter 에 dev-build, dev-review 두 좌석이 보이고, Startup details(rig up 에서는 Startup attention)로 멈춘 좌석이 없음 - 4일 기록
rig queue list --destination dev-build@starter 에 빌더가 만든 작업이 보임 - 5리뷰 결과
dev-review가 같은 결과물을 검토한 기록과, 직접 해 볼 방법이 남아 있음
한눈에 보는 진행 순서
처음이라면 이 순서대로 하면 돼요. 명령어는 각 단계의 자세한 섹션에 있어요.
- 준비물 확인
macOS나 Linux, Node.js 22 또는 24, tmux, Claude Code와 Codex 로그인 (starter를 그대로 띄우려면 둘 다, 하나만 있으면 kernel 오퍼레이터에게 맞춰 달라고 해요)
자세히 보기 → - 설정 파일 백업
OpenRig를 깔고 처음 실행하기 전에, 바뀌는 파일을 한 번만 복사해 둬요
자세히 보기 → - 설치 계획 보기
설치 스크립트를 --dry-run 으로 돌려 설치 계획을 봐요 (rig setup --dry-run 은 CLI를 깐 뒤에 돼요)
자세히 보기 → - 설치
한 줄 설치 스크립트, 또는 npm으로 CLI를 깔고 필요하면 rig setup
자세히 보기 → - starter 팀 띄우기
저장소 폴더에서 rig up starter --cwd .
자세히 보기 → - 준비 확인
rig ps --nodes --rig starter 로 두 좌석이 준비됐는지 보고, 질문에서 멈춘 좌석은 답한 뒤 rig seat continue <seat>
자세히 보기 → - 일 맡기기
rig send 로 빌더 좌석에 원하는 결과를 말해요
자세히 보기 → - 상태 보기와 내리기
rig ps, rig down
자세히 보기 →
준비물
| 항목 | 조건 |
|---|---|
| OS | macOS 또는 Linux (Windows는 아직 지원 안 함, WSL2는 테스트 안 됨) |
| Node.js | 22 또는 24 (Apple 실리콘 Mac은 22 권장, Node 20은 지원 끝) |
| tmux | 필수. macOS는 Homebrew가 이미 있으면 rig setup 이 깔아 줘요 (Homebrew 자체는 안 깔아요). Linux는 직접 설치 |
| Claude Code, Codex | 쓰려는 쪽만 설치하고 로그인. starter 팀을 그대로 띄우려면 둘 다 필요해요 |
| 선택 | herdr 또는 cmux (cmux는 macOS만, 에이전트 터미널을 한 화면에), Docker (서비스형 리그) |
버전과 로그인 상태를 확인해요. 쓰지 않는 쪽은 설치하거나 로그인하지 않아도 돼요.
node --version tmux -V claude --version claude auth status codex --version codex login status
로그인이 안 되어 있으면 한 번만 로그인해요.
claude auth login codex login
CLI가 없으면 각 제공사 설치 안내대로 깔아요. rig setup 을 실행하면 쓰지 않는 쪽 CLI도 깔고, macOS에서는 cmux도 깔아요. 한쪽만 쓸 거면 rig setup 은 건너뛰어도 돼요 (그때 tmux는 직접 깔아요).
Linux 배포판 기본 Node.js는 오래된 경우가 있어요 (Ubuntu 24.04는 18). nvm으로 nvm install 22 를 하면 돼요.
설치 전에: 백업하고 미리 보기
README의 'What OpenRig changes on your machine'에 적힌 파일들이에요. 데몬은 rig up 으로도 저절로 켜지니, 백업은 데몬을 처음 켜기 전에 해요.
| 파일 | 누가, 왜 바꾸나요 |
|---|---|
| ~/.tmux.conf | rig setup 이 마우스, 스크롤용 OpenRig 블록을 추가 |
| ~/.codex/config.toml | 데몬이 켜질 때(팀을 띄우기 전에도) 훅 켜기, 활동 전달 명령과 그 신뢰 기록을 쓰고, 좌석이 뜰 때 작업 폴더 trust_level 추가 |
| ~/.claude.json | 좌석이 뜰 때 작업 폴더 신뢰와 온보딩 완료 기록 |
| ~/.claude/skills, ~/.agents/skills | 데몬이 켜질 때 openrig-skills 스킬을 넣음 |
| ~/.openrig | 데몬이 켜질 때 OpenRig 상태와 데이터베이스를 만듦 |
| ~/.config/cmux/settings.json | macOS에서 rig setup 이 cmux 자동화 소켓 설정을 automation으로 바꿈 |
| 저장소의 .claude/settings.local.json, .mcp.json | 팀을 띄울 때 statusLine, 훅, MCP 설정 |
| 저장소의 .openrig/, .codex/plugins/ | 팀을 띄울 때 도우미 스크립트와 OpenRig 플러그인 파일을 새로 만듦 |
| 저장소의 .git/info/exclude | 새로 만든 .codex/plugins 파일을 '# BEGIN OpenRig generated files' 블록으로 추가 |
1. 홈 폴더 설정 백업
백업은 OpenRig를 처음 설치하기 전에 한 번만 해요. ~/openrig-backup 이 이미 있으면 다시 실행하지 마세요. 바뀐 파일이 원래 백업과 섞여요.
mkdir -p ~/openrig-backup cp -pn ~/.tmux.conf ~/openrig-backup/tmux.conf cp -pn ~/.codex/config.toml ~/openrig-backup/codex-config.toml cp -pn ~/.claude.json ~/openrig-backup/claude.json cp -Rp ~/.claude/skills ~/openrig-backup/claude-skills cp -Rp ~/.agents/skills ~/openrig-backup/agents-skills cp -pn ~/.config/cmux/settings.json ~/openrig-backup/cmux-settings.json
cp -pn 은 이미 있는 백업을 덮어쓰지 않아요. 없는 파일은 'No such file' 오류가 나요. 원래 없던 파일이니 넘어가면 돼요. CLAUDE_CONFIG_DIR 나 CODEX_HOME 을 바꿔 쓰고 있다면 그 폴더의 파일을 백업해요.
2. 저장소 쪽 설정 백업
팀을 띄울 저장소 폴더에서 해요. 백업 폴더 이름에 저장소 이름이 붙어서 저장소마다 따로 남아요. 작업 중인 변경은 먼저 커밋해 두면 되돌리기 쉬워요.
cd /path/to/your/repository B=~/openrig-backup/repo-$(basename "$PWD") mkdir -p "$B" cp -pn .claude/settings.local.json "$B"/ cp -pn .mcp.json "$B"/ cp -pn .git/info/exclude "$B"/git-info-exclude
3. 설치 계획 미리 보기
설치 스크립트의 --dry-run 은 네 단계 설치 계획을 글로만 보여 주고 아무 명령도 실행하지 않아요. setup이 무엇을 할지는 CLI를 깐 뒤 rig setup --dry-run 으로 봐요.
curl -fsSL https://raw.githubusercontent.com/mvschwarz/openrig/v0.6.6/scripts/install.sh | sh -s -- --dry-run
rig setup --dry-run 은 setup 계획만 보여 줘요. 데몬이 켜질 때나 팀을 띄울 때 쓰는 파일까지 모두 미리 보여 주지는 않아요. 그래서 백업이 먼저예요.
설치와 첫 실행
설치: 한 줄로
v0.6.6 설치 스크립트가 Node.js와 npm 확인, 최신 @openrig/cli 설치와 Node.js, SQLite 확인, rig setup --dry-run, rig setup 까지 차례로 해요. rig setup 은 없는 Claude Code나 Codex를 npm으로 깔고, macOS에서는 Homebrew로 tmux와 cmux도 깔아요. 데몬은 켜지 않아요.
curl -fsSL https://raw.githubusercontent.com/mvschwarz/openrig/v0.6.6/scripts/install.sh | sh
로그인이 안 된 쪽이 있으면 마지막 단계가 FAILED [4/4] 로 끝나요. 어느 방법이든 rig setup 은 'Some steps need attention'에 로그인을 적어요. 남은 게 로그인뿐이면 설치는 끝난 거예요. 쓰려는 쪽만 로그인하고 이어가면 돼요.
설치: 한 단계씩
npm install -g @openrig/cli rig setup --dry-run
rig setup 을 적용하면 Claude Code와 Codex를 둘 다 확인해서 없는 쪽을 npm으로 깔고, macOS에서는 Homebrew로 tmux와 cmux도 깔아요. 둘 다 쓸 거면 이어서 rig setup 을 실행해요. 한쪽만 쓸 거면 건너뛰어도 돼요.
kernel 오퍼레이터 열기
kernel은 운영자, 어드바이저, 큐 워커로 된 기본 리그예요. 팀 고르기를 돕고, Claude Code나 Codex 하나만 있으면 starter를 맞춰 줘요. rig setup 은 데몬을 켜지 않으니 직접 켜요. 켜졌다고 바로 준비된 건 아니라서 상태를 봐요.
rig daemon start # 데몬이 꺼져 있을 때만 rig status rig ps --nodes --rig kernel rig terminal open saved:kernel --provider herdr
Herdr가 없으면 --provider cmux 로 열어요. 둘 다 없으면 rig ps --nodes --rig kernel --json 에서 operator.agent 줄의 canonicalSessionName 을 찾아 새 터미널에서 붙어요. 나올 때는 Ctrl-b 다음 d예요.
env -u TMUX tmux attach-session -t '=<canonicalSessionName>'
starter 팀 띄우기
작업할 저장소 폴더로 가서, 팀 구성을 미리 보고, 계획을 확인한 뒤 띄워요.
cd /path/to/your/repository rig specs preview starter --kind rig rig up starter --cwd . --plan rig up starter --cwd .
| 좌석 주소 | 하네스 | 역할 |
|---|---|---|
| dev-build@starter | Claude Code | 빌더: 만들고 검증하고 작업을 기록 |
| dev-review@starter | Codex | 리뷰어: 빌더가 만든 결과물을 따로 검토 |
공식 문서 기준으로 dev-review는 Codex 모델 gpt-6-astra로 고정되어 있어요. 띄우기 전에 내 계정에서 그 모델을 쓸 수 있는지 확인해요. Claude Code나 Codex 하나만 있으면 kernel 오퍼레이터에게 맞춰 달라고 하면 같은 이름으로 내 환경용 사본을 만들어요.
준비됐는지 확인
rig status rig ps --nodes --rig starter
rig up 이 Status: partial 과 'Startup attention (<seat>)'을 보여 주면 그 좌석이 로그인, 신뢰, 권한 질문에서 멈춘 거예요 (rig ps --nodes 에서는 'Startup details'). rig 를 실행해 시작 화면(작업 화면이 열리면 S)에서 그 좌석을 고르고 o 로 터미널을 열어 답해요. Herdr가 있으면 rig terminal open starter --provider herdr 로 열어도 돼요. 답한 뒤 화면에 나온 명령을 실행해요.
rig seat continue <seat>
쓰는 법
원하는 결과를 말하기
좌석 주소로 빌더에게 한 가지 결과를 보내요. 무엇이 보여야 하는지, 범위, 확인 방법을 함께 적으면 좋아요. 리뷰는 빌더가 dev-review에게 직접 넘겨서, 터미널 사이를 옮겨 줄 필요가 없어요. <one useful change> 는 내 저장소에서 바꾸고 싶은 실제 변경 하나로 바꿔 적어요 (꺾쇠 괄호는 빼요).
rig send dev-build@starter 'Implement <one useful change>. Track the task in the queue and return its ID. Keep it local, verify the behavior, ask dev-review in this rig to check the exact candidate, and record the result and how I can try it.'
메시지를 보낸다고 작업이 바로 생기지는 않아요. 빌더가 작업을 기록하면 큐에서 볼 수 있어요.
rig queue list --destination dev-build@starter --limit 1000 rig queue list --destination dev-review@starter --limit 1000 rig queue show <id> --full
다음 변경도 같은 빌더 좌석에 이어서 보내요. 보던 터미널을 닫아도 좌석 주소와 큐는 남아 있어요.
리드가 있는 팀이라면
workshop은 리드에게 원하는 결과를 말해요. factory는 어드바이저에게 아이디어를 말하고, 리드가 팀을 운영해요. 처음 설치 뒤에는 kernel 오퍼레이터가 무엇을 만들지 묻고 세 팀 중 하나를 추천해 줘요.
팀 화면 보기
rig tui --shared rig terminal open starter --provider herdr
rig terminal open 은 Herdr가 설치되어 연결돼 있을 때 써요 (cmux면 --provider cmux). 여러 번 열면 워크스페이스가 또 생길 수 있으니, 이미 연 화면이 있으면 그리로 돌아가요. 공유 대시보드에서 빠져나올 때는 Ctrl-b 다음 d예요. 대시보드를 끄지 않고 나와요.
팀 내리기
rig down 은 그 팀의 에이전트 세션과 진행 중인 일을 끝내요. 먼저 누가 멈출지 확인해요.
rig ps --nodes --rig starter rig down starter
모두 끄려면 rig ps --json 으로 리그 목록을 보고 하나씩 rig down 해요. kernel은 맨 마지막에, 그다음 백그라운드 서비스를 꺼요.
rig down kernel rig daemon stop
미리 짜 둔 팀 비교
| 팀 | 인원 | 구성 | 언제 쓰나요 |
|---|---|---|---|
| starter | 2명 | 빌더 dev-build (Claude Code), 리뷰어 dev-review (Codex) | 범위가 정해진 변경 하나 |
| workshop | 4명 | 리드, 빌더, QA, 리뷰어 | 한 저장소에서 계속 이어지는 일. 내장 팀이 아니라서 kernel 오퍼레이터에게 설치해 달라고 하거나, GitHub 폴더 링크로 rig up <링크> |
| factory | 7명 | 리드, 어드바이저, 빌드, QA, 디자인, 독립 리뷰어 2명 | 꾸준한 제품 작업. 어드바이저에게 아이디어를 말하고 리드가 팀을 운영. 동시 사용량이 가장 많음 |
rig specs ls --kind rig rig specs preview factory --kind rig rig up factory
이 밖에 code-review (독립 리뷰 2개), research (분석가와 정리 담당), pm (제품 리드, 리서처, 프로토타입 빌더) 팀도 내장되어 있어요. 돌아가는 팀에 자리를 늘리고 줄일 때는 rig grow, rig shrink 를 써요.
자주 막히는 곳
| 보이는 것 | 할 일 |
|---|---|
| 설치 중 FAILED [n/4] | 나온 명령을 직접 실행해서 전체 오류를 확인. 남은 게 로그인뿐이면 로그인하고 계속 |
| npm warn install-scripts | npm 11 이상에서 정상. Node.js, SQLite 확인만 건너뛴 것 |
| Startup attention 또는 Startup details (좌석) | rig 를 실행해 그 좌석을 고르고 o 로 터미널을 열어 질문에 답한 뒤 rig seat continue <seat>. 결과가 불분명하면 다시 하기 전에 rig seat status <seat> |
| Readiness timeout after 30s | rig config set runtime.readiness_timeout_seconds <1-600> 로 늘리고 그 좌석을 다시 띄움 |
| 보던 터미널을 닫음 | rig tui --shared 로 다시 붙기. 팀을 다시 띄우지 않아요 |
| Codex 좌석이 데몬에 못 닿음 | Codex 설정의 [sandbox_workspace_write] 에 network_access = false 가 있거나, 관리 정책이 막거나, Codex가 설정 확인에 제때 답하지 못하면 네트워크 없이 떠요 (이슈 #275). 어느 경우인지 설정부터 보고, 전체를 무제한 권한으로 바꾸지는 않아요 |
| 뭔가 안 됨 | rig doctor, rig ps --nodes --rig <rig>, rig daemon status, rig daemon logs |
| 그래도 안 됨 | rig --version, OS, 실행한 명령, 오류 일부를 적어 hello@openrig.dev 나 GitHub Q&A(github.com/mvschwarz/openrig/discussions)에 물어요. 키나 로그인 정보는 빼고 보내요 |
rig doctor 의 로그인 확인은 이 컴퓨터 안에서만 하는 확인이라, 제공사가 실제로 받아 주는지나 에이전트가 일하는지까지는 보장하지 않아요. rig ps --nodes --rig <rig> 도 함께 봐요.
되돌리기 (백업 복원)
데몬이 켜져 있으면 Codex 설정을 다시 쓸 수 있어서, 먼저 팀과 데몬을 끄고 복원해요.
팀과 데몬을 끄기 전에, 권한 허용 규칙을 추가한 에이전트가 있으면 그 에이전트에게 "Undo the OpenRig command allowances added by this setup; keep my other rules."라고 말해 그 추가분만 지워요. 그 에이전트가 kernel 운영자라면 rig down kernel 뒤에는 말할 수 없어요.
rig ps --json 에 다른 리그가 보이면 kernel 전에 하나씩 rig down 해요. rig daemon stop 은 서비스만 끄고 에이전트 tmux 세션은 남겨요. 데몬이 이미 꺼져 있으면 rig daemon start --no-kernel 로 켠 뒤 내려요.
rig ps --json rig down starter rig down kernel rig daemon stop
덮어쓰기 전에 지금 상태를 따로 남기고, diff 로 OpenRig가 바꾼 부분만인지 봐요. 백업 뒤에 직접 바꾼 설정이 있으면 복원 뒤 다시 넣어요.
mkdir -p ~/openrig-backup/after cp -p ~/.tmux.conf ~/openrig-backup/after/tmux.conf cp -p ~/.codex/config.toml ~/openrig-backup/after/codex-config.toml cp -p ~/.claude.json ~/openrig-backup/after/claude.json cp -p ~/.config/cmux/settings.json ~/openrig-backup/after/cmux-settings.json diff ~/openrig-backup/codex-config.toml ~/.codex/config.toml diff ~/openrig-backup/claude.json ~/.claude.json
cp -p ~/openrig-backup/tmux.conf ~/.tmux.conf cp -p ~/openrig-backup/codex-config.toml ~/.codex/config.toml cp -p ~/openrig-backup/claude.json ~/.claude.json cp -p ~/openrig-backup/cmux-settings.json ~/.config/cmux/settings.json
CLAUDE_CONFIG_DIR 나 CODEX_HOME 을 쓰면 그 폴더의 파일을 되돌려요. 저장소 쪽은 같은 폴더에서 되돌려요.
cd /path/to/your/repository B=~/openrig-backup/repo-$(basename "$PWD") cp -p "$B"/settings.local.json .claude/settings.local.json cp -p "$B"/.mcp.json .mcp.json cp -p "$B"/git-info-exclude .git/info/exclude git status --short --ignored
OpenRig가 만든 .openrig/, .codex/plugins/ 아래 openrig-core 폴더, 새로 생긴 AGENTS.md, CLAUDE.md, CLAUDE.local.md 를 확인해서 원래 없던 것만 정리해요. 스킬 폴더는 덮어쓰지 말고, 추가된 openrig-skills 를 백업과 비교해서 직접 정리해요. 백업이 없는 파일은 원래 없던 것이니 새로 생긴 걸 지우면 돼요. Claude나 Codex 로그인 정보는 지우지 않아요.
복원한 뒤 rig daemon start, rig up, rig context add 를 실행하거나 rig 화면에서 데몬을 켜면 Codex 설정과 openrig-skills 를 다시 써요. rig setup 을 다시 하면 ~/.tmux.conf 블록도 다시 들어가요. 그래서 복원은 OpenRig를 그만 쓸 때 해요.
주의할 점
설정 파일을 바꾸는 도구
데몬과 부트스트랩이 쓰는 내용은 하나하나 묻지 않고 자동으로 쓰여요. 기존 신뢰 항목이나 Claude statusLine 명령은 바뀔 수 있고, 읽지 못한 설정은 빈 값으로 복구될 수 있어요. 고른 리소스에 따라 저장소의 .claude/settings.local.json 에 permissions.defaultMode 가 acceptEdits 로 들어가고, Exa, Context7 같은 외부 MCP 항목이 켜질 수 있어요. 팀을 띄운 뒤 이 파일과 .mcp.json 을 확인해요. 백업 없이 시작하지 마세요.
비용과 사용량
좌석마다 따로 대화가 돌아서, 좌석 수만큼 Claude, Codex 사용량이 함께 나가요. 데몬이 켜지면 kernel(운영자, 어드바이저, 큐 워커)도 따로 돌아서 팀 좌석 말고도 사용량이 나갈 수 있고, 두 계정이 다 로그인돼 있으면 kernel은 둘 다 써요. factory는 동시 사용량이 가장 많아요. Claude 사용량 한도를 감지하지 못하는 경우가 있다고 알려져 있어요 (이슈 #99).
권한
YOLO(권한 우회)는 기본으로 꺼져 있어요. 팀 기본값에서 Claude 좌석은 파일 수정(acceptEdits)과 일반 rig 명령, 프로젝트 읽기, 흔한 테스트를 묻지 않고 하고, rig up, rig down 같은 명령은 여전히 물어요. Codex 좌석은 workspace-write 샌드박스에서 돌고, 승인 질문은 내 Codex 설정을 따라요.
단, kernel 좌석은 팀 기본값이 아니라 운영용 기본값으로 떠요. Claude kernel 좌석은 홈 폴더 읽기를 포함한 파일 도구와 운영 명령을 묻지 않고, Codex kernel 좌석은 -s danger-full-access -a never 로 샌드박스와 승인 질문 없이 돌아요.
v0.6.6에서는 팀을 띄우기 전에 에이전트가 'Allow your agents to run OpenRig commands without repeated permission prompts?'라고 묻고 Yes를 추천해요. Yes면 에이전트 시작, 중지, 설정을 포함한 rig 명령 전체가 이 프로젝트의 내 설정에 허용 규칙으로 들어가요. 원하지 않으면 No를 골라요. 설정은 그대로예요. workshop 번들은 넓은 권한과 권한 질문 건너뛰기로 나오니, 설치 전 안내를 읽고 고르세요.
질문 하나를 넘기려고 전체를 무제한 권한으로 바꾸지 마세요. 처음 보는 명령이 승인 요청에 나오면 거절하고 에이전트에게 다르게 하라고 말해요.
명령과 팀 구성은 2026-10-08에 main 브랜치 README와 docs/reference 문서, 그리고 실제로 설치되는 v0.6.6 태그의 README, 설치 스크립트, rig setup 코드로 맞춰 봤어요. main 문서가 v0.6.6보다 앞선 곳(권한 질문 문구, Herdr 자동 설치)은 v0.6.6 기준으로 적었어요. 백업과 복원의 cp, diff 명령은 README에 없는 일반 셸 명령이에요.
2LAZZZY / 2026-10-08 기준. 이 페이지에는 실제 키나 로그인 정보가 없어요.