📅 11 Ağustos 2026 Lokasyon: SendMessage, ListAgents, /list-agents Anthropic docs ↗

Claude Code oturumları artık SendMessage ve ListAgents araçları aracılığıyla doğrudan birbirlerine mesaj gönderebilir; bu sayede bir oturum, görev sırasında diğerini kırıcı değişiklikler konusunda uyarabilir veya bulgularını paylaşabilir. Teslimat, crossSessionInbound ayarlarıyla kontrol edilir ve /list-agents erişilebilir oturumları gösterir.

Claude Code'un oturumları arasında mesajlaşma özelliği, bir oturumdaki Claude'un aynı makinedeki diğer Claude Code oturumlarına mesaj göndermesini, ayrıca diğer makinelerdeki veya web üzerindeki oturumlarınıza ulaşmasını sağlar. Bu özellik, Claude Code v2.1.224 veya sonraki bir sürümü gerektirir ve macOS ile Linux üzerinde çalışır. Bir oturum gereksinimleri karşıladığında, mesajlaşma etkinleştirmek için ek bir adım gerekmeden açıktır. Sağlayıcı gereksinimleri ve bir oturumun bu özelliğe sahip olup olmadığını doğrulama yöntemleri için Kullanılabilirlik bölümüne bakın.

Cross-session messaging, Claude'un bir Claude Code oturumundan diğerine mesaj iletmesini sağlar. Bir oturumdaki değişiklik, başka bir oturumun üzerine inşa ettiği şeyi bozduğunda, Claude siz fark etmeden o oturumu uyarabilir. Bir oturum, başka bir oturumun takıldığı bir soruyu çözdüğünde, Claude cevabı karşı tarafa gönderebilir. Mesaj, bir Claude'un diğerine yazdığı bir metin parçasıdır; asla konuşma geçmişi veya dosya değildir. Tüm bir konuşmayı veya bağlamını taşımak için oturumu sürdürmek (resume) gerekir.

Claude bu iş için iki araç kullanır: ListAgents (ulaşabileceği ajanları keşfetmek için) ve SendMessage (birine ismiyle mesaj iletmek için). Aynı SendMessage aracıyla Claude, tek bir oturum veya ekip içindeki subagent'lara ve agent team ekip arkadaşlarına da mesaj gönderebilir. Bu sayfa, bağımsız oturumlarınız arasındaki mesajları kapsar.

Cross-session messaging ne zaman kullanılır (When to use cross-session messaging)

Mesajlaşmayı, oturumlarınızdan birinin görev sırasında başka bir oturumun ihtiyaç duyduğu bir bilgiye sahip olduğunda kullanın. Claude, ihtiyacı gördüğünde kendi başına mesaj gönderebilir; örneğin başka bir oturumun çalışmasını etkileyen bir değişiklik yaptıktan sonra. Siz de bir mesaj göndermesini isteyebilirsiniz. Yaygın durumlar:

Kendinizin başlattığı ve yönlendirdiği bağımsız oturumlar arasında mesajlaşmayı kullanın. Claude Code'un birden çok oturumu çalıştırmanın veya bunlara ulaşmanın diğer yolları için ayrılmış özellikleri vardır; yaptığınız iş için doğru olanı kullanın:

Başka bir oturuma mesaj gönderme (Message another session)

Oturumlarınızdan biri, başka bir oturumun ihtiyaç duyduğu bir şeyi (bir bulgu, durum veya karar gibi) öğrendiğinde, Claude bunu sizin terminaller arasında kopyala-yapıştır yapmanız yerine iletir. Claude hedefi ListAgents ile keşfeder ve SendMessage ile gönderir; bu araçları asla kendiniz çağırmazsınız. Claude, sorulmadan mesaj göndermeye karar verebilir; siz de bir mesaj göndermesini isteyebilirsiniz. Kendiniz istemek için Claude'a diğer oturumun ne bilmesini veya yapmasını istediğinizi söyleyin. Bu örnek, sizin yazdığınız bir istemdir, Claude'un gönderdiği bir mesaj değil:

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

Claude gerçek mesajı kendisi yazar, bu nedenle isteminiz içeriği Claude'a bırakabilir. Bu istem, ifadeyi dikte etmeden bir özet ister ve Claude'un gönderdiği şey değişir:

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

