SpyBara
Go Premium

cross-session-messaging.md 2026-09-28 22:59 UTC to 2026-09-29 05:02 UTC

This page contains 86 additions and 121 deletions.

2026
Sat 12 03:02 Sun 13 21:00 Fri 18 23:58 Mon 28 22:59 Tue 29 06:02

Отправляйте сообщения другим сеансам Claude Code

Позвольте Claude перечислить и отправить сообщения другим вашим сеансам Claude Code на этом компьютере, а также достичь ваши сеансы на других компьютерах или в веб-версии.

Обмен сообщениями между сеансами позволяет Claude доставить сообщение от одного из ваших сеансов Claude Code другому. Когда изменение в одном сеансе нарушает то, над чем работает другой, Claude может предупредить этот сеанс до того, как вы это заметите. Когда один сеанс разрешает вопрос, на котором застрял другой, Claude может отправить ответ между ними.

Сообщение — это фрагмент текста, который один Claude пишет другому, никогда не история разговора отправителя или файлы. Чтобы переместить весь разговор или его контекст, возобновите сеанс вместо этого.

Когда использовать обмен сообщениями между сеансами

Используйте обмен сообщениями, когда один из ваших сеансов имеет что-то, что нужно другому сеансу во время выполнения задачи. Claude может отправить сообщение самостоятельно, когда видит необходимость, например после внесения изменения, которое влияет на работу другого сеанса, или вы можете попросить его отправить одно. Типичные случаи:

  • Передача находки: когда один сеанс обнаруживает критическое изменение или принимает решение, Claude суммирует его для сеанса, работающего над затронутой областью, вместо того чтобы вы переобъясняли это там.
  • Координация параллельных worktrees: когда сеансы работают с одним репозиторием в отдельных worktrees, Claude может сообщить другим сеансам, что было внедрено.
  • Получение статуса от долгоживущей работы: попросите миграцию или тестовый запуск отправить отчет обратно в сеанс, который вы наблюдаете, или попросите его оттуда. Если этот сеанс находится на этом компьютере, Claude также может попросить одно уведомление, когда сеанс следующий раз перейдет в режим ожидания или выйдет.
  • Отправка сообщений между машинами: достичь один из ваших сеансов на другой машине или в веб-версии.

Отправить сообщение другой сессии

Когда одна из ваших сессий узнает что-то, что нужно другой сессии, например находку, статус или решение, Claude передаёт это вместо того, чтобы вы копировали и вставляли между терминалами. Claude обнаруживает цель с помощью ListAgents и отправляет с помощью SendMessage, поэтому вы никогда не вызываете ни один из этих инструментов самостоятельно. Claude может решить отправить сообщение без просьбы, и вы также можете попросить его отправить одно.

Чтобы попросить его самостоятельно, скажите Claude, что вы хотите, чтобы другая сессия узнала или сделала. Этот пример — это подсказка, которую вы вводите, а не сообщение, которое отправляет Claude:

Спросите сессию, работающую в моём другом терминале, закончилась ли миграция

Claude пишет само сообщение, поэтому ваша подсказка может оставить содержание Claude. Эта подсказка просит резюме без диктовки его формулировки, и то, что отправляет Claude, варьируется:

Объясните то, что мы только что сделали, сессии, работающей над API платежей

Чтобы назвать цель самостоятельно, упомяните сессию в своей подсказке: введите @ и первые буквы имени сессии и выберите сессию из выпадающего списка, так же как вы @-упоминаете подагента. Требуется Claude Code v2.1.232 или позже. Claude Code вставляет упоминание, например @api-worker, и говорит Claude, какую сессию оно называет, поэтому Claude может отправить сообщение этой сессии без предварительного списка ваших сессий. Эта подсказка называет цель с упоминанием:

Дайте знать @api-worker, что миграция схемы завершена

Выпадающий список показывает ваши другие активные сессии на этой машине. Два случая требуют больше, чем первые буквы имени:

  • Сессия за пределами этой машины: облачная или сессия Remote Control появляется в выпадающем списке только после того, как Claude перечислит или отправит сообщение вашим сессиям за пределами этой машины, поэтому сначала попросите Claude их перечислить.
  • Имя с пробелом или другими символами вне букв, цифр, дефисов и подчёркиваний: введите его в двойных кавычках, например @"release notes". Когда вы выбираете сессию из выпадающего списка, Claude Code вставляет кавычки для вас.

