Skip to main content
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.
Pesan lintas sesi memungkinkan Claude mengirimkan pesan dari salah satu sesi Claude Code Anda ke sesi lainnya. Ketika perubahan dalam satu sesi merusak apa yang sedang dibangun sesi lain, Claude dapat memperingatkan sesi tersebut sebelum Anda menyadarinya. Ketika satu sesi menyelesaikan pertanyaan yang memblokir sesi lain, Claude dapat mengirimkan jawaban lintas sesi. Pesan adalah sepotong teks yang ditulis satu Claude ke Claude lainnya, tidak pernah riwayat percakapan atau file pengirim. Untuk memindahkan seluruh percakapan atau konteksnya, lanjutkan sesi sebagai gantinya. Claude menggunakan dua alat untuk ini: 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.
Gunakan messaging antara sesi independen yang Anda mulai dan arahkan sendiri. Claude Code memiliki fitur khusus untuk setiap cara lain menjalankan atau menjangkau beberapa sesi, jadi gunakan yang dibangun untuk apa yang Anda lakukan:
  • 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 dengan ListAgents 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:
Claude menulis pesan aktual sendiri, jadi prompt Anda dapat meninggalkan konten kepada Claude. Prompt ini meminta ringkasan tanpa mendikte kata-katanya, dan apa yang Claude kirim bervariasi:
Untuk menamai target sendiri, sebutkan sesi dalam prompt Anda: ketik @ 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:
Typeahead mencantumkan sesi live lain Anda di mesin ini. Dua kasus memerlukan lebih dari huruf pertama nama:
  • 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.
Anda juga dapat mengetik penyebutan tanpa pemilih. Ketika lebih dari satu sesi live menjawab nama yang disebutkan, Claude meminta Anda sesi mana yang Anda maksud sebelum mengirim. Untuk apa pesan yang Claude tulis terlihat seperti ketika tiba, termasuk contoh satu, lihat apa pesan terlihat seperti.

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: Sesi penerima memeriksa setiap pesan yang tiba terhadap kontrol inbound miliknya sendiri, dan pemeriksaan berakhir dalam salah satu dari tiga hasil:
  • 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.
Setelah dikirim, pesan dihitung terhadap usage seperti prompt yang Anda ketik, dan Claude penerima dapat membalas ke pengirim dengan cara yang sama, kecuali dalam kasus cross-machine satu arah. Batas izin tetap per-sesi. Claude diinstruksikan untuk tidak pernah meminta sesi lain untuk tindakan yang ditolak atau diblokir di sesi miliknya sendiri, atau yang akan diblokir pengaturan izin miliknya sendiri, dan untuk mengarahkan pekerjaan itu kembali ke Anda. Di sisi penerima, prompt izin sesi penerima sendiri dan aturan masih berlaku untuk apa pun yang diminta pesan.

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:
Claude berlangganan dengan input 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:
  • refuse di 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 dengan refuse tidak pernah berlangganan.
  • hold di 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.
Hanya Claude dalam percakapan utama Anda yang dapat berlangganan, dan hanya ke sesi Anda di mesin ini. Ketika subagent atau rekan kerja agent team menetapkan 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 cloud pada 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 menunjukkan offline sebagai status sesi yang koneksi Remote Control-nya telah putus.
Sesi ini bukan salah satu baris. Jika Claude mengatasi pesan ke nama sesi ini sendiri, Claude Code menolaknya dan memberi tahu Claude target adalah sesi saat ini. Sebelum v2.1.239, daftar tidak menunjukkan nama sesi ini, dan Claude Code melaporkan pesan yang dikirim padanya sebagai agen yang tidak dapat ditemukannya. Saat sesi ini terhubung ke Remote Control, Claude Code menahan beberapa detail sesi lokal Anda dari output /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 --name atau dengan /rename dan nama, sejak Anda meluncurkan atau terakhir melanjutkan sesi.
Ketika output mencantumkan apa pun, itu berakhir dengan catatan yang mengatakan detail ditahan. Menjalankan /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+O untuk 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.
Pratinjau mempersingkat hanya apa yang Anda lihat. Apakah Anda memperluas atau tidak, Claude membaca pesan lengkap. Claude menerima pesan dengan nama pengirim dan alamat balasan, kecuali untuk pesan cross-machine satu arah, yang tidak membawa alamat balasan. Di luar nama dan alamat balasan, Claude penerima mendapatkan teks pesan, tidak pernah riwayat percakapan atau file pengirim. Message delivery mencakup penyebutan @ 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

