SpyBara
Go Premium

cross-session-messaging.md 2026-10-01 23:59 UTC to 2026-10-02 19:58 UTC

This page contains 77 additions and 72 deletions.

2026
Fri 2 20:57

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

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

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

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

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

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

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

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

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

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

Ask the session running in my other terminal whether the migration finished

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

Explain what we just did to the session working on the payments API

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

Let @api-worker know the schema migration finished

В списке автодополнения отображаются ваши другие активные сессии на этом компьютере. В двух случаях первых букв имени недостаточно:

  • Сессия за пределами этого компьютера: облачная сессия или сессия 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, чего вы ждёте. Этот промпт запрашивает уведомление от сессии миграции:

Tell me when the migration session finishes what it's working on

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. Для сессии, у которой прервалось подключение Remote Control, Claude Code показывает статус offline.

Пока эта сессия подключена к 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 или новее и адресат, который отображается в списке.

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

  • offline: подключение Remote Control этой сессии прервалось. Сообщение отправляется, но приходит только после повторного подключения компьютера этой сессии.
  • can't receive cross-session messages (off in that session): обмен сообщениями недоступен в этой сессии или её значение crossSessionInbound равно refuse. Claude Code отклоняет сообщение этой сессии до того, как оно покинет этот компьютер. Результат вызова SendMessage у Claude начинается с Not sent и указывает причину. После устранения причины в этой сессии последующий список больше не показывает это состояние, и Claude может отправлять этой сессии сообщения.

Сессия внутри контейнера и сессия на хосте не могут связаться друг с другом. Две сессии внутри одного контейнера по-прежнему могут обмениваться сообщениями, в том числе на self-hosted runner. Сессия внутри 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, проходит, но прибывает только после переподключения компьютера этой сессии.
    • Облачная сессия или сессия на другом компьютере can't receive cross-session messages: сообщение сессии, указанной с этим условием, не покидает этот компьютер, а результат под SendMessage начинается с Not sent.
    • Старая облачная сессия или сессия на другом компьютере отсутствует: Claude Code читает эти списки сессий от новых к старым и останавливается после ограниченного количества страниц, поэтому Claude не может отправить сообщение по имени сессии, которая оказалась за их пределами.

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

Ограничения

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

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