Вы также можете ввести упоминание без средства выбора. Когда более одной активной сессии отвечает на упомянутое имя, Claude спросит вас, какую вы имеете в виду, прежде чем отправить.

О том, как выглядит сообщение, которое пишет Claude, когда оно прибывает, включая пример одного, см. как выглядит сообщение.

Доставка сообщения

Получающий Claude читает сообщение между вызовами инструментов во время активного хода, поэтому работающий инструмент никогда не прерывается. Когда получающая сессия неактивна, Claude Code начинает новый ход с сообщением.

Сообщение от другой сессии поступает как простой текст. Если оно упоминает файл или ресурс MCP с @, Claude видит упоминание в том виде, в котором оно написано, и Claude Code ничего не прикрепляет, независимо от того, начинает ли сообщение новый ход или прибывает во время одного. Claude всё ещё может открыть упомянутый путь на получающей машине со своими собственными инструментами, в соответствии с разрешениями этой сессии.

Claude Code отказывает в сообщении в следующих случаях:

Получающая сессия проверяет каждое поступающее сообщение против своих собственных входящих элементов управления, и проверка заканчивается одним из трёх результатов:

  • Доставлено: Claude Code передаёт сообщение получающему Claude.
  • Удержано: Claude Code откладывает сообщение недоставленным. Удержанное сообщение достигает Claude только когда вы его одобрите или позже режим или изменение параметров позволит это.
  • Отказано: Claude Code отбрасывает сообщение без доставки.

После доставки сообщение учитывается в использовании как подсказка, которую вы вводите, и получающий Claude может ответить отправителю так же, за исключением одностороннего кросс-машинного случая.

Границы разрешений остаются для каждой сессии. Claude инструктирован никогда не просить другую сессию о действии, которое было отклонено или заблокировано в его собственной сессии, или которое его собственные параметры разрешений заблокировали бы, и вместо этого направить эту работу вам. На стороне получения собственные подсказки разрешений получающей сессии и правила всё ещё применяются ко всему, что сообщение просит.

Получить уведомление, когда другая сессия становится неактивной

Claude может попросить одну из ваших сессий на этой машине отправить обратно одно уведомление, когда эта сессия в следующий раз станет неактивной или выйдет. Неактивность здесь означает, что сессия завершила ход без ничего в очереди. Используйте это, когда вы ждёте длительной задачи в другой сессии и хотите узнать, когда она будет готова, вместо проверки. Требуется Claude Code v2.1.236 или позже в обеих сессиях.

Попросить уведомление

Скажите Claude, на что вы ждёте. Эта подсказка просит уведомление из сессии миграции:

Скажите мне, когда сессия миграции закончит то, над чем она работает

Claude подписывается с помощью входного параметра notify_when_idle инструмента SendMessage, либо прикреплённого к сообщению, которое оно отправляет в любом случае, либо самостоятельно. Самостоятельно Claude Code подписывается без запуска хода или трат токенов в наблюдаемой сессии, и отправляет уведомление сразу же, если эта сессия уже неактивна. Прикреплённое к сообщению, Claude Code сначала доставляет сообщение и отправляет уведомление позже.

Что показывает каждая сессия

Наблюдаемая сессия показывает строку, говорящую, что другой процесс попросил быть уведомлённым, когда сессия в следующий раз станет неактивной. Запрашивающая сессия показывает уведомление как строку, называющую наблюдаемую сессию. Строка может включать время завершения хода этой сессии и однострочный статус из этого хода. Если запрашивающая сессия неактивна, Claude Code начинает новый ход с уведомлением.

Ограничения

Если уведомление не поступит в течение 12 часов, Claude Code отбрасывает подписку и говорит Claude, поэтому оно не продолжает ждать.

Входящие элементы управления каждой стороны применяются к уведомлению как к сообщению:

  • refuse на любой стороне: ничего не поступает. Наблюдаемая сессия отбрасывает запрос без записи или ответа на него, поэтому подписка истекает без ответа через 12 часов, и запрашивающая сессия с refuse никогда не подписывается.
  • hold на любой стороне: уведомление поступает с меньшим. Наблюдаемая сессия оставляет однострочный статус, и запрашивающая сессия показывает уведомление в вашей расшифровке без доставки его Claude.

Только Claude в вашем основном разговоре может подписаться, и только на ваши сессии на этой машине. Когда Claude просит уведомление от любой другой цели, такой как товарищ по команде, подагент или сессия за пределами этой машины, Claude Code отказывает во всём вызове, включая любое сообщение, прикреплённое к нему.