Claude'un yazdığı mesajın alıcıda nasıl göründüğü ve bir örneği için "Bir mesaj neye benzer" bölümüne bakın.

Mesaj teslimatı (Message delivery)

Alıcı Claude, mesajı aktif bir tur sırasında araç çağrıları arasında okur; bu nedenle çalışan bir araç asla kesintiye uğramaz. Alıcı oturum boştayken, Claude Code mesajla yeni bir tur başlatır. Varsayılan ayarlara sahip iki normal etkileşimli oturum arasında Claude Code mesajı iletir. Ancak teslimat her yapılandırmada garanti edilmez. Alıcı oturum, gelen her mesajı kendi gelen denetimlerine (inbound controls) karşı kontrol eder ve kontrol üç sonuçtan biriyle biter:

İletildikten sonra mesaj, sizin yazdığınız bir istem gibi kullanıma sayılır ve alıcı Claude, tek yönlü makine-ötesi durum hariç, gönderene aynı şekilde yanıt verebilir. İzin sınırları oturum başına kalır. Claude'a, kendi oturumunda reddedilen veya engellenen ya da kendi izin ayarlarının engelleyeceği bir eylemi başka bir oturumdan asla istememesi ve bu işi size yönlendirmesi talimatı verilir. Alıcı tarafta, alıcı oturumun kendi izin istemleri ve kuralları, mesajın istediği her şey için geçerli olmaya devam eder.

Claude'un ulaşabileceği oturumları görme (See which sessions Claude can reach)

Claude bir mesajın hedefini kendi başına bulur; bu nedenle göndermesini istemeden önce herhangi bir şey çalıştırmanıza gerek yoktur. Claude'un hangi oturumlara ulaşabileceğini kendiniz görmek için /list-agents komutunu çalıştırın. Her oturumu, yanıt verdiği adla listeler ve Claude mesajı o ada yönlendirir. Liste şunları kapsar:

Claude, bu makinenin ötesindeki bir oturuma yerel bir oturumla aynı şekilde, adıyla hitap eder. Bu mesajların nasıl iletildiği için "Diğer makinelerdeki oturumlara mesaj gönderme" bölümüne bakın. Bir oturum, /rename komutu veya --name bayrağıyla belirlediğiniz ada yanıt verir. Bir ad belirlemediğinizde, Claude Code oturumu kendisi adlandırır. Etkileşimli bir oturum, çalışma dizininin klasör adından türetilen bir ad alır; örneğin myapp-3f. İki oturum aynı adla sonuçlanabilir. /list-agents çıktısı her yerel oturumun çalışma dizinini gösterir; bu, aynı adlı oturumları farklı dizinlerde çalıştıklarında ayırt etmeyi sağlar. Claude'un kendi listesi her satıra kısa bir tanımlayıcı ekler ve adlar çakıştığında adreste bunu kullanır.

Diğer makinelerdeki oturumlara mesaj gönderme (Message sessions on other machines)

Bir mesajın nasıl iletildiği ve Anthropic sunucularından geçip geçmediği, hedef oturumun nerede çalıştığına bağlıdır:

Diğer oturum nerede çalışıyor Mesaj nasıl iletiliyor
Bu makinede Oturum başına bir socket üzerinden, asla Anthropic sunucularından geçmez
Diğer makinelerinizden birinde Anthropic sunucuları üzerinden, o makinenin Remote Control bağlantısıyla ulaşır
Claude Code on the web'de Anthropic sunucuları üzerinden, doğrudan bulut oturumuna

Diğer makinelerinizden birindeki bir oturumla konuşma başlatmak, Claude Code v2.1.225 veya sonrasını ve listede görünen bir hedefi gerektirir. v2.1.225'ten önce Claude yalnızca kendisine ulaşan bir mesaja yanıt verebilirdi. Aynı makinede teslimat, özelliğin etkin olduğu her yerde çalışır. Her oturum kendini diskteki dosyalara kaydeder ve inbox socket'ini oraya bağlar. Claude yerel oturumlarınızı listelerken veya onlara mesaj gönderirken, Claude Code bu dosyaları okuyarak onları bulur; bu nedenle iki oturum yalnızca aynı dosyaları görebildiklerinde birbirine ulaşabilir. Bir container'ın kendi dosya sistemi vardır; bu nedenle içindeki bir oturum ile ana makinedeki bir oturum birbirine ulaşamaz. Aynı container içindeki iki oturum, self-hosted runner dahil, yine de birbirine mesaj gönderebilir.

