Claude Code, Codex, OpenCode 세션 여러 개를 병렬로 실행하기 (흐름을 놓치지 않고)
worktree, 이름 짓기, 알림, "주의가 필요한 것" 확인 루프를 묶어 tmux에 붙어 있지 않고도 세션 5~20개를 운영하는 실용적인 워크플로.
- CLI
- 0.2.17
- 프리뷰 ref
- a2c45c8
"많은" 세션을 돌리는 것은 처음부터 계획한 일이 아닌 경우가 대부분입니다. 조금씩 늘어납니다.
자연스럽게 이렇게 됩니다.
- 모듈을 리팩터링하는 Claude Code 세션 하나
- 반복적인 정리를 하는 Codex 세션 하나
- 다른 접근 방식을 탐색하는 OpenCode 세션 하나
그러다 정신을 차려 보면 열 개가 됩니다.
그쯤 되면 어려운 건 세션을 시작하는 일이 아닙니다.
주의력의 문제입니다.
지금 나를 필요로 하는 세션은 어느 것이고, 아직 잘 돌아가고 있는 세션은 어느 것인가?
이걸 해결하지 못하면 병렬 세션은 효율이 아니라 서서히 밀려오는 불안이 됩니다.
이 가이드는 병렬 세션을 명확하고 예측 가능하게 만드는 워크플로를 다룹니다.
요약
- 격리 전략을 정하세요.
- 저장소 사본 하나(빠르지만 충돌이 잦음), 또는
- 세션마다 git worktree(깔끔한 병렬 작업)
- 세션 목록이 읽히도록 이름 규칙(저장소 + 목표)을 정하세요.
- "주의 목록"을 볼 곳을 하나 고르세요.
- TUI 대시보드(tmux 관리자), 또는
- Inbox와 알림이 있는 휴대폰이나 브라우저 UI
- 휴대폰 중심으로 주의를 배분하고 싶다면 Happier가 한 가지 선택지입니다. Inbox와 승인이 사라지지 않고 남아 있고, 알림이 정확한 세션(과 정확한 서버 프로필)으로 바로 연결됩니다.
문제
여러 세션을 돌리면 세 가지가 무너지기 시작합니다.
- 격리: 세션끼리 서로의 파일을 덮어씁니다.
- 맥락: 각 세션이 무엇을 하고 있었는지 잊어버립니다.
- 주의: 순조롭게 돌아가는 세션을 보고 있는 사이 승인에 막힌 세션을 놓칩니다.
사람들은 흔히 3번을 "터미널을 더 여는 것"으로 해결하려 하지만, 그것은 주의를 관리하는 체계가 아닙니다.
흔한 방법과 트레이드오프
- 터미널이나 tmux 창을 그냥 더 연다: 어느 순간까지는 되지만, 훑어보는 비용이 세션 수에 비례해 늘어납니다.
- 저장소마다 tmux 세션 하나, 이름을 신중하게: 낫지만 여전히 수작업입니다.
- 커뮤니티 TUI(cmux, claude-squad, agent-deck): 터미널에서 살고 대시보드를 원한다면 좋습니다.
- Claude Code Remote Control + Agent Teams: Claude 생태계를 쓴다면 도움이 되지만, 여전히 특정 공급자에 한정됩니다.
공급자를 가리지 않는 주의 목록과 승인 및 diff를 위한 휴대폰 UI가 필요하다면, Happier는 Claude Code, Codex, OpenCode 등 여러 에이전트를 크로스 디바이스로 실행하고 오케스트레이션할 수 있는 오픈 소스 앱입니다.
Happier가 처음이라면 (무엇이고 어디서 받는지)
Happier는 Claude Code, Codex, OpenCode 같은 세션을 위한 오픈 소스 컴패니언 앱(모바일, 웹, 데스크톱)입니다.
흐름은 이렇습니다. 세션은 신뢰하는 컴퓨터(여러 대도 가능)에서 실행되고, Happier는 휴대폰에서 이를 지켜보고 승인하며 작업을 계속 진행시키는 곳입니다.
설정하기:
- 휴대폰에서 Happier 사용하기
- GitHub: https://github.com/happier-dev/happier
- 설치 및 다운로드: https://github.com/happier-dev/happier#how-it-works
- Discord: https://discord.gg/W6Pb8KuHfg
1단계: 격리 전략 고르기 (세션 수보다 중요합니다)
선택지 A: 작업 디렉터리 공유
같은 저장소 체크아웃에서 세션 여러 개를 그냥 시작하면 이것이 기본입니다.
빠릅니다.
하지만 이런 일도 생깁니다.
- 충돌하는 편집
- 반쯤 적용된 변경
- "이 파일은 어느 세션이 만들었지?" 같은 혼란
이 방법을 쓴다면 엄격한 규칙이 필요합니다. 한 세션은 읽기와 리뷰만 하고, 다른 한 세션이 쓰기를 맡습니다.
선택지 B: 세션마다 git worktree (권장)
worktree는 병렬 세션을 예측 가능하게 만드는 간단한 방법입니다.
각 세션이 갖는 것:
- 자기만의 작업 트리
- 자기만의 브랜치
그 결과:
- 충돌이 줄고
- 정리가 쉬워지며
- "이 변경은 이 세션 담당"이라고 생각하기 쉬워집니다
트레이드오프는 관리 부담입니다. worktree를 만들고 지우고, 브랜치를 깔끔하게 유지해야 합니다.
2단계: 잊어버릴 것을 전제로 세션 이름 짓기 (정말 잊어버립니다)
간단한 이름 규칙:
- 저장소 이름
- 목표
- 선택적인 제약
예시:
api: refactor auth middleware (keep behavior)web: upgrade deps (no UI changes)cli: fix install script (mac+linux)
작은 습관이지만, 어떤 대시보드든 쓸모 있게 만드는 것은 이것입니다.
3단계: "주의" 문제를 명시적으로 해결하기 (창을 늘리는 대신)
다음 질문에 답해 주는 곳이 하나 필요합니다.
- 무엇이 실행 중인가
- 무엇이 승인을 기다리는가
- 무엇이 끝났는가
터미널 중심 선택지:
- 활성 세션을 보여 주고 빠르게 이동할 수 있는 TUI 관리자
휴대폰 중심 선택지:
- 입력이 필요한 바로 그 세션으로 데려가는 Inbox와 알림 워크플로
Happier 워크플로 (Inbox + 대기 큐 + 안전한 알림 라우팅)
병렬 세션에 도움이 되는 점은 Happier가 주의를 다루는 방식에 분명한 원칙이 있다는 것입니다.
- Inbox는 "내 주의가 필요한 것"(승인, 요청)을 모아 두는 곳입니다
- 알림은 세션을 구분하고 여러 서버도 구분합니다
- 대기 큐를 쓰면 세션이 준비됐는지 추측하지 않고 후속 메시지를 예약할 수 있습니다
이 조합이 "세션 12개"를 "답해야 할 2건"으로 바꿔 줍니다.
실용적인 운영 규칙
- 크고 위험한 결정이 필요한 세션은 그 자리에서 계속하지 말고 포크하세요.
- 휴대폰에서는 이것만 하세요.
- 승인
- 짧은 방향 지시 메시지
- diff 리뷰
- 나머지는 키보드 앞에 돌아올 때까지 기다립니다.