Посмотрите, какие сессии может достичь Claude

Claude находит цель сообщения самостоятельно, поэтому вам не нужно ничего запускать перед тем, как просить его отправить. Чтобы самостоятельно увидеть, какие сессии может достичь Claude, запустите команду /list-agents. Первая строка, если она присутствует, — это имя этой сессии, то, которое ваши другие сессии используют для отправки ей сообщений. Строки ниже — это сессии, которые может достичь Claude:

  • Подагенты: агенты, работающие внутри текущей сессии.
  • Товарищи по команде: товарищи по команде команды агентов этой сессии.
  • Ваши другие локальные сессии: сессии Claude Code, работающие на одной машине, включая фоновые сессии. Сессия появляется только когда она привязывает сокет входящего ящика.
  • Ваши облачные сессии: показаны, пока эта сессия подключена к Remote Control.
  • Ваши сессии Remote Control на других машинах: показаны, пока эта сессия подключена к Remote Control, и помечены Remote Control. Claude Code показывает offline как статус сессии, чьё соединение Remote Control разорвалось.

Пока эта сессия подключена к Remote Control, Claude Code скрывает некоторые детали ваших локальных сессий из вывода /list-agents, без изменения того, что видит сам Claude при поиске сессии для отправки сообщения:

  • Рабочие каталоги: оно оставляет рабочий каталог каждой локальной сессии.
  • Имена сессий: оно оставляет любое имя сессии, которое не может приписать человеку, поэтому строка, оставленная без имени, читается как (unnamed session).
  • Первая строка: оно оставляет строку с именем этой сессии, если вы не вводили это имя на этом терминале, с --name или с /rename и имя, с момента запуска или последнего возобновления сессии.

Когда вывод что-то перечисляет, он заканчивается примечанием, говорящим, что детали были скрыты. Запуск /rename с последующим неиспользуемым именем на клавиатуре сессии даёт этой сессии имя, которое появляется в выводе.

Сессия отвечает на имя, которое вы установили с помощью команды /rename или флага --name. Когда вы не устанавливаете его, Claude Code называет сессию сам. Для интерактивной сессии это имя, показанное в списках работающих сессий.

Когда вы переименовываете сессию или запускаете или возобновляете интерактивную с именем, которое другая активная сессия на этой машине уже использует, Claude Code оставляет имя с сессией, которая уже его имеет, и переименовывает ваше в вариант. Сессии всё ещё могут делить имя, например когда одна из них запускает более раннюю версию Claude Code или общее имя — это то, что Claude Code сгенерировал. Если эта сессия не подключена к Remote Control, Claude Code показывает рабочий каталог каждой локальной сессии в выводе /list-agents, поэтому вы можете отличить сессии с одинаковыми именами, когда они работают в разных каталогах. Claude адресует сообщение одним из двух способов, в зависимости от того, сколько активных сессий отвечают на имя:

  • Одна сессия отвечает на имя: Claude Code доставляет сообщение только по имени.
  • Несколько сессий делят имя, или Claude Code не смог проверить везде, где работают ваши сессии: Claude добавляет короткий идентификатор к каждой строке своего списка и использует идентификатор в адресе.

Отправить сообщение сессиям на других машинах

Как путешествует сообщение и проходит ли оно через серверы Anthropic, зависит от того, где работает целевая сессия:

Где работает другая сессия Как путешествует сообщение
На этой машине Через сокет для каждой сессии на macOS и Linux или именованный канал для каждой сессии на нативной Windows, никогда через серверы Anthropic
На другой из ваших машин Через серверы Anthropic, прибывая через соединение Remote Control этой машины
В облаке Через серверы Anthropic, прямо в облачную сессию

Начало разговора с сессией на другой из ваших машин требует Claude Code v2.1.225 или позже и цель, которая появляется в списке.

Вы можете отправить сообщение сессии, показанной как offline в списке, той, чьё соединение Remote Control разорвалось. Отправка проходит, но сообщение прибывает только после того, как машина этой сессии переподключится.

Сессия внутри контейнера и сессия на хосте не могут достичь друг друга. Две сессии внутри одного контейнера всё ещё могут отправлять сообщения друг другу, включая на самостоятельно размещённом раннере. Сессия внутри WSL 2 и нативная сессия Windows на одном компьютере также не могут достичь друг друга.