Bir yanıtın bir yanıt adresine (reply address) ihtiyacı vardır ve neredeyse her mesaj bir tane taşır. Bu makinenin ötesindeki bir oturuma, gönderen oturum Remote Control'e bağlı değilken gönderilen bir mesaj, yine de Anthropic sunucularına doğrudan bir istek olarak gider, ancak yanıt adresi olmadan ulaşır; bu nedenle alıcı ona cevap veremez. Claude'a gönderirken bu söylenir. Herhangi bir mesajın bu makinenin ötesine gitmesinden önce onayınızı gerektirmek için isolatePeerMachines ayarını yapın.

Bir oturumun gelen mesajı nasıl ele aldığı (How a session treats an incoming message)

Oturum A, oturum B'ye mesaj gönderdiğinde, Claude Code B'nin Claude'una mesajın sizden değil, başka bir oturumdan geldiğini söyler ve mesajın yapabileceklerini sınırlar:

Bir mesaj neye benzer (What a message looks like)

Mesaj geldiğinde, göndereniyle birlikte konuşmada görünür; Claude turun ortasındayken sıraya alınır veya oturum boştayken hemen yeni bir tur başlatılır. Claude mesajı okuduktan sonra, Claude Code onu tek satırlık bir "Message from" satırına daraltır; Ctrl+O bunu genişletir. Bir mesaj, bir Claude'un diğerine yazdığı bir metin parçasıdır. Claude onu gönderenin adı ve bir yanıt adresiyle alır; yanıt adresi taşımayan tek yönlü makine-ötesi mesaj hariç. Siz adı ve metni görürsünüz ve alıcı oturum yalnızca o metni alır; asla gönderenin konuşma geçmişini veya dosyalarını almaz. Bu örnek, bir Claude'un diğerine yazdığı ve alıcı oturumun gördüğü bir mesajdır:

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

Gelen mesajları kontrol etme (Control inbound messages)

crossSessionInbound ayarını, bir oturumun diğer oturumlarınızdan gelen mesajlarla ne yapacağını seçmek için ayarlayın:

Değer Davranış
accept Claude Code her mesajı Claude'a iletir
hold Claude Code her mesaj için bir bildirim gösterir ve iletmez. Daha sonra bir accept uygulanırsa, öncelik kurallarına göre Claude Code bekletilen mesajları serbest bırakır
refuse Claude Code her mesajı iletmeden düşürür

Hangi değerin geçerli olduğunu görmek için ayarlar referansındaki crossSessionInbound öncelik kurallarını izleyin. Hiçbir değer uygulanmadığında, Claude Code her mesaja iki oturumun izin modlarından karar verir. İzin istemlerini atlayan oturumları bir sınıfa, diğer her oturumu diğer sınıfa gruplar. Plan modu, atlama izinleri mevcut olan oturumlarda atlama sayılır; auto, acceptEdits ve dontAsk ise istem sorma sayılır:

Varsayılan bir mesajı beklettiğinde, Claude Code alıcı oturumda bir onay iletişim kutusu açar. İletişim kutusu göndereni ve bir önizlemeyi gösterir: Approve o mesajı Claude'a iletir; Deny veya iletişim kutusunu kapatmak mesajı düşürür. dialogExpiry son tarihine kadar yanıtlanmazsa, iletişim kutusu kapanır ve Claude Code mesajı düşürür. Son tarih varsayılan olarak beş dakikadır. Bu oturumun izin modu sınıfı mesajlar bekletilirken değişirse, Claude Code gelen kuralları yeniden uygular, artık kabul ettiği mesajları iletir ve bir bildirim gösterir. Bir değişiklik mesajlar bekletilirken refuse uygulanmasını sağlarsa, Claude Code bekletilen her mesajı düşürür ve ulaşabildiği her gönderene bir reddetme bildirir. Gönderen aynı makinede çalışıyorsa, Claude Code gönderen oturuma ne olduğunu söyler. Mesaj bekletildiğinde orada bir bildirim görünür ve alıcı daha sonra mesajı ilettiğinde, reddettiğinde veya süresi dolduğunda bir takip bildirimi sonucu raporlar. Geldiğinde reddedilen bir mesaj, gönderen tarafında bildirim üretmez. Claude Code en fazla 100 mesajı, teslimat kuyruğundan ayrı olarak bekletir ve bunun ötesinde en eskisini düşürür.

