Pesan lintas sesi memerlukan Claude Code v2.1.224 atau lebih baru di macOS dan Linux, termasuk Linux di dalam WSL 2. Di Windows asli, diperlukan Claude Code v2.1.234 atau lebih baru. Ketika sesi memenuhi persyaratan, pesan aktif tanpa perlu diaktifkan. Lihat Ketersediaan untuk persyaratan penyedia dan cara mengonfirmasi bahwa sesi memilikinya.
ListAgents untuk menemukan agen mana yang dapat dijangkaunya, dan SendMessage untuk mengirimkan pesan ke salah satunya berdasarkan nama. Dengan alat SendMessage yang sama, Claude juga dapat mengirim pesan ke subagen dan rekan tim tim agen dalam satu sesi atau tim. Halaman ini mencakup pesan antara sesi independen Anda.
Kapan menggunakan cross-session messaging
Gunakan messaging ketika salah satu sesi Anda memiliki sesuatu yang dibutuhkan sesi lain di tengah tugas. Claude dapat mengirimkan pesan sendiri ketika melihat kebutuhan, misalnya setelah membuat perubahan yang mempengaruhi pekerjaan sesi lain, atau Anda dapat memintanya mengirimkan satu. Kasus umum:- Serahkan temuan: ketika satu sesi menemukan perubahan yang merusak atau membuat keputusan, Claude merangkumnya untuk sesi yang bekerja di area yang terpengaruh, alih-alih Anda menjelaskannya ulang di sana.
- Koordinasikan worktrees paralel: ketika sesi bekerja di repositori yang sama di worktrees terpisah, Claude dapat memberi tahu sesi lain apa yang mendarat.
- Dapatkan status dari pekerjaan yang berjalan lama: buat migrasi atau pengujian melaporkan kembali ke sesi yang Anda tonton, atau minta sendiri dari sana. Jika sesi itu ada di mesin ini, Claude juga dapat memintanya untuk satu pemberitahuan ketika sesi berikutnya idle atau keluar.
- Kirim pesan lintas mesin: jangkau salah satu sesi Anda di mesin lain atau di web.
- Untuk melanjutkan satu percakapan di terminal lain, atau berbagi konteksnya dengan sesi baru, lanjutkan sesi
- Untuk tim sesi terkoordinasi yang Claude spawn dan supervisi, gunakan agent teams
- Untuk menonton dan mengarahkan banyak sesi dari satu tempat, gunakan agent view
- Untuk mengarahkan sesi sendiri dari ponsel atau perangkat lain, daripada membuat sesi saling mengirim pesan, gunakan Remote Control
- Untuk mendorong peristiwa eksternal, seperti hasil CI atau pesan chat, ke dalam sesi, gunakan channels
Kirim pesan ke sesi lain
Ketika salah satu sesi Anda mempelajari sesuatu yang dibutuhkan sesi lain, seperti temuan, status, atau keputusan, Claude meneruskannya alih-alih Anda menyalin-menempel antar terminal. Claude menemukan target denganListAgents dan mengirim dengan SendMessage, jadi Anda tidak pernah memanggil tool apa pun sendiri. Claude dapat memutuskan untuk mengirimkan pesan tanpa diminta, dan Anda juga dapat meminta satu.
Untuk meminta satu sendiri, beri tahu Claude apa yang ingin Anda ketahui atau lakukan sesi lain. Contoh ini adalah prompt yang Anda ketik, bukan pesan yang Claude kirim:
@ diikuti oleh huruf pertama nama sesi dan pilih sesi dari typeahead, dengan cara yang sama Anda @-mention subagent. Memerlukan Claude Code v2.1.232 atau lebih baru. Claude Code menyisipkan penyebutan, seperti @api-worker, dan memberi tahu Claude sesi mana yang dinamainya, jadi Claude dapat mengirim pesan ke sesi itu tanpa membuat daftar sesi Anda terlebih dahulu. Prompt ini menamai target dengan penyebutan:
- Sesi di luar mesin ini: sesi cloud atau Remote Control muncul di typeahead hanya setelah Claude telah membuat daftar atau mengirim pesan ke sesi Anda di luar mesin ini, jadi minta Claude untuk membuat daftar mereka terlebih dahulu.
- Nama dengan spasi atau karakter lain di luar huruf, digit, tanda hubung, dan garis bawah: ketiknya dalam tanda kutip ganda, seperti
@"release notes". Ketika Anda memilih sesi dari typeahead, Claude Code menyisipkan tanda kutip untuk Anda.
Pengiriman pesan
Claude penerima membaca pesan antara pemanggilan tools selama giliran aktif, jadi tools yang berjalan tidak pernah terputus. Ketika sesi penerima idle, Claude Code memulai giliran baru dengan pesan. Pesan dari sesi lain tiba sebagai teks biasa. Jika menyebutkan file atau MCP resource dengan@, Claude melihat penyebutan seperti yang ditulis dan Claude Code tidak melampirkan apa pun, apakah pesan memulai giliran baru atau tiba selama satu. Claude masih dapat membuka jalur yang disebutkan di mesin penerima dengan tools-nya sendiri, tunduk pada izin sesi itu. Sebelum v2.1.251, penyebutan @ dalam pesan yang memulai giliran baru melampirkan file atau MCP resource di sisi penerima.
Claude Code menolak pesan dalam kasus berikut:
- Pesan melebihi batas ukuran. Claude Code menolaknya di sesi pengirim, sebelum meninggalkan.
- Ledakan cepat ke sesi di mesin ini telah mencapai apa yang diterima inbox sesi itu. Claude Code menolak pesan lebih lanjut ke sesi itu.
- Target balasan di mesin ini gagal pemeriksaan keamanan, seperti target yang disimbolkan atau endpoint yang bukan proses yang diharapkan. Menolak mengirim pesan cross-session mencantumkan pemeriksaan ini.
- Claude mengatasi pesan ke nama sesi ini sendiri, seperti dijelaskan di bawah Lihat sesi mana yang dapat dijangkau Claude.
- Delivered: Claude Code meneruskan pesan ke Claude penerima.
- Held: Claude Code menyisihkan pesan tanpa dikirim. Pesan yang ditahan mencapai Claude hanya ketika Anda menyetujuinya atau perubahan mode atau pengaturan yang lebih baru memungkinkannya.
- Refused: Claude Code menjatuhkan pesan tanpa mengirimkannya.
Dapatkan pemberitahuan ketika sesi lain idle
Claude dapat meminta salah satu sesi Anda di mesin ini untuk mengirimkan kembali satu pemberitahuan ketika sesi itu berikutnya idle atau keluar. Idle di sini berarti sesi menyelesaikan giliran tanpa apa pun dalam antrian. Gunakan ketika Anda menunggu tugas panjang di sesi lain dan ingin mendengar ketika selesai alih-alih memeriksa. Memerlukan Claude Code v2.1.236 atau lebih baru di kedua sesi.Minta pemberitahuan
Beri tahu Claude apa yang Anda tunggu. Prompt ini meminta pemberitahuan dari sesi migrasi:notify_when_idle tools SendMessage, baik dilampirkan ke pesan yang sedang dikirimnya atau sendiri. Sendiri, Claude Code berlangganan tanpa memulai giliran atau menghabiskan token di sesi yang ditonton, dan mengirimkan pemberitahuan segera jika sesi itu sudah idle. Dilampirkan ke pesan, Claude Code mengirimkan pesan terlebih dahulu dan mengirimkan pemberitahuan nanti.
Apa yang ditunjukkan setiap sesi
Sesi yang ditonton menunjukkan baris yang mengatakan proses lain meminta untuk diberitahu ketika sesi berikutnya idle. Sesi yang bertanya menunjukkan pemberitahuan sebagai baris yang menamai sesi yang ditonton. Baris dapat mencakup waktu giliran sesi itu selesai dan status satu baris dari giliran itu. Jika sesi yang bertanya idle, Claude Code memulai giliran baru dengan pemberitahuan.Batas
Pemberitahuan adalah satu kali: Claude Code mengirimnya sekali dari sesi yang ditonton, dan tidak ada sesi yang menanyakan yang lain. Jika tidak ada pemberitahuan yang tiba dalam 12 jam, Claude Code menjatuhkan langganan dan memberi tahu Claude, jadi tidak terus menunggu. Kontrol inbound setiap sisi berlaku untuk pemberitahuan seperti pesan:refusedi kedua sisi: tidak ada yang tiba. Sesi yang ditonton menjatuhkan permintaan tanpa merekam atau menjawabnya, jadi langganan berakhir tanpa jawaban setelah 12 jam, dan sesi yang bertanya denganrefusetidak pernah berlangganan.holddi kedua sisi: pemberitahuan tiba dengan lebih sedikit. Sesi yang ditonton meninggalkan status satu baris, dan sesi yang bertanya menunjukkan pemberitahuan dalam transkrip Anda tanpa mengirimkannya ke Claude.
notify_when_idle, Claude Code tidak membuat langganan dan memberi tahu demikian. Ketika Claude meminta pemberitahuan dari agen lain apa pun, seperti rekan kerja, subagent, atau sesi di luar mesin ini, Claude Code menolak seluruh panggilan, termasuk pesan apa pun yang dilampirkan padanya, dan melaporkan penolakan ke Claude sehingga dapat mengirim ulang pesan tanpa permintaan.
Lihat sesi mana yang dapat dijangkau Claude
Claude menemukan target pesan sendiri, jadi Anda tidak perlu menjalankan apa pun sebelum memintanya mengirim. Untuk melihat sendiri sesi mana yang dapat dijangkau Claude, jalankan perintah/list-agents. Baris pertama, ketika ada, adalah nama sesi ini sendiri, yang digunakan sesi lain Anda untuk mengirim pesan padanya. Baris di bawahnya adalah sesi yang dapat dijangkau Claude:
- Subagents: agen yang berjalan di dalam sesi saat ini.
- Teammates: rekan kerja agent team sesi ini sendiri. Sebelum v2.1.239, rekan kerja tidak muncul dalam daftar, meskipun Claude sudah dapat mengirim pesan kepada mereka berdasarkan nama.
- Sesi lokal Anda yang lain: sesi Claude Code yang berjalan di mesin yang sama, termasuk background sessions. Sesi muncul hanya ketika mengikat inbox socket.
- Sesi cloud Anda: sesi Claude Code on the web Anda, ditampilkan saat sesi ini terhubung ke Remote Control. Claude Code memberi label
cloudpada mereka dalam daftar. - Sesi Remote Control Anda di mesin lain: ditampilkan saat sesi ini terhubung ke Remote Control, dan diberi label
Remote Control. Claude Code menunjukkanofflinesebagai status sesi yang koneksi Remote Control-nya telah putus.
/list-agents, tanpa mengubah apa yang Claude sendiri lihat ketika mencari sesi untuk mengirim pesan:
- Direktori kerja: meninggalkan direktori kerja setiap sesi lokal.
- Nama sesi: meninggalkan nama sesi apa pun yang tidak dapat diatribusikan ke orang, jadi baris yang tersisa tanpa nama berbunyi
(unnamed session). - Baris pertama: meninggalkan baris dengan nama sesi ini sendiri kecuali Anda mengetik nama itu di terminal ini, dengan
--nameatau dengan/renamedan nama, sejak Anda meluncurkan atau terakhir melanjutkan sesi.
/rename diikuti dengan nama yang tidak digunakan di keyboard sesi sendiri memberikan sesi itu nama yang muncul dalam output.
Claude Code membaca daftar sesi cloud dan Remote Control Anda terbaru terlebih dahulu dan berhenti setelah jumlah halaman terbatas untuk masing-masing. Jika akun Anda memiliki lebih banyak sesi itu daripada yang cocok, Claude Code tidak membuat daftar yang lebih lama, dan Claude tidak dapat mengirim pesan kepada mereka berdasarkan nama. Ketika ini terjadi, Claude Code mengatakan demikian dalam daftar, dan Claude melihat catatan yang sama ketika mengirim pesan.
Claude mengatasi sesi di luar mesin ini berdasarkan nama, sama seperti sesi lokal. Lihat Message sessions on other machines untuk bagaimana pesan itu bepergian.
Sesi menjawab nama yang Anda tetapkan dengan perintah /rename atau bendera --name. Ketika Anda tidak menetapkan satu, Claude Code memberi nama sesi itu sendiri. Untuk sesi interaktif, itu adalah nama yang ditampilkan dalam daftar sesi yang berjalan.
Ketika Anda mengganti nama sesi, Claude Code juga memperbarui catatan bersama yang digunakan sesi lain Anda untuk mencari nama sesi. Jika tidak dapat memperbarui catatan itu, itu memperingatkan Anda dalam output /rename bahwa sesi lain mungkin masih menunjukkan nama lama. Jalankan sesi dengan --debug, dan Claude Code mencatat penyebab pembaruan yang gagal.
Ketika Anda mengganti nama sesi, atau memulai atau melanjutkan sesi interaktif, dengan nama yang sudah digunakan sesi live lain di mesin ini, Claude Code meninggalkan nama dengan sesi yang sudah memilikinya dan mengganti nama Anda menjadi varian. Sesi masih dapat berbagi nama, misalnya ketika salah satunya menjalankan versi Claude Code yang lebih awal atau nama bersama adalah yang dihasilkan Claude Code. Kecuali sesi ini terhubung ke Remote Control, Claude Code menunjukkan direktori kerja setiap sesi lokal dalam output /list-agents, jadi Anda dapat membedakan sesi dengan nama yang sama ketika berjalan di direktori berbeda. Claude mengatasi pesan dalam salah satu dari dua cara, tergantung pada berapa banyak sesi live yang menjawab nama:
- Satu sesi menjawab nama: Claude Code mengirimkan pesan hanya pada nama.
- Beberapa sesi berbagi nama, atau Claude Code tidak dapat memeriksa di mana pun sesi Anda berjalan: Claude menambahkan pengidentifikasi pendek ke setiap baris daftarnya dan menggunakan pengidentifikasi dalam alamat.
Kirim pesan ke sesi di mesin lain
Bagaimana pesan bepergian, dan apakah melewati server Anthropic, tergantung di mana sesi target berjalan:
Memulai percakapan dengan sesi di mesin lain Anda memerlukan Claude Code v2.1.225 atau lebih baru dan target yang muncul dalam daftar. Sebelum v2.1.225, Claude hanya dapat membalas pesan yang tiba dari satu.
Pengiriman mesin yang sama bekerja di mana pun fitur diaktifkan. Setiap sesi mendaftarkan dirinya dalam file di disk. Ketika Claude membuat daftar atau mengirim pesan ke sesi lokal Anda, Claude Code membaca file itu untuk menemukan sesi, jadi dua sesi dapat menjangkau satu sama lain hanya ketika dapat melihat file yang sama.
Kontainer memiliki sistem file sendiri, jadi sesi di dalamnya dan sesi di host tidak dapat menjangkau satu sama lain. Dua sesi di dalam kontainer yang sama masih dapat mengirim pesan satu sama lain, termasuk di self-hosted runner. Sesi di dalam WSL 2 dan sesi Windows native di komputer yang sama juga tidak dapat menjangkau satu sama lain, karena mendaftarkan di bawah direktori home berbeda dan mendengarkan pada jenis soket berbeda.
Saat sesi ini terhubung ke Remote Control, ketika Anda mengirim pesan ke sesi di mesin lain Anda, Claude Code menunjukkan pesan dalam percakapan sesi itu di bawah nama Remote Control sesi ini. Claude di mesin itu dapat membalas nama itu. Misalnya, ketika sesi ini terhubung ke Remote Control sebagai
laptop-graceful-unicorn dan Anda mengirim pesan ke desktop Anda, Anda melihat pesan di sesi desktop di bawah laptop-graceful-unicorn.
Jika sesi ini tidak terhubung ke Remote Control ketika Claude mengirim ke sesi di luar mesin ini, pesan masih melewati, tetapi tanpa alamat balasan, jadi Claude penerima tidak dapat menjawabnya. Claude diberitahu demikian ketika mengirim.
Untuk memerlukan persetujuan Anda sebelum pesan apa pun melampaui mesin ini, atur isolatePeerMachines.
Bagaimana sesi memperlakukan pesan yang masuk
Ketika sesi A mengirim pesan ke sesi B, Claude Code memberi tahu Claude B bahwa pesan berasal dari sesi lain, bukan dari Anda, dan membatasi apa yang dapat dilakukan pesan:- Tidak dapat menyetujui apa pun: pesan dari sesi lain tidak pernah dihitung sebagai persetujuan Anda, jadi tidak dapat menjawab prompt izin yang tertunda atas nama Anda.
- Tidak dapat mengubah konfigurasi: Claude Code menginstruksikan Claude penerima untuk tidak pernah mengubah pengaturan izin,
CLAUDE.md, atau konfigurasi lain karena sesi lain meminta. - Perintah tidak berjalan: perintah dalam teks pesan, seperti
/compact, tiba sebagai teks biasa. Claude Code tidak pernah menjalankannya. - Prompt izin masih aktif: jika bertindak atas pesan memerlukan izin yang tidak dimiliki sesi penerima, Anda melihat prompt yang sama seperti untuk pekerjaan lain apa pun.
Apa pesan terlihat seperti
Ketika pesan tiba, Claude Code menunjukkannya dalam percakapan sebagai pratinjau satu baris yang redup, dan baris pratinjau tetap dalam percakapan sesudahnya. Pratinjau membawa nama pengirim dan baris pertama pesan, dipotong dengan… ketika panjang, seperti › Message from @api-worker: Schema migration finished (ctrl+o to expand). Sebelum v2.1.247, Claude Code menunjukkan pesan yang tiba secara penuh alih-alih pratinjau.
Salah satu dari ini menunjukkan Anda teks lengkap:
- Tekan
Ctrl+Ountuk membuka transcript viewer dan baca teks lengkap di bawah nama sesi pengirim. - Dalam sesi yang dimulai dengan
--verbose, Claude Code menunjukkan teks lengkap alih-alih pratinjau.
@ dalam teks.
Pesan yang ditulis subagent tiba di bawah nama sesi pengirim, dengan subagent diidentifikasi dalam teks pesan. Balasan padanya mencapai percakapan utama sesi itu, bukan subagent.
Contoh ini adalah pesan yang ditulis satu Claude ke Claude lain, seperti teks lengkapnya dibaca ketika Anda memperluas:
Kontrol pesan yang masuk
AturcrossSessionInbound untuk memilih apa yang dilakukan sesi dengan pesan yang tiba dari sesi lain Anda:
Di luar mengedit file pengaturan, Anda dapat memilih nilai dalam baris
/config Messages from your other sessions. Claude Code menulis nilai yang Anda pilih ke pengaturan pengguna Anda. Baris memerlukan Claude Code v2.1.232 atau lebih baru dan tidak muncul saat pengaturan terkelola atau bendera --settings menetapkan kunci, karena nilai pengaturan pengguna tidak akan berlaku kemudian. Claude Code menolak shorthand /config crossSessionInbound=value untuk kunci ini.
Untuk melihat nilai mana yang berlaku, ikuti aturan prioritas crossSessionInbound dalam referensi pengaturan. Ketika tidak ada nilai yang berlaku, Claude Code memutuskan per pesan dari mode izin dua sesi. Ini mengelompokkan sesi yang melewati prompt izin ke dalam satu kelas, dan setiap sesi lain ke kelas lain. Plan mode dihitung sebagai melewati dalam sesi dengan izin bypass tersedia, dan auto, acceptEdits, dan dontAsk dihitung sebagai prompting:
- Sesi penerima meminta izin: Claude Code mengirimkan setiap pesan. Ini menahan satu untuk persetujuan Anda hanya ketika sesi pengirim mengidentifikasi dirinya sebagai melewati prompt izin.
- Sesi penerima melewati prompt izin: Claude Code menahan setiap pesan untuk persetujuan Anda. Ini mengirimkan satu hanya ketika sesi pengirim juga mengidentifikasi dirinya sebagai melewati.
- Approve mengirimkan pesan itu ke Claude.
- Deny, atau menutup dialog, menjatuhkannya.
- Ketika dialog tetap tanpa jawaban melewati batas waktu
dialogExpiry, Claude Code menutupnya dan menjatuhkan pesan. Batas waktu default ke lima menit. Saat tidak ada terminal yang terpasang ke background session, Claude Code meninggalkan dialog terbuka melewati batas waktu. Setelah Anda melampirkan, Claude Code menutup dialog dan menjatuhkan pesan hanya jika tetap tanpa jawaban untuk periode batas waktu penuh. - Jika kelas mode izin sesi ini berubah saat pesan ditahan, Claude Code menerapkan kembali aturan inbound, mengirimkan pesan yang sekarang diterima, dan menunjukkan pemberitahuan.
- Jika perubahan pengaturan membuat
refuseberlaku saat pesan ditahan, Claude Code menjatuhkan setiap pesan yang ditahan dan melaporkan penolakan ke setiap pengirim yang dapat dijangkaunya.
Sesi non-interaktif
Claude Code mengikat soket inbox untuk sesiclaude -p seperti sesi interaktif, jadi pekerja -p yang berjalan lama dapat menerima pesan dan muncul dalam daftar. Ketika Anda memulai sesi dalam bare mode, Claude Code tidak mengikat soket, jadi sesi itu tidak dapat menerima pesan dan tidak muncul dalam daftar agen.
Sesi -p tidak dapat menunjukkan dialog persetujuan. Ketika default inbound menahan pesan di sana, Claude Code menyimpannya untuk batas waktu dialogExpiry yang sama yang digunakan dialog, lima menit secara default:
- Sebelum batas waktu: jika mode atau perubahan pengaturan memungkinkan pesan, Claude Code mengirimkannya.
- Melewati batas waktu: Claude Code menjatuhkan pesan dan melaporkannya sebagai kedaluwarsa ke pengirim yang dapat dijangkaunya.
dialogExpiry ke "never" untuk menyimpan pesan default-held sampai sesi berakhir. Pesan yang ditahan oleh pengaturan hold eksplisit tidak kedaluwarsa; Claude Code mengirimkannya hanya ketika accept kemudian berlaku.
Ketika sesi berakhir dengan pesan masih ditahan, Claude Code melaporkannya sebagai kedaluwarsa ke setiap pengirim yang dapat dijangkaunya. Sebelum v2.1.225, tidak ada batas waktu yang berlaku dalam sesi -p: pesan yang ditahan tetap ditahan kecuali perubahan mode izin selama jalankan mengirimkannya, dan sesi yang berakhir dengan pesan yang ditahan melaporkan tidak ada kepada pengirim mereka.
Untuk membiarkan pekerja -p mengambil pesan tanpa pengawasan, mulai dengan crossSessionInbound diatur ke accept dalam nilai --settings miliknya. accept dalam pengaturan pengguna Anda juga bekerja tetapi berlaku untuk setiap sesi yang Anda jalankan.
Soket inbox sesi
Baca bagian ini ketika sesi yang Anda harapkan tidak ada dalam daftar agen, ketika Anda ingin script atau hook untuk memposting ke dalam sesi, atau ketika perintah sandboxed tidak dapat menjangkau soket. Claude Code mengikat soket inbox untuk setiap sesi dengan cross-session messaging diaktifkan, di mana sesi lain di mesin mengirimkan pesan. Soket adalah soket domain Unix di macOS dan Linux, termasuk Linux di dalam WSL 2, dan pipa bernama di Windows native. Untuk jenis sesi mana yang mengikat satu, lihat Non-interactive sessions. Anda dapat menemukan jalur soket di dua tempat:/statusmenunjukkannya dalam barisPeer address. Jalur diawali denganuds:.- Claude Code mengekspornya ke hooks dan perintah Bash sebagai variabel lingkungan
CLAUDE_CODE_MESSAGING_SOCKET:- Dalam sesi yang dimulai dengan messaging aktif, Claude Code mengekspor variabel sebelum hook apa pun berjalan, termasuk
SessionStart. - Setiap sesi mengekspor soketnya sendiri, tidak pernah yang diwarisi dari sesi induk.
- Dalam sesi yang dimulai dengan messaging aktif, Claude Code mengekspor variabel sebelum hook apa pun berjalan, termasuk
/tmp/cc-socks-<uid>, sebagai gantinya. Ketika tidak dapat menerima direktori apa pun, sesi berjalan tanpa inbox: Claude Code menunjukkan pemberitahuan, /status menunjukkan unavailable dan alasan dalam baris Peer address miliknya, dan log --debug mencatat penolakan penuh.
Bersama jalur soket, Claude Code mengekspor token per-sesi sebagai CLAUDE_CODE_MESSAGING_TOKEN. Script yang memposting ke soket sesinya sendiri dapat mengirimkan {"type":"auth","token":"<token>"} sebagai baris pertama koneksinya, di mana <token> adalah nilai CLAUDE_CODE_MESSAGING_TOKEN. Apakah Claude Code memerlukan baris tergantung pada platform:
- macOS dan Linux, termasuk WSL 2: baris bersifat opsional. Claude Code menerima koneksi dengan atau tanpanya.
- Windows native: baris diperlukan. Claude Code menutup koneksi apa pun yang baris pertamanya bukan baris auth yang valid dan tidak mengirimkan apa pun dari koneksi itu.
- Pesan own-child: ketika tidak ada nilai
crossSessionInboundyang berlaku, Claude Code mengirimkan pesan yang diverifikasi berasal dari proses anak sesi itu sendiri, seperti hook atau perintah Bash memposting kembali ke soket sesinya sendiri.- Di Linux, termasuk di dalam WSL 2, Claude Code dapat memverifikasi dengan bukti proses bahkan untuk anak yang sudah keluar. Di macOS dapat memverifikasi dengan cara itu hanya saat proses posting masih berjalan, dan dalam kontainer di mana Claude Code berjalan sebagai ID proses 1 tidak memiliki bukti proses sama sekali. Di Windows native juga tidak memiliki.
- Di macOS setelah proses posting keluar dan dalam kontainer di mana Claude Code berjalan sebagai ID proses 1, bukti proses itu hilang, dan Claude Code malah memverifikasi anak yang mengirimkan
CLAUDE_CODE_MESSAGING_TOKENyang diekspor sesi dalam baris auth yang membuka koneksinya. Di Windows native, token itu adalah satu-satunya cara Claude Code memverifikasi pesan own-child. - Ketika Claude Code tidak dapat memverifikasi dengan cara apa pun, itu memperlakukan pesan seperti yang lain yang tidak menyatakan kelas izin, jadi sesi yang melewati prompt izin menahan untuk persetujuan Anda.
- Sesi sandboxed: kontrol apakah perintah Bash dapat menjangkau soket dari dalam sandbox dengan pengaturan soket Unix sandbox,
sandbox.network.allowAllUnixSocketsdansandbox.network.allowUnixSockets.
Batasi cross-session messaging
Di luar default per-pesan, Anda dapat mempersempit messaging dalam dua cara. Memerlukan persetujuan Anda sebelum pesan apa pun meninggalkan mesin, atau matikan messaging untuk sesi atau organisasi.Memerlukan persetujuan untuk pesan cross-machine
AturisolatePeerMachines ke true untuk memerlukan persetujuan eksplisit Anda sebelum SendMessage apa pun mencapai sesi di luar mesin ini:
bypassPermissions, yang melewati prompt izin biasa. true dari cakupan pengaturan apa pun berlaku, jadi file proyek yang diperiksa dapat mengaktifkan persyaratan tetapi tidak mematikannya. Claude Code tidak meminta pesan antara sesi di mesin yang sama.
Matikan cross-session messaging
Menerima dan mengirim adalah kontrol terpisah, jadi matikan arah mana pun yang Anda butuhkan, atau keduanya. GunakancrossSessionInbound untuk pesan yang tiba, dan aturan izin untuk apa yang dapat dikirim atau didaftar Claude di sini:
- Berhenti menerima: atur
crossSessionInboundkerefuse, dan Claude Code menjatuhkan pesan peer inbound tanpa mengirimkannya. Dari pengaturan proyek atau lokal,refuseberlaku atas setiap sumber lain, dan dari pengaturan pengguna Anda berlaku kecuali pengaturan terkelola atau bendera--settingsmenetapkan nilai. - Berhenti mengirim dan membuat daftar: tambahkan aturan deny izin yang menamai
SendMessagedanListAgents. Keduanya mengambil nama tools telanjang tanpa spesifikasi.
refuse:
SendMessage juga menghapus messaging ke subagents dan rekan kerja agent-team, karena tools yang sama melayani keduanya. Sesi yang menolak menunjukkan tidak ada perubahan yang terlihat, dalam /status miliknya sendiri atau dalam daftar sesi lain di mesin yang sama, jadi untuk mengonfirmasinya, periksa file pengaturan yang berlaku untuk sesi itu daripada statusnya.
Availability
Cross-session messaging memerlukan Claude Code v2.1.224 atau lebih baru di macOS, Linux, dan WSL 2, dan v2.1.234 atau lebih baru di Windows native. Ketersediaan, dan sesi mana yang dapat dikirim pesan Claude, juga tergantung pada sistem operasi, penyedia, dan konfigurasi Anda:- Sistem operasi: tersedia di macOS, Windows, dan Linux, termasuk Linux di dalam WSL 2.
-
Sesi di mesin ini: tersedia di setiap penyedia, termasuk Amazon Bedrock, Claude Platform on AWS, Google Cloud’s Agent Platform, dan Microsoft Foundry, dan dalam sesi yang berjalan dengan feature-flag fetching mati. Di penyedia itu, dan dengan flag fetching mati, messaging mesin yang sama memerlukan Claude Code v2.1.248 atau lebih baru. Claude Code mengirimkan pesan ini melalui soket per-sesi di mesin Anda, tidak pernah melalui server Anthropic.
Untuk menghentikan sesi dari menerimanya, atur
crossSessionInboundkerefuse. - Sesi di luar mesin ini: Claude menemukan sesi Claude Code on the web Anda dan sesi Anda di mesin lain dari sesi yang terhubung ke Remote Control, yang memerlukan sign-in claude.ai sebagai autentikasi aktif sesi ini dan persyaratan Remote Control lainnya. Claude tidak dapat menemukan sesi itu dengan API key atau di Amazon Bedrock, Claude Platform on AWS, Google Cloud’s Agent Platform, dan Microsoft Foundry.
/list-agents, juga tersedia sebagai /peers. Hasilnya memisahkan sesi yang tidak memiliki fitur dari sesi di mana sesuatu yang lebih sempit memblokir pesan, seperti tools SendMessage yang hilang atau pengiriman yang ditolak:
/list-agentstidak dikenali: sesi tidak memiliki cross-session messaging. Bekerja melalui persyaratan di atas, dimulai denganclaude --versionuntuk persyaratan versi./list-agentsbekerja tetapi pengiriman tidak tiba: messaging aktif, dan sesuatu yang lebih sempit berlaku:- Aturan deny: aturan deny izin menghapus tools
SendMessagedanListAgents. - Kontrol inbound: kontrol inbound sesi penerima dapat menahan atau menjatuhkan apa yang Anda kirimkan.
- Sesi cloud hilang: sesi cloud muncul hanya saat sesi ini terhubung ke Remote Control.
- Sesi mesin lain hilang: sesi di mesin lain Anda muncul hanya ketika berjalan dengan Remote Control dan sesi ini juga terhubung.
- Sesi cloud atau mesin lain yang lebih lama hilang: Claude Code membaca daftar sesi itu terbaru terlebih dahulu dan berhenti setelah jumlah halaman terbatas, jadi Claude tidak dapat mengirim pesan ke sesi yang jatuh melewati mereka berdasarkan nama.
- Memulai percakapan: Message sessions on other machines mencakup memulai percakapan dengan sesi di luar mesin ini.
- Aturan deny: aturan deny izin menghapus tools
/status juga menunjukkan baris Peer address dengan alamat inbox sesi itu sendiri, atau unavailable dan alasan ketika Claude Code tidak dapat mengatur inbox.
Limitations
Batas di sini adalah properti dari saluran messaging itu sendiri dan berlaku di mana pun fitur berjalan. Untuk celah platform dan penyedia, lihat Availability sebagai gantinya.- Teks biasa saja: Claude mengirimkan hanya teks biasa lintas sesi. Pesan protokol agent team terstruktur tetap dalam tim.
- Ukuran pesan mesin yang sama dibatasi: Claude Code menolak pesan ke sesi di mesin ini setelah bentuk serialnya melewati sekitar satu juta karakter. Penolakan menamai ukuran yang tepat. Tidak ada yang mencapai sesi penerima.
- Ledakan cepat ke satu sesi ditolak di pengirim: setelah ledakan cepat pesan ke sesi di mesin ini mencapai apa yang diterima inbox sesi itu, Claude Code menolak pengiriman lebih lanjut dalam sesi pengirim. Penolakan menamai ledakan dan memberi tahu Claude untuk mengelompokkan sisanya menjadi satu pesan atau menunggu. Sebelum v2.1.236, Claude Code melaporkan pengiriman itu sebagai dikirim sementara sesi penerima menjatuhkannya.
- Loop pesan dibatasi: dalam sesi penerima, Claude Code membatasi laju pesan berulang per pengirim, menjatuhkan pengulangan identik yang tiba dalam jendela pendek, dan antrian paling banyak 50 pesan yang diterima untuk dibaca Claude. Loop pesan antara dua sesi karena itu berhenti sendiri. Ketika batas laju, pemeriksaan pengulangan, atau batas antrian menjatuhkan pesan dari sesi interaktif di mesin ini, Claude Code memberi tahu sesi itu mana yang menjatuhkannya dan memberi tahu Claude-nya untuk tidak mengirim ulang segera.
Sumber daya terkait
- Subagents dan agent teams: messaging dalam satu sesi atau tim
- Background agents: dispatch dan monitor sesi paralel yang mungkin Anda kirim pesan
- Remote Control: hubungkan sesi ini untuk menjangkau sesi Anda di mesin lain
- Settings:
crossSessionInbound,isolatePeerMachines, dandialogExpiry - Permission modes: mode di balik default inbound dua kelas
- Tools reference: baris
ListAgentsdanSendMessagedalam tabel tools - Run agents in parallel: bandingkan cara Claude Code menjalankan beberapa agen