Если эта сессия не подключена к Remote Control, когда Claude отправляет сессии за пределами этой машины, сообщение всё ещё проходит, но без адреса ответа, поэтому получающий Claude не может ответить на него.

Чтобы требовать вашего одобрения перед отправкой любого сообщения за пределы этой машины, установите isolatePeerMachines.

Как сеанс обрабатывает входящее сообщение

Когда сеанс A отправляет сообщение сеансу B, Claude Code сообщает Claude B, что сообщение пришло от другого сеанса, а не от вас, и ограничивает то, что сообщение может делать:

  • Оно не может одобрить ничего: сообщение от другого сеанса никогда не считается вашим согласием, поэтому оно не может ответить на ожидающий запрос разрешения от вашего имени.
  • Оно не может изменить конфигурацию: Claude Code инструктирует получающего Claude никогда не изменять параметры разрешений, CLAUDE.md или другую конфигурацию, потому что другой сеанс попросил.
  • Команды не запускаются: команда в тексте сообщения, такая как /compact, прибывает как простой текст. Claude Code никогда не выполняет ее.
  • Запросы разрешений все еще срабатывают: если действие на сообщение требует разрешения, которое получающий сеанс не имеет, вы видите тот же запрос, который вы видели бы для любой другой работы.

Как выглядит сообщение

Когда сообщение прибывает, Claude Code показывает его в разговоре как тусклый однострочный предпросмотр, и строка предпросмотра остается в разговоре впоследствии. Предпросмотр несет имя отправителя и первую строку сообщения, обрезанную с … когда она длинная, такую как › Message from @api-worker: Schema migration finished (ctrl+o to expand).

Любое из этих показывает вам полный текст:

  • Нажмите Ctrl+O для открытия средства просмотра расшифровки и прочитайте полный текст под именем сеанса отправителя.
  • В сеансе, запущенном с --verbose, Claude Code показывает полный текст вместо предпросмотра.

Предпросмотр сокращает только то, что вы видите. Независимо от того, расширяете ли вы его, Claude читает полное сообщение.

Claude получает сообщение с именем отправителя и адресом ответа, за исключением одностороннего сообщения между машинами, которое не несет адреса ответа.

Этот пример — это сообщение, которое один Claude написал другому, как его полный текст читается, когда вы его расширяете:

Schema migration finished
The new column is tenant_id, and rebasing on main is safe now.

Управление входящими сообщениями

Установите crossSessionInbound для выбора того, что сеанс делает с сообщениями, прибывающими от ваших других сеансов:

Значение Поведение
accept Claude Code доставляет каждое сообщение Claude
hold Claude Code показывает уведомление для каждого сообщения и не доставляет его. Если позже применяется accept, согласно правилам приоритета, Claude Code выпускает удержанные сообщения
refuse Claude Code отбрасывает каждое сообщение без доставки

Помимо редактирования файла параметров, вы можете выбрать значение в строке /config Messages from your other sessions. Claude Code записывает выбранное вами значение в ваши пользовательские параметры. Строка требует Claude Code v2.1.232 или более поздней версии и не появляется, пока управляемые параметры или флаг --settings устанавливает ключ, так как значение пользовательских параметров не применялось бы тогда. Claude Code отклоняет сокращение /config crossSessionInbound=value для этого ключа.

Чтобы увидеть, какое значение применяется, следуйте правилам приоритета crossSessionInbound в справочнике параметров.

Когда значение не применяется, Claude Code решает для каждого сообщения из режимов разрешений двух сеансов. Он группирует сеансы, которые обходят запросы разрешений в один класс, и каждый другой сеанс в другой. Plan Mode считается обходящим в интерактивных сеансах терминала с доступными разрешениями обхода, и auto, acceptEdits и dontAsk считаются запрашивающими:

  • Получающий сеанс запрашивает разрешения: Claude Code доставляет каждое сообщение. Он удерживает одно для вашего одобрения только когда отправляющий сеанс идентифицирует себя как обходящий запросы разрешений.
  • Получающий сеанс обходит запросы разрешений: Claude Code удерживает каждое сообщение для вашего одобрения. Он доставляет одно только когда отправляющий сеанс идентифицирует себя как также обходящий.