Etkileşimli olmayan oturumlar (Non-interactive sessions)

Claude Code, etkileşimli bir oturum gibi claude -p oturumu için bir inbox socket bağlar; bu nedenle uzun süre çalışan bir -p işçisi mesaj alabilir ve listede görünür. Bir oturumu bare mode'da başlattığınızda, Claude Code socket'i bağlamaz; bu nedenle o oturum mesaj alamaz ve ajan listesinde görünmez. Bir -p oturumu onay iletişim kutusunu gösteremez. Gelen varsayılan orada bir mesajı beklettiğinde, Claude Code daha sonraki bir mod veya ayar değişikliği buna izin veriyorsa mesajı iletir; aksi takdirde dialogExpiry son tarihi geçtiğinde mesajı düşürür ve süre dolmasını gönderene bildirir. v2.1.225'ten önce, bekletilen bir mesaj bir -p oturumunda, gönderen bildirimi ve süre dolması olmadan bekletilmiş olarak kalırdı. Bir -p işçisinin mesajları gözetimsiz almasını sağlamak için, onu --settings değerinde crossSessionInbound değeri accept olarak başlatın. Kullanıcı ayarlarınızdaki bir accept de çalışır, ancak çalıştırdığınız her oturuma uygulanır.

Oturumun inbox socket'i (The session's inbox socket)

Bu bölümü, beklediğiniz bir oturum ajan listesinde olmadığında, bir script veya hook'un bir oturuma mesaj göndermesini istediğinizde veya sandbox'lanmış bir komut socket'e ulaşamadığında okuyun. Claude Code, cross-session messaging etkin olan her oturum için, makinedeki diğer oturumların mesaj ilettiği bir inbox socket bağlar. Socket'i işletim sistemi kullanıcınızla kısıtlar; bu nedenle paylaşılan bir makinede başka bir kullanıcının oturumları ona ulaşamaz. Hangi oturum türlerinin bir tane bağladığı için "Etkileşimli olmayan oturumlar" bölümüne bakın. Yolu iki yerde bulabilirsiniz:

Her oturum kendi socket'ini dışa aktarır; asla bir üst oturumdan miras alınmaz. Claude Code, socket üzerinde gelen mesajları diğer herhangi bir eş mesajıyla aynı gelen denetimlerden geçirir; bir istisna ve bir ön koşul dışında:

Cross-session messaging'i kısıtlama (Restrict cross-session messaging)

Mesaj başına varsayılanların ötesinde, mesajlaşmayı iki şekilde daraltabilirsiniz: herhangi bir mesajın makineden ayrılmasından önce onayınızı gerektirin veya bir oturum ya da kuruluş için mesajlaşmayı kapatın.

Makine-ötesi mesajlar için onay gerektirme (Require approval for cross-machine messages)

isolatePeerMachines değerini true olarak ayarlayın; böylece herhangi bir SendMessage'ın bu makinenin ötesindeki bir oturuma ulaşmasından önce açık onayınız gerekir:

{
  "isolatePeerMachines": true
}

Bu ayarlandığında, Claude Code, normal izin istemlerini atlayan bypassPermissions modunda bile, Claude'un bu makinenin ötesindeki bir oturuma mesajı ayrılmadan önce onayınızı ister. Herhangi bir ayar kapsamından gelen bir true uygulanır; bu nedenle depoya işlenmiş bir proje dosyası gereksinimi açabilir ancak kapatamaz. Aynı makinedeki oturumlar arasındaki mesajlar istem sormaz.

Cross-session messaging'i kapatma (Turn off cross-session messaging)

Alma ve gönderme ayrı kontrollerdir; bu nedenle ihtiyacınız olan yönü veya her ikisini kapatın. Gelen mesajlar için crossSessionInbound, buradaki Claude'un gönderebileceği veya listeleyebileceği şeyler için izin kurallarını kullanın:

