핵심
- Claude Code와 Codex CLI는 한 호스트 가능하나 작업 디렉터리 공유 금지—
git worktree로 격리. - 3계층: 설정 → worktree → tmux; MCP Server 1개.
- Claude Code 장세션·다파일; Codex 스크립트/OpenAI 정렬.
- 16GB «1장+1단»; 두 장세션 병행은 24GB +
memory_pressure. - 수용:
tools/call≥95%, 노랑 ≤2h, worktree 교차 0.
1. 왜 클라우드 Mac 듀얼 AI 에이전트인가
2026년 상반기 kvmboot 티켓은 «SSH 되나요»에서 «한 대에 Agent 몇 개»로 바뀌었습니다. 한 팀은 Claude Code(Hooks·긴 컨텍스트)를, 다른 팀은 Codex CLI(OpenAI 스크립트·평가)를 씁니다. 같은 스프린트에 refactor와 hotfix가 겹치면 노트북 뚜껑을 닫을 때 둘 다 끊깁니다—클라우드 Mac·Mac 임대 mini에서는 노트북이 SSH 리모컨만 됩니다.
Mac 임대(24GB M4)로 기계 비용을 고정하고 토큰만 변동시키는 편이 낫습니다. 선행: Claude Code 클라우드 Mac, MCP 배치; 본문은 두 CLI가 서로 해치지 않게 하는 층입니다.
공식: Claude Code · Codex · worktree.
tmux / worktree / MCP가 처음? 한 줄로: Agent 2개 = 저장소 복제 2 + 터미널 2 + MCP 1. 아래에서 디렉터리·절대 경로·정량 수용을 펼칩니다.
2. 다섯 가지 실패 패턴(티켓 최다)
«듀얼 Agent 설정했는데 안 됨»—항목 두 개 이상이면 기능보다 격리를 먼저 다시 하세요.
- 공유 디렉터리
.git/index경합: Claude가main수정, Codex가 같은 트리에서 checkout—파일시스템 경쟁입니다. - MCP 경로가 노트북에 남음: SSH한 클라우드 Mac과 불일치—Agent마다 다른 방식으로 실패.
- tmux 창 혼용: Codex라고 생각한 작업이 Claude 잔여 셸일 수 있음.
- HOME API 키 혼선:
export오염→잘못된 모델·청구. - 16GB에서 두 장세션:
memory_pressure노란 뒤 MCP 고장으로 오판.
해답은 더 똑똑한 모델이 아니라 경계(저장소·세션·설정)입니다.
3. 역할 매트릭스
| 관점 | Claude Code | Codex CLI |
|---|---|---|
| 강점 | 장세션·다파일 refactor·Hooks·MCP Git | 소작업·스크립트 배치·OpenAI 스택 |
| 부적합 | 동일 디렉터리 병행 쓰기 | codesign/Xcode 전체 단독 대체 |
| 일반 슬롯 | cc-main + refactor worktree | codex-hotfix + hotfix worktree |
| 비용 | 토큰 과금·장세션 예산 | 토큰 과금·루프 주의 |
둘 다 «전체 repo 이해 + 대규모 수정»이면 토큰은 두 배, 처리량은 하나. 장세션 Agent는 하나만 두고 다른 쪽은 좁은 작업에.AI Coding 스택 · ECC.
4. 3계층 토폴로지
클라우드 Mac 듀얼 AI 에이전트의 시각 앵커: 두 Agent 체인이 단일 MCP Server로 모입니다.
5. 격리 setup: 디렉터리·worktree·tmux
5.1 설정 계층
클라우드 Mac에서 논리 설정 루트 분리(동일 Unix 사용자도 시작 env로 분리 가능):
- Claude Code: 예)
CLAUDE_CONFIG_DIR=/Users/agent/.claude-cc. - Codex CLI: 자격 증명·
config.toml별도—Claudesettings.json과 분리.
5.2 worktree 팜(필수)
본 저장소는 read-only 또는 fetch만; Agent마다 worktree 절대 경로 1개:
# On the cloud Mac — example paths
/opt/worktrees/my-app-cc-refactor # Claude Code only
/opt/worktrees/my-app-codex-hotfix # Codex CLI only
git worktree add /opt/worktrees/my-app-cc-refactor feature/refactor
git worktree add /opt/worktrees/my-app-codex-hotfix hotfix/config
worktree 단기 임대—시작 전 cd 고정(tmux 스크립트).
5.3 tmux: Agent당 window 1
tmux new-session -s agents -n cc -c /opt/worktrees/my-app-cc-refactor
tmux new-window -t agents -n codex -c /opt/worktrees/my-app-codex-hotfix
tmux attach -t agents—뚜껑 닫기는 로컬 Client만 끊김, 클라우드 Mac 세션은 유지. launchd FAQ도 전용 worktree.
6. MCP: Server 1, Client 2
- 클라우드 Mac에 MCP Git Server 1—
--repository는 worktree 부모 또는 worktree별 포트(문서화). - 경로는 SSH 호스트 절대 경로—MCP와 repo 동일 호스트.
- 금지: Claude→VPS MCP, Codex→로컬 stdio.
수용: 각 tmux window에서 «최근 3커밋»—tools/call과 worktree별 브랜치명 일치.
7. 16GB vs 24GB
Apple Silicon 통합 메모리는 인덱싱/언어 서비스와 겹치면 금방 압박:
- 16GB: «한 장 + 한 단» 또는 Agent 1 + MCP 읽기; Xcode/Docker 둘은 빡빡.
- 24GB: 두 대화형 장세션; 메모리·swap.
첫날 지역 고정 말고—리전/RTT 일일 임대로 memory_pressure 압력 테스트.
8. 클라우드 Mac 듀얼 Agent 수용 체크리스트
48시간 일일 임대를 재현 가능한 기준으로: 타임라인=절차, 표=합격. 호스트에 마스킹 로그 보관 권장.
| 지표 | 합격 | 측정(클라우드 Mac) |
|---|---|---|
| tools/call | ≥ 95% | 48h 내 Agent별 MCP ≥20회, 올바른 브랜치/커밋 |
| memory_pressure | ≤ 2h | memory_pressure 5분 샘플, 16GB 주시 |
| worktree cross-write | = 0 | A/B cd 금지, git -C 감사 |
8.1 48시간 타임라인
- 0–2h Setup: SSH; worktree A/B; tmux
cd; MCP 절대 경로. - 2–8h Isolation: A만 Claude refactor; B만 Codex 소커밋; 교차
cd=0. - 8–16h MCP: 양 window 커밋 질문;
tools/call성공률. - 16–32h Resilience: 뚜껑 닫기/오프라인 ≥8h 후 attach 생존.
- 32–48h Decision: 3지표; memory만 NG→24GB 또는 2×16GB; 전부 OK→Mac 임대 월간.
Pass: 3지표+RTT. Fail 우선: 공유 디렉터리·MCP가 클라우드 Mac 밖.
9. FAQ
9.1 worktree 공유?
엄격 직렬만(한쪽 완전 종료 후). 대화형 병행 금지.
9.2 Mac 두 대?
두 장세션+Xcode 각각: 2×16GB가 1×24GB보다 나을 때 많음; 한 장+한 단: 24GB 1대.
9.3 Codex macOS 필수?
codesign/notarization/Xcode 포함 시 Claude와 같은 클라우드 Mac이 Linux+Mac 분리보다 가벼움.
10. 결론
클라우드 Mac 듀얼 AI 에이전트는 소규모 멀티테넌시: worktree+tmux+단일 MCP. 감이 아니라 3지표로—합격 후 Mac 임대 월간·메모리 확정.