Когда значение по умолчанию удерживает сообщение, Claude Code открывает диалог одобрения в получающем сеансе. Диалог показывает отправителя и предпросмотр:

  • Approve доставляет то одно сообщение Claude.
  • Deny, или закрытие диалога, отбрасывает его.
  • Когда диалог остается без ответа после крайнего срока dialogExpiry, Claude Code закрывает его и отбрасывает сообщение. Крайний срок по умолчанию составляет пять минут.
  • Пока терминал не прикреплен к фоновому сеансу, Claude Code оставляет диалог открытым после крайнего срока. После того как вы прикрепите, если диалог остается без ответа в течение полного периода крайнего срока, Claude Code закрывает его и отбрасывает сообщение.
  • Если класс режима разрешений этого сеанса изменяется пока сообщения удерживаются, Claude Code повторно применяет входящие правила, доставляет сообщения, которые они теперь принимают, и показывает уведомление.

Claude Code удерживает максимум 100 сообщений, и после этого отбрасывает самое старое.

Неинтерактивные сеансы

Claude Code привязывает входящий сокет для сеанса claude -p как интерактивный, поэтому долгоживущий рабочий -p может получать сообщения и появляется в списке. Когда вы запускаете сеанс в режиме bare, Claude Code не привязывает сокет, поэтому этот сеанс не может получать сообщения и не появляется в списке агентов.

Сеанс -p не может показать диалог одобрения. Когда входящее значение по умолчанию удерживает сообщение там, Claude Code хранит его для того же крайнего срока dialogExpiry, который использует диалог, пять минут по умолчанию:

  • До крайнего срока: если режим или изменение параметров позволяет сообщение, Claude Code доставляет его.
  • После крайнего срока: Claude Code отбрасывает сообщение и сообщает об истечении отправителю, которого он может достичь.

Установите dialogExpiry на "never" для сохранения сообщений, удерживаемых по умолчанию, до конца сеанса. Сообщение, удерживаемое явным параметром hold, не истекает; Claude Code доставляет его только когда позже применяется accept.

Чтобы позволить рабочему -p принимать сообщения без присмотра, запустите его с crossSessionInbound, установленным на accept в его значении --settings. accept в ваших пользовательских параметрах также работает, но применяется к каждому сеансу, который вы запускаете.

Входящий сокет сеанса

Прочитайте этот раздел, когда сеанс, который вы ожидаете, не находится в списке агентов, когда вы хотите, чтобы скрипт или hook отправил в сеанс, или когда изолированная команда не может достичь сокет.

Claude Code привязывает входящий сокет для каждого сеанса с включенным обменом сообщениями между сеансами, где другие сеансы на машине доставляют сообщения. Сокет — это сокет домена Unix на macOS и Linux, включая Linux внутри WSL 2, и именованный канал на нативной Windows. Для того, какие виды сеансов привязывают один, смотрите Неинтерактивные сеансы.

Вы можете найти путь сокета в двух местах:

  • /status показывает его в строке Peer address. Путь имеет префикс uds:.
  • Claude Code экспортирует его в hooks и команды Bash как переменную окружения CLAUDE_CODE_MESSAGING_SOCKET:
    • В сеансе, который запускается с включенным обменом сообщениями, Claude Code экспортирует переменную перед запуском любого hook, включая SessionStart.

На macOS и Linux Claude Code ограничивает сокет вашему пользователю операционной системы. На нативной Windows он вместо этого требует, чтобы каждое соединение сначала аутентифицировалось с ключом, который может прочитать только ваш пользователь операционной системы. В любом случае, на общей машине сеансы другого пользователя не могут доставить ему.

На macOS и Linux Claude Code также отказывает создавать сокет в каталоге, который он не может принять, например в каталоге, который владеет другой пользователь, и использует вместо этого приватный каталог для каждого пользователя, /tmp/cc-socks-<uid>. Когда он не может принять ни один каталог, сеанс работает без входящего: Claude Code показывает уведомление, /status показывает unavailable и причину в его строке Peer address, и журнал --debug записывает полный отказ.

Наряду с путем сокета, Claude Code экспортирует токен для каждого сеанса как CLAUDE_CODE_MESSAGING_TOKEN. Скрипт, отправляющий в собственный сокет сеанса, может отправить {"type":"auth","token":"<token>"} как первую строку своего соединения, где <token> — это значение CLAUDE_CODE_MESSAGING_TOKEN. Требует ли Claude Code строку, зависит от платформы:

  • macOS и Linux, включая WSL 2: строка необязательна. Claude Code принимает соединение с ней или без нее.
  • Нативная Windows: строка требуется. Claude Code закрывает любое соединение, чья первая строка не является действительной строкой аутентификации, и ничего не доставляет из этого соединения.