Yöneticiler, yönetilen ayarlarda reddetme kurallarını refuse ile birleştirerek her iki tarafı da bir kuruluş için kapatabilir:

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

Bu yerindeyken, Claude Code yine de her oturumun inbox socket'ini bağlar, ancak üzerine gelen her mesajı Claude'a hiçbir şey iletmeden düşürür. SendMessage'ı reddetmek, aynı araç her ikisine de hizmet ettiğinden subagent'lara ve agent-team ekip arkadaşlarına mesajlaşmayı da kaldırır. Reddeden bir oturum, kendi /status komutunda veya diğer oturumların listelerinde görünür bir değişiklik göstermez; bu nedenle ayarı oturumun yapılandırmasından doğrulayın.

Kullanılabilirlik (Availability)

Cross-session messaging, Claude Code v2.1.224 veya sonrasını gerektirir. Kullanılabilirlik ayrıca platformunuza, sağlayıcınıza ve yapılandırmanıza bağlıdır:

Bir oturumu kontrol etmek için /list-agents yazın; /peers olarak da kullanılabilir. Sonuç, özelliğe sahip olmayan bir oturumu, mesajı engelleyen daha dar bir şeyin olduğu bir oturumdan ayırır; örneğin eksik bir SendMessage aracı veya reddedilen bir gönderim:

Mesajlaşma olan bir oturumda /status ayrıca oturumun kendi inbox adresini içeren bir "Peer address" satırı gösterir.

Sınırlar (Limitations)

Buradaki sınırlar, mesajlaşma kanalının kendisinin özellikleridir ve özelliğin çalıştığı her yerde geçerlidir. Platform ve sağlayıcı boşlukları için bunun yerine Kullanılabilirlik bölümüne bakın:

İlgili kaynaklar (Related resources)

Örnek kullanım senaryosu

Bir mikroservis deposu üzerinde çalıştığınızı düşünün. Terminal A'da payments-api klasöründe bir oturum, Terminal B'de ise frontend klasöründe ayrı bir oturum açtınız. İki oturum da aynı makinede çalışıyor ve Claude Code v2.1.224+ sürümünü kullanıyorsunuz.

  1. Terminal A'daki oturumda, payments-api servisine yeni bir tenant_id sütunu ekleyen bir migration yazıp çalıştırdınız. Migration başarıyla tamamlandı.
  2. Bu değişikliğin frontend tarafını etkileyebileceğini fark eden Claude, Terminal B'deki oturuma otomatik olarak bir mesaj göndermeye karar verir. ListAgents ile hedefi bulur ve SendMessage ile şu mesajı iletir: "Schema migration finished: the new column is tenant_id, and rebasing on main is safe now."
  3. Terminal B'deki oturum boşta olduğu için Claude Code, mesajla yeni bir tur başlatır. Mesaj, konuşmada "Message from" satırı olarak görünür; Ctrl+O ile genişletebilirsiniz.
  4. Terminal B'deki Claude, mesajı okur ve frontend kodunun yeni sütunu kullanıp kullanmadığını kontrol etmek için bir görev başlatır. Bu işlem, alıcı oturumun kendi izin kurallarına tabidir; örneğin bir dosya düzenlemesi gerekiyorsa size izin istemi gösterilir.
  5. Siz de kendi başınıza kontrol etmek isterseniz, Terminal B'de /list-agents komutunu çalıştırarak hangi oturumların erişilebilir olduğunu görebilirsiniz. Çıktıda payments-api oturumunun adını ve çalışma dizinini görürsünüz.
  6. Migration'ın durumunu doğrudan sormak isterseniz, Terminal A'daki Claude'a şu istemi yazabilirsiniz: "Ask the session running in my other terminal whether the migration finished." Claude mesajı kendisi yazar ve gönderir.
  7. Mesajlaşmayı kapatmak isterseniz, örneğin bir kuruluş politikası gereği, yönetilen ayarlara permissions.deny içine SendMessage ve ListAgents ekleyip crossSessionInbound değerini refuse yapabilirsiniz. Bu durumda oturumlar arası hiçbir mesaj iletilmez.