터미널을 두 개 띄워 놓고 일하다 보면 이런 순간이 옵니다. 한쪽에서 스키마를 바꿨는데 다른 쪽은 그걸 모른 채 옛 컬럼으로 코드를 쓰고 있어요. 결국 사람이 창을 옮겨 다니며 상황을 옮겨 적습니다.
그 복붙을 없애는 기능이 클로드 코드에 들어왔습니다. 세션이 다른 세션에 직접 메시지를 보냅니다.
Claude 로고 — 출처: Anthropic
따로 켤 것이 없습니다
Claude Code 2.1.224 이상이면 이미 켜져 있습니다. 설정을 만질 필요도, 플래그를 넣을 필요도 없어요.
내 버전에 이 기능이 있는지 확인하기 — 출처: 직접 실행
동작하는 도구는 둘입니다. ListAgents 가 닿을 수 있는 세션을 찾고, SendMessage 가 이름을 보고 텍스트를 전달합니다. 둘 다 클로드가 알아서 부르는 것이라 사람이 직접 호출할 일은 없어요.
내 세션에서 확인하고 싶으면 /list-agents 를 칩니다(별칭 /peers). 이 명령이 아예 인식되지 않으면 그 세션에는 기능이 없는 겁니다.
- 지원은 macOS·리눅스(WSL 2 안 리눅스 포함)입니다. 네이티브 윈도우에는 제공되지 않고, Amazon Bedrock·Google Cloud Agent Platform·Microsoft Foundry 경유로 쓰는 경우에도 빠집니다.
어떤 순간에 쓰나
공식 문서가 드는 상황은 넷입니다. 한 세션이 알아낸 걸 다른 세션이 알아야 할 때예요.
| 상황 | 넘기는 내용 |
|---|---|
| 한쪽이 깨뜨리는 변경을 했을 때 | 무엇이 바뀌었는지 |
| 워크트리를 나눠 같은 저장소를 손볼 때 | 무엇이 머지됐는지 |
| 마이그레이션·테스트가 오래 돌 때 | 끝났는지 여부 |
| 다른 기계·웹 세션에 물을 때 | 그쪽 상황 |
클로드가 필요하다고 판단하면 알아서 보내기도 하고, 내가 시켜서 보내기도 합니다. “다른 터미널에서 도는 세션한테 마이그레이션 끝났는지 물어봐” 처럼 말하면 돼요.
비슷한 기능이 많다
클로드 코드에는 세션을 여럿 굴리는 방법이 이미 여러 갈래라 헷갈리기 쉽습니다. 하려는 일에 따라 쓰는 게 정해져 있어요.
| 하려는 일 | 쓰는 기능 |
|---|---|
| 내가 띄운 독립 세션끼리 사실 전달 | 세션 간 메시징 |
| 같은 대화를 다른 터미널에서 이어가기 | 세션 resume |
| 클로드가 팀을 꾸려 감독하게 하기 | 에이전트 팀 |
| 여러 세션을 한 화면에서 보기 | 에이전트 뷰 |
| 폰에서 내가 직접 조종하기 | Remote Control |
| CI 결과 같은 외부 이벤트 밀어넣기 | 채널 |
- 가르는 기준은 누가 세션을 띄웠고 누가 지휘하느냐입니다. 내가 각각 띄우고 각각 지휘하는 세션들 사이를 잇는 게 이번 기능이에요.
건너가는 건 텍스트 한 덩어리뿐
가장 중요한 성질입니다. 메시지는 한 클로드가 다른 클로드에게 쓴 평문 텍스트예요. 대화 기록도, 파일도 넘어가지 않습니다.
세션 사이로 텍스트만 건너가는 개념 — 출처: agy 생성
| 건너가는 것 | 건너가지 않는 것 |
|---|---|
| 보낸 세션 이름과 본문 | 대화 기록 |
| 답장 주소 | 열어 둔 파일·컨텍스트 |
| — | 권한과 승인 상태 |
권한 경계가 세션마다 그대로 남는다는 게 핵심이에요. 받은 메시지는 승인을 대신할 수 없습니다. 대기 중인 권한 프롬프트에 대신 답할 수 없고, 다른 세션이 부탁했다는 이유로 권한 설정이나 CLAUDE.md 같은 설정을 바꾸지도 않습니다. 메시지 안에 /compact 같은 명령어가 적혀 있어도 그냥 평문으로 도착할 뿐 실행되지 않아요.
보내는 쪽에도 제약이 걸립니다. 자기 세션에서 거부당한 작업을 다른 세션에 대신 시키지 말라는 지시가 들어가 있어요. 우회로로 쓰지 못하게 막아 둔 겁니다.
권한을 넘기는 통로가 아니라 사실을 넘기는 통로입니다.
메시지가 지나는 길
같은 기계 안이라면 세션마다 열린 소켓으로 곧장 갑니다 — Anthropic 서버를 거치지 않아요. 반대로 다른 기계나 웹 세션에 보내면 Anthropic 서버를 지나 그쪽 Remote Control 연결로 도착합니다.
| 상대 세션 | 지나는 길 |
|---|---|
| 같은 기계 | 세션 소켓 — 서버 경유 없음 |
| 다른 내 기계 | Anthropic 서버 → Remote Control |
| 웹 세션 | Anthropic 서버 → 클라우드 세션 |
컨테이너는 파일 시스템이 따로라 안팎이 서로 안 보입니다. 컨테이너 안 세션과 호스트 세션은 서로 닿지 못하고, 같은 컨테이너 안 세션끼리는 됩니다.
받는 쪽이 정한다
보낸다고 다 도착하는 게 아니에요. 받는 세션이 자기 규칙으로 판정하고, 결과는 셋 중 하나입니다.
받는 쪽의 승인 관문 개념 — 출처: agy 생성
| 값 | 결과 |
|---|---|
| accept | 그대로 전달 |
| hold | 알림만 띄우고 보류 — 승인해야 도착 |
| refuse | 조용히 버림 |
설정 키는 crossSessionInbound 입니다. 아무 값도 정하지 않으면 두 세션의 권한 모드로 자동 판정해요. 기준은 권한 프롬프트를 건너뛰는 세션인가입니다.
- 받는 쪽이 프롬프트를 띄우는 보통 세션이면 → 대체로 전달. 보내는 쪽이 프롬프트를 건너뛰는 세션일 때만 보류합니다.
- 받는 쪽이 프롬프트를 건너뛰는 세션이면 → 기본이 보류. 보내는 쪽도 같은 부류일 때만 전달합니다.
보류된 메시지는 승인 대화로 뜨고, 기본 5분(dialogExpiry) 안에 답하지 않으면 닫히면서 버려집니다. 보류 대기는 최대 100건까지만 쌓여요.
전달된 메시지는 내가 친 프롬프트와 똑같이 사용량에 잡힙니다. 공짜로 오가는 신호가 아니라는 점은 알아두는 게 좋아요.
루프는 스스로 멈추고, 3주 내내 다듬어졌다
세션끼리 메시지를 주고받게 하면 누구나 걱정하는 게 무한 루프죠. 여기엔 세 겹의 제동이 걸려 있습니다. 보낸 쪽 기준 속도 제한, 짧은 시간 안에 온 똑같은 반복 메시지 폐기, 그리고 아직 안 읽은 메시지 세션당 50건 상한이에요.
기능이 들어온 뒤로도 손질이 이어졌습니다.
버전별로 이어진 보완 — 출처: 직접 작성 (공식 CHANGELOG 기반)
처음엔 다른 기계 세션에는 답장만 할 수 있었는데 2.1.225부터 먼저 말을 걸 수 있게 됐고, 2.1.232부터는 프롬프트에 @ 를 쳐서 대상 세션을 직접 지목할 수 있습니다. 제 환경은 2.1.229라 @ 지목은 아직 안 되고, 이름을 말로 알려 주면 클로드가 목록에서 찾아 보냅니다.
끄고 싶다면
받는 쪽과 보내는 쪽을 따로 끕니다. 받기는 crossSessionInbound 를 refuse 로, 보내기와 목록 조회는 SendMessage·ListAgents 를 권한 거부 규칙에 넣으면 돼요. 조직 단위로 막을 때는 관리 설정에 둘을 함께 넣습니다.
기계 밖으로 나가는 것만 막고 싶으면 isolatePeerMachines 를 true 로 둡니다. 그러면 권한 프롬프트를 건너뛰는 모드에서도 기계 밖으로 나가기 전에 승인을 묻습니다.
- 주의할 게 하나 있어요. SendMessage 를 거부하면 서브에이전트와 에이전트 팀 메시지까지 함께 끊깁니다. 같은 도구를 쓰기 때문입니다.
국내 사례는 아직입니다. 국내 기업이 이 기능을 도입했다고 밝힌 발표나 사례는 확인되지 않아요. 쓰는 사람이 직접 터미널 두 개를 띄워 시험해 보는 단계입니다.
세션을 하나로 합치는 대신, 각자 두고 필요한 사실만 건네게 됐습니다.
참고 출처
- [Anthropic] Claude Code 공식 문서 — Message your other Claude Code sessions (기능·설정·제한 전반)
- [Anthropic] Claude Code CHANGELOG (버전별 도입·보완 — 본문 타임라인의 근거)
- [Anthropic] Claude Code 설정 문서 (crossSessionInbound·dialogExpiry·isolatePeerMachines)
- 본문의 버전·터미널 출력은 직접 실행해 얻은 값입니다 (2026-08-17, Claude Code 2.1.229)