Atur crossSessionInbound 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.
Ketika default menahan pesan, Claude Code membuka dialog persetujuan di sesi penerima. Dialog menunjukkan pengirim dan pratinjau:
  • 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 refuse berlaku saat pesan ditahan, Claude Code menjatuhkan setiap pesan yang ditahan dan melaporkan penolakan ke setiap pengirim yang dapat dijangkaunya.
Ketika pengirim adalah sesi interaktif di mesin yang sama, Claude Code menunjukkan pemberitahuan di sana ketika penerima menahan pesan, dan tindak lanjut ketika penerima kemudian mengirimkan, menolak, atau kedaluwarsa. Jika penerima menolaknya, Claude Code menunjukkan pemberitahuan di sana bahwa penerima tidak menerima pesan cross-session dan memberi tahu Claude pengirim untuk tidak menunggu atau mengirim ulang. Claude Code menahan paling banyak 100 pesan, terpisah dari antrian pengiriman, dan melampaui itu menjatuhkan yang tertua.

Sesi non-interaktif

Claude Code mengikat soket inbox untuk sesi claude -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.
Atur 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:
  • /status menunjukkannya dalam baris Peer address. Jalur diawali dengan uds:.
  • 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.
Di macOS dan Linux, Claude Code membatasi soket ke pengguna sistem operasi Anda. Di Windows native, itu malah memerlukan setiap koneksi untuk mengautentikasi terlebih dahulu dengan kunci yang hanya dapat dibaca pengguna sistem operasi Anda. Bagaimanapun, di mesin bersama sesi pengguna lain tidak dapat mengirimkan ke soket itu. Di macOS dan Linux, Claude Code juga menolak untuk membuat soket di direktori yang tidak dapat diterima, misalnya yang dimiliki pengguna lain, dan menggunakan direktori pribadi per-pengguna, /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.
Buka koneksi hanya ketika pesan yang Anda posting siap. Claude Code menutup koneksi yang belum mengirimkan baris lengkap dalam 30 detik, jadi tangkap output perintah lambat terlebih dahulu dan kemudian buka koneksi untuk mengirimkannya. Aturan own-child di bawah mengatakan kapan Claude Code berkonsultasi dengan token dan bagaimana memperlakukan pesan yang tidak dapat diverifikasi. Claude Code menjalankan pesan yang tiba di soket melalui kontrol inbound yang sama seperti pesan peer apa pun, dengan satu pengecualian dan satu prasyarat:
  • Pesan own-child: ketika tidak ada nilai crossSessionInbound yang 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_TOKEN yang 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.allowAllUnixSockets dan sandbox.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

Atur isolatePeerMachines ke true untuk memerlukan persetujuan eksplisit Anda sebelum SendMessage apa pun mencapai sesi di luar mesin ini:
Dengan ini diatur, Claude Code meminta persetujuan Anda sebelum pesan Claude ke sesi di luar mesin ini meninggalkan, bahkan dalam mode 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. Gunakan crossSessionInbound untuk pesan yang tiba, dan aturan izin untuk apa yang dapat dikirim atau didaftar Claude di sini:
  • Berhenti menerima: atur crossSessionInbound ke refuse, dan Claude Code menjatuhkan pesan peer inbound tanpa mengirimkannya. Dari pengaturan proyek atau lokal, refuse berlaku atas setiap sumber lain, dan dari pengaturan pengguna Anda berlaku kecuali pengaturan terkelola atau bendera --settings menetapkan nilai.
  • Berhenti mengirim dan membuat daftar: tambahkan aturan deny izin yang menamai SendMessage dan ListAgents. Keduanya mengambil nama tools telanjang tanpa spesifikasi.
Administrator dapat mematikan kedua sisi untuk organisasi dalam managed settings, menggabungkan aturan deny dengan refuse:
Dengan ini berlaku, Claude Code masih mengikat soket inbox setiap sesi, tetapi menjatuhkan setiap pesan yang tiba padanya tanpa mengirimkan apa pun ke Claude. Menolak 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 crossSessionInbound ke refuse.
  • 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.
Untuk memeriksa sesi, ketik /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-agents tidak dikenali: sesi tidak memiliki cross-session messaging. Bekerja melalui persyaratan di atas, dimulai dengan claude --version untuk persyaratan versi.
  • /list-agents bekerja tetapi pengiriman tidak tiba: messaging aktif, dan sesuatu yang lebih sempit berlaku:
Dalam sesi dengan messaging, /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.