Откройте соединение только когда сообщение, которое вы отправляете, готово. Claude Code закрывает соединение, которое не отправило полную строку в течение 30 секунд, поэтому сначала захватите вывод медленной команды, а затем откройте соединение для отправки.

Claude Code запускает сообщения, прибывающие на сокет, через те же входящие элементы управления, что и любое другое одноранговое сообщение, с одним исключением и одним предварительным условием:

  • Сообщения собственного дочернего элемента: когда значение crossSessionInbound не применяется, Claude Code доставляет сообщение, которое оно проверяет, пришло из собственных дочерних процессов сеанса, таких как hook или команда Bash, отправляющая обратно в собственный сокет сеанса.
    • На Linux, включая внутри WSL 2, Claude Code может проверить по доказательству процесса даже для дочернего элемента, который уже вышел. На macOS он может проверить это только пока отправляющий процесс все еще работает, и в контейнере, где Claude Code работает как ID процесса 1, он вообще не имеет доказательства процесса. На нативной Windows он также не имеет.
    • На macOS после выхода отправляющего процесса и в контейнерах, где Claude Code работает как ID процесса 1, это доказательство процесса отсутствует, и Claude Code вместо этого проверяет дочерний элемент, который отправил экспортированный сеансом CLAUDE_CODE_MESSAGING_TOKEN в строке аутентификации, которая открыла его соединение. На нативной Windows этот токен — единственный способ, которым Claude Code проверяет сообщение собственного дочернего элемента.
    • Когда Claude Code не может проверить ни одним способом, он обрабатывает сообщение как любое другое, которое не утверждает класс разрешений, поэтому сеанс, который обходит запросы разрешений, удерживает его для вашего одобрения.
  • Изолированные сеансы: управляйте тем, может ли команда Bash достичь сокет изнутри sandbox с параметрами Unix-сокета sandbox, sandbox.network.allowAllUnixSockets и sandbox.network.allowUnixSockets.

Ограничение обмена сообщениями между сеансами

Помимо значений по умолчанию для каждого сообщения, вы можете сузить обмен сообщениями двумя способами. Требуйте вашего одобрения перед тем как любое сообщение покидает машину, или отключите обмен сообщениями для сеанса или организации.

Требование одобрения для сообщений между машинами

Установите isolatePeerMachines на true для требования вашего явного одобрения перед тем как любой SendMessage достигнет сеанс за пределами этого компьютера:

{
  "isolatePeerMachines": true
}

С этим установленным, Claude Code просит вашего одобрения перед тем как сообщение Claude сеансу за пределами этого компьютера уходит, даже в режиме bypassPermissions, который пропускает обычные запросы разрешений. true из любого области параметров применяется, поэтому проверенный файл проекта может включить требование, но не отключить его. Claude Code не запрашивает сообщения между сеансами на одной машине.

Отключение обмена сообщениями между сеансами

Получение и отправка — это отдельные элементы управления, поэтому отключите то направление, которое вам нужно, или оба. Используйте crossSessionInbound для сообщений, которые прибывают, и правила разрешений для того, что Claude здесь может отправить или перечислить:

  • Остановить получение: установите crossSessionInbound на refuse, и Claude Code отбрасывает входящие одноранговые сообщения без доставки. Из параметров проекта или локальных, refuse применяется над каждым другим источником, и из ваших пользовательских параметров применяется, если только управляемые параметры или флаг --settings не устанавливают значение.
  • Остановить отправку и перечисление: добавьте правила отказа разрешений, называющие SendMessage и ListAgents. Оба берут имя инструмента без спецификатора.

Администраторы могут отключить обе стороны для организации в управляемых параметрах, объединяя правила отказа с refuse:

{
  "permissions": {
    "deny": ["SendMessage", "ListAgents"]
  },
  "crossSessionInbound": "refuse"
}

С этим на месте, Claude Code все еще привязывает входящий сокет каждого сеанса, но отбрасывает каждое сообщение, которое прибывает на него, без доставки чего-либо Claude. Отказ SendMessage также удаляет обмен сообщениями подагентам и товарищам команды агентов, так как один и тот же инструмент служит обоим. Отказывающий сеанс не показывает видимого изменения в его собственном /status или в списках других сеансов на одной машине, поэтому для подтверждения проверьте файлы параметров, которые применяются к этому сеансу, вместо его статуса.

