운영 노하우
Claude Code v2.1.224부터 내가 띄워둔 세션끼리 서로 메시지를 보낼 수 있습니다. 한쪽에서 알아낸 사실을 다른 창에 가서 다시 설명하던 일이 없어집니다. 다만 오가는 것은 글 한 토막뿐이고, 대화 기록과 파일은 넘어가지 않습니다. macOS와 리눅스 전용이며 네이티브 윈도우는 아직 지원하지 않습니다.
오가는 것은 대화가 아니라 글 한 토막입니다
가장 먼저 짚어야 할 것은 무엇이 오가는지입니다. 공식 문서의 정의는 명확합니다. 오가는 것은 한쪽 Claude가 다른 쪽 Claude에게 써서 보내는 글 한 토막이고, 대화 기록도 파일도 아닙니다. 보낸 세션이 그동안 무엇을 했고 어떤 파일을 열었는지는 전혀 넘어가지 않습니다. 받는 쪽에는 아래와 같은 한 줄이 보낸 세션 이름과 함께 도착합니다.
이 구분이 실무에서 중요합니다. 대화 맥락 자체를 옮기고 싶다면 이 기능이 아니라 세션 이어받기를 써야 합니다. 저쪽 세션이 알아서 다 알고 있으리라 기대하면 어긋납니다.
도구를 직접 부를 일은 없습니다
Claude가 알아서 ListAgents로 다른 세션을 찾고 SendMessage로 보냅니다. 사용자는 평소처럼 한국말로 시키면 됩니다. "다른 터미널에서 돌고 있는 세션한테 마이그레이션 끝났는지 물어봐줘" 정도면 충분합니다. 보낼 문장을 직접 불러줄 필요도 없어서, "방금 우리가 한 작업을 결제 API 작업 중인 세션한테 설명해줘"라고만 해도 Claude가 문장을 알아서 씁니다.
받는 쪽을 콕 집으려면 @를 치고 세션 이름 앞글자를 입력하면 후보 목록이 뜹니다. 서브에이전트를 부르는 방식과 같고 v2.1.232 이상에서 됩니다. @만 치고 멈추면 목록이 나오지 않으니 최소 한 글자는 입력해야 합니다. 지금 어떤 세션에 닿을 수 있는지 직접 보려면 /list-agents를 치면 되고, /peers도 같은 명령입니다.
시키지 않아도 보냅니다, 그래서 방어선을 알아야 합니다
Claude는 스스로 판단해서 메시지를 보낼 수 있습니다. 한쪽에서 한 변경이 다른 세션 작업에 영향을 준다고 보면 알아서 알려줍니다. 편한 기능이지만, 내가 모르는 사이에 세션 간에 말이 오갈 수 있다는 뜻이기도 합니다. 그래서 받는 쪽에 걸려 있는 제한을 알아두는 편이 좋습니다. 공식 문서가 못 박아둔 항목은 네 가지입니다.
첫째, 승인을 대신하지 못합니다. 다른 세션이 보낸 메시지는 사용자의 동의로 취급되지 않아서 대기 중인 권한 승인 창을 대신 눌러줄 수 없습니다. 둘째, 설정을 바꾸지 못합니다. 메시지가 시킨다고 권한 설정이나 CLAUDE.md를 고치지 않도록 지시돼 있습니다. 셋째, 명령어가 실행되지 않습니다. 메시지 안에 슬래시 명령이 적혀 있어도 그냥 글자로 도착합니다. 넷째, 권한 창은 그대로 뜹니다. 메시지대로 움직이는 데 권한이 필요하면 평소와 똑같이 승인 창이 뜹니다.
정리하면 메시지는 지시가 아니라 정보 전달입니다. 권한의 경계는 세션마다 따로 유지됩니다.
받는 방식은 세 가지 중에 고릅니다
메시지를 어떻게 받을지는 crossSessionInbound 설정으로 정합니다. accept는 도착한 메시지를 그대로 전달하고, hold는 알림만 띄운 뒤 붙잡아뒀다가 나중에 허용될 때 풀어주며, refuse는 전달 없이 버립니다. 설정 파일을 직접 열지 않아도 /config의 "Messages from your other sessions" 항목에서 고를 수 있고, 이 항목은 v2.1.232 이상에서 보입니다.
값을 아무것도 정하지 않으면 두 세션의 권한 모드를 보고 자동으로 판단합니다. 받는 쪽이 권한 승인을 받는 모드면 메시지를 전달하고, 보낸 쪽이 승인을 건너뛰는 모드일 때만 승인을 요청합니다. 반대로 받는 쪽이 승인을 건너뛰는 모드면 기본적으로 붙잡아두고 사용자 승인을 받습니다. 보류된 승인 창을 기본 5분 안에 누르지 않으면 그 메시지는 버려집니다. 받기를 아예 끄려면 refuse로 두고, 보내기까지 막으려면 SendMessage와 ListAgents에 거부 규칙을 걸면 됩니다.
기기를 넘어가면 지나가는 길이 달라집니다
여기가 실무에서 갈리는 지점입니다. 같은 컴퓨터 안의 세션끼리는 세션별 소켓으로 직접 오가며 Anthropic 서버를 거치지 않습니다. 반면 내 다른 컴퓨터의 세션으로 보낼 때는 Anthropic 서버를 거쳐 그 기기의 Remote Control 연결로 도착하고, Claude Code 웹의 클라우드 세션도 서버를 경유합니다. 기기 밖으로 나가는 메시지마다 승인을 받고 싶으면 isolatePeerMachines를 true로 두면 됩니다.
한 가지 덧붙이면 컨테이너 안팎은 서로 보이지 않습니다. 세션들은 디스크에 자기를 등록해두고 그 파일을 읽어 서로를 찾는데, 컨테이너는 파일 시스템이 따로라서 호스트 세션과 컨테이너 세션은 닿지 않습니다. 같은 컨테이너 안의 두 세션끼리는 됩니다.
안 될 때는 확인 순서가 정해져 있습니다
/list-agents가 아예 인식되지 않으면 기능 자체가 없는 세션입니다. claude --version부터 확인하면 됩니다. 조건은 버전 v2.1.224 이상, 운영체제는 macOS와 리눅스(WSL 2 안의 리눅스 포함)이며 네이티브 윈도우는 지원하지 않습니다. Amazon Bedrock, AWS의 Claude Platform, Google Cloud의 Agent Platform, Microsoft Foundry에서도 제공되지 않습니다. DISABLE_TELEMETRY나 DO_NOT_TRACK 같은 환경변수로 기능 플래그 조회를 꺼두면 이 기능도 함께 꺼집니다.
/list-agents는 되는데 보낸 것이 닿지 않는다면 원인이 더 좁습니다. 거부 규칙이 걸렸거나, 받는 쪽 설정이 붙잡아뒀거나, 클라우드와 다른 기기 세션이라면 Remote Control 연결이 빠졌을 수 있습니다. 메시지가 무한히 오가는 상황은 걱정하지 않아도 됩니다. 같은 발신자의 반복 메시지에는 속도 제한이 걸리고 짧은 시간 안의 동일 메시지는 버려져서, 두 세션 사이의 메시지 고리는 저절로 멈춥니다.
이 기능이 대체하는 것은 터미널 사이를 오가며 같은 말을 두 번 타이핑하던 시간, 딱 그만큼입니다. 대화 맥락을 통째로 옮기려면 세션 이어받기가 맞고, Claude가 직접 팀을 꾸려 지휘하게 하려면 에이전트 팀이, 여러 세션을 한 화면에서 보려면 에이전트 뷰가 따로 있습니다. 오래 걸리는 작업을 한 세션에 맡겨두고 다른 클라이언트 작업을 하다가 한마디로 진행 상황을 확인하는 것만으로도, 창을 옮기느라 끊기던 흐름이 눈에 띄게 줄어듭니다.
누끼토끼는 아임웹·식스샵·카페24 제작을 1인 체제로 운영하면서 Claude Code를 매일 실무에 씁니다. 이런 도구 변화가 실제 작업 순서를 어떻게 바꾸는지는 누끼토끼가 운영하는 강의와 칼럼에서 계속 정리하고 있습니다.