Доступность

Обмен сообщениями между сеансами требует Claude Code v2.1.224 или более поздней версии на macOS, Linux и WSL 2, и v2.1.234 или более поздней версии на нативной Windows. Доступность и то, какие сеансы Claude может использовать для отправки сообщений, также зависят от вашей операционной системы, поставщика и конфигурации:

  • Операционная система: доступно на macOS, Windows и Linux, включая Linux внутри WSL 2.

  • Сеансы на этом компьютере: доступно у каждого поставщика, включая Amazon Bedrock, Claude Platform на AWS, Google Cloud's Agent Platform и Microsoft Foundry, а также в сеансах, которые работают с получением флагов функций отключённым. На этих поставщиках и с отключённым получением флагов обмен сообщениями на одном компьютере требует Claude Code v2.1.248 или более поздней версии. Claude Code доставляет эти сообщения через сокет для каждого сеанса на вашем компьютере, никогда не через серверы Anthropic.

    Чтобы запретить сеансу получать их, установите crossSessionInbound в значение refuse.

  • Сеансы за пределами этого компьютера: Claude находит ваши облачные сеансы и ваши сеансы на других компьютерах из сеанса, который подключен к Remote Control, для чего требуется вход в claude.ai в качестве активной аутентификации этого сеанса и другие требования Remote Control. Claude не может найти эти сеансы с помощью ключа API или на Amazon Bedrock, Claude Platform на AWS, Google Cloud's Agent Platform и Microsoft Foundry.

Чтобы проверить сеанс, введите /list-agents, также доступно как /peers. Результат отделяет сеанс, у которого нет этой функции, от сеанса, где что-то более узкое заблокировало сообщение, например отсутствие инструмента SendMessage или отказ в отправке:

  • /list-agents не распознан: сеанс не имеет обмена сообщениями между сеансами. Пройдите через требования выше, начиная с claude --version для проверки версии.
  • /list-agents работает, но отправка не прошла: обмен сообщениями включен, и применяется что-то более узкое:
    • Правила отказа: правило отказа в разрешении удаляет инструменты SendMessage и ListAgents.
    • Входящие элементы управления: входящие элементы управления принимающего сеанса могут задержать или отбросить то, что вы ему отправляете.
    • Облачный сеанс отсутствует: облачный сеанс появляется только во время подключения этого сеанса к Remote Control.
    • Сеанс на другом компьютере отсутствует: сеанс на другом из ваших компьютеров появляется только при работе с Remote Control и подключении этого сеанса также.
    • Сеанс на другом компьютере offline: сообщение сеансу, указанному как offline, проходит, но прибывает только после переподключения компьютера этого сеанса.
    • Старый облачный или сеанс на другом компьютере отсутствует: Claude Code читает эти списки сеансов от новых к старым и останавливается после ограниченного количества страниц, поэтому Claude не может отправить сообщение сеансу, который прошёл мимо них по имени.

В сеансе с обменом сообщениями /status также показывает строку Peer address с адресом входящей папки самого сеанса, или unavailable и причину, когда Claude Code не смог установить входящую папку.

Ограничения

Ограничения здесь — это свойства самого канала обмена сообщениями и применяются везде, где функция работает. Для пробелов платформы и поставщика, смотрите Доступность вместо этого.

  • Только простой текст: Claude отправляет только простой текст между сеансами. Структурированные сообщения протокола команды агентов остаются внутри команды.
  • Размер сообщения на одной машине ограничен: Claude Code отказывает сообщение сеансу на этом компьютере один раз его сериализованная форма проходит около миллиона символов. Отказ называет точные размеры. Ничего не достигает получающего сеанса.
  • Быстрые всплески к одному сеансу отказываются на отправителе: один раз быстрый всплеск сообщений к сеансу на этом компьютере достигает того, что принимает входящий этого сеанса, Claude Code отказывает дальнейшие отправки в отправляющем сеансе. Отказ называет всплеск и сообщает Claude объединить остаток в одно сообщение или подождать.
  • Циклы сообщений ограничены: в получающем сеансе Claude Code ограничивает повторяющиеся сообщения для каждого отправителя, отбрасывает идентичные повторы, прибывающие в короком окне, и ставит в очередь максимум 50 принятых сообщений для Claude для чтения. Цикл сообщений между двумя сеансами поэтому останавливается самостоятельно.