SSD Nodes Learn Hosting plans →
Rehberler Matt ConnorYazan Matt Connor · Güncellendi 2026-09-12

Claude Code oturumu nasıl devam ettirilir?

Claude Code oturumlarını resume komutuyla kaldığınız yerden sürdürün. Yerel makinenizde saklanan düz metin dökümlerine nasıl erişeceğinizi ve geçmiş kayıtları bulmayı öğrenin.

Claude Code oturumu nasıl devam ettirilir

Bir Claude Code oturumuna devam etmek için, mevcut dizindeki en son konuşmayı açmak üzere claude --continue komutunu çalıştırın veya bir listeden eski bir konuşmayı seçmek için claude --resume komutunu kullanın. Halihazırda çalışan bir oturumun içindeyken, /resume komutu oturumu sonlandırmadan farklı bir konuşmaya geçiş yapmanızı sağlar. Bu komutların kısa biçimleri -c ve -r şeklindedir.

claude --continue
claude --resume
claude --resume auth-refactor

Oturum adını veya kimliğini (ID) zaten biliyorsanız, bunu bir argüman olarak iletin; Claude Code seçim ekranını göstermeden doğrudan ilgili oturuma gider.

Aşağıdaki her şey, Ağustos 2026 itibarıyla resmi oturum belgeleri ile uyumludur. Claude Code sık sık güncellenir; bayrak adları ve klavye kısayolları sürümler arasında değişebilir. Bu nedenle, buradaki bilgiler terminalinizde gördüklerinizle uyuşmadığında claude --help komutunu ve ilgili sayfayı temel kaynak olarak kabul edin.

Oturumun gerçekte ne olduğu

Oturum, bir proje dizinine bağlı olarak kaydedilmiş tek bir konuşmadır. Claude tarafından yapılan araç çağrılarını ve bu çağrıların döndürdüğü sonuçları içeren tüm mesaj geçmişini tutar. Claude Code, verileri çalışma sonunda tek seferde değil, siz çalıştıkça sürekli olarak diske yazar; bu sayede terminali kapatsanız veya SSH bağlantısını kaybetseniz bile konuşma varlığını sürdürür.

Oturumu devam ettirmek, sadece metni geri getirmez. Konuşma geçmişi, oturumun kullandığı model ve eğer kullandıysanız --agent ile başlatılan alt temsilci (subagent) ile birlikte eksiksiz olarak geri yüklenir. İzin modu da geri gelir, ancak güvenlik nedeniyle bazı istisnalar mevcuttur: plan modu ve bypass-permissions modu asla geri yüklenmez; bu nedenle bu modlardan birinde olan bir oturum, yeni bir oturumun başlayacağı modda devam eder.

Bazı ayarlar geri gelmez. Çünkü bunlar kaydedilmiş durum değil, başlatma sırasında verilen flag'lerdir. --add-dir ile eklenen dizinler ile --mcp-config, --settings ve --plugin-dir gibi seçenekler, devam ettiğinizde yeniden aktarılmalıdır. settings.json gibi ayar dosyaları başlatma sırasında yeniden okunur. Bu dosyalarda bulunan ayarların tekrar verilmesi gerekmez. Kimlik bilgileri de aynı kapsamdadır: Claude Code, kimlik doğrulama yöntemini konuşmayla birlikte geri yüklemek yerine başlatma sırasında oturum açma bilgilerinize ve ortamınıza göre belirler. Bu nedenle, shell içine yanlışlıkla ANTHROPIC_API_KEY eklenmiş bir VPS üzerinde devam ettirilen oturumda, önceki sefer sorunsuz çalışmış olsa bile geçersiz API anahtarı hatası görülür.

Oturum geçmişi bir VPS üzerinde neden daha önemlidir

İnsanları şaşırtan gerçek şudur: Transkript, aracın çalıştırıldığı makineye yazılır. Hesabınızda tutulmaz ve bulutla senkronize edilmez. Bu, ilgili kutunun diskindeki bir dosyadır.

Dolayısıyla, VPS'nizdeki bir tmux penceresinde bıraktığınız bir oturum, dizüstü bilgisayarınızdaki seçicide görünmez; aynı şekilde dizüstü bilgisayarınızdaki bir oturum da VPS'de görünmez. Aralarında hiçbir veri aktarılmaz. Çoğu insanın Claude Code'u bir VPS üzerinde tmux içinde çalıştırırken yaptığı gibi çalışıyorsanız, gerçek konuşma geçmişinizin biriktiği yer sunucudur ve yerel olarak gördüğünüz seçici, farklı ve çok daha küçük bir küme gösterir.

Aynı ayrım arayüzler arasında da geçerlidir. Masaüstü uygulaması ve VS Code eklentisi kendi oturum geçmişlerini tutar ve bunların hiçbiri CLI'ın geçmişi değildir. Web üzerindeki Claude Code da kendi geçmişini tutar. Cowork ise daha da dışarıda kalarak, sahip olduğunuz donanım yerine bir Anthropic sandbox içinde çalışır; bu nedenle Cowork ile Claude Code arasında bir değerlendirme yapıyorsanız, transkriptin nerede sonlandığı kararınızın bir parçasıdır.

Tek bir makine içinde arama, beklediğinizden daha kapsamlıdır. claude --resume <session-id> önce mevcut proje dizinine ve git çalışma ağaçlarına, ardından o makinedeki diğer tüm projelere bakar. Aklınızda tutmanız gereken ifade "o makine üzerinde" kısmıdır. Başka bir ana bilgisayara ait bir oturum kimliği hiçbir sonuç döndürmez ve Claude Code bunu size No conversation found with session ID: <session-id> ile bildirir.

Claude Code oturum geçmişini nerede saklar

Varsayılan olarak transkriptler, Claude Code yapılandırma dizininiz altında, ~/.claude/projects/<project>/<session-id>.jsonl biçimindeki bir yolda tutulur.

<project>, alfanümerik olmayan her karakterin tire işaretiyle değiştirildiği çalışma dizini yolunuzdur; bu nedenle /home/deploy/apps/api içinde başlatılan bir oturum, -home-deploy-apps-api adlı bir dizin altında saklanır. Eğer bu dönüştürülmüş isim 200 karakteri aşarsa, Claude Code ismi kısaltır ve tam yolun bir hash değerini ekler; böylece dizin adı dosya sistemi sınırları içinde kalır.

Dosya JSONL biçimindedir: satır başına bir JSON nesnesi; her satır bir mesaj, araç kullanımı veya meta veri girişi içerir. Okunabilir metin biçimindedir ve okunmasında bir sakınca yoktur.

Buna yönelik bir ayrıştırıcı (parser) yazılması önerilmez. Giriş biçimi Claude Code için dahildir ve sürümler arasında değişiklik gösterir; bu nedenle bu dosyaları doğrudan okuyan bir betik, herhangi bir güncellemede bozulabilir. Anthropic'in kendi belgeleri, tam da bu nedenle /export veya belgelenmiş betik arayüzlerinin kullanılmasını önermektedir; bu yerinde bir tavsiyedir.

İki ayar durumu değiştirir. CLAUDE_CONFIG_DIR, tüm yapılandırma dizininin yerini değiştirir; transkriptleri ayrı bir birime veya şifreli bir birime bu şekilde taşıyabilirsiniz. settings.json içindeki cleanupPeriodDays, bunların ne kadar süre saklanacağını kontrol eder; varsayılan değer 30 gündür ve minimum 1 gün olarak ayarlanabilir.

Bu transkript dosyalarının içinde aslında ne var

Her aracın sonucu kaydedilir; bu da bir transkriptin, Claude'un okuduğu dosyaların içeriklerini ve çalıştırdığı komutların çıktılarını barındırdığı anlamına gelir. Anthropic'in veri kullanımı sayfası, durumu açıkça belirtir: Claude Code, oturum transkriptlerini yerel olarak ~/.claude/projects/ dizininde düz metin (plaintext) formatında saklar.

Bunun bir sunucu üzerinde ne anlama geldiğini düşünün. Eğer Claude, bir servisin neden başlamadığını anlamak için bir .env dosyasını okuduysa, o dosyanın içeriği artık ev dizininizdeki bir JSONL dosyasının içinde duruyor demektir. Eğer bir komut bir bağlantı dizgisi (connection string) yazdırdıysa, o dizgi de oradadır. Hiçbir şey sızdırılmamıştır. Transkript, gerçekleşen olayları kaydetmiştir; zaten tüm amacı budur ve tam da bu yüzden tehdit modelinize dahil edilmelidir.

  • Yedeklemeler: /home veya /root dizinlerinin düz bir yedeği, transkriptlerinizi yedeklerin gittiği her yere kopyalar. Bir dışlama (exclusion) ekleyin ya da istemlerinizin ve dosya içeriklerinizin kopyalarının artık yedekleme deponuzda yaşadığını kabul edin.
  • Anlık görüntüler (snapshots) ve imajlar: Herhangi bir nedenle alınan bir VPS anlık görüntüsü, tüm dizini içerir. İkinci bir sunucu oluşturmak için kopyaladığınız bir imaj da aynı şekilde.
  • Sunucudaki diğer hesaplar: Erişim izinlerinin sıkı olduğunu varsaymak yerine, ls -ld ~/.claude ~/.claude/projects ile modları kendiniz kontrol edin.
  • Kasıtlı yüklemeler: /feedback komutu, konuşma geçmişini Anthropic'e bilerek gönderir; /bug ve /share de aynı yol üzerinden raporlama yapar. Bunlar sizin yapmayı seçtiğiniz işlemlerdir, bu yüzden onay vermeden önce neyi kabul ettiğinizi bildiğinizden emin olun.

Eğer hiçbir transkriptin oluşmamasını tercih ederseniz, CLAUDE_CODE_SKIP_PROMPT_HISTORY transkript yazımını engeller, --no-session-persistence ise bunu tek bir etkileşimli olmayan claude -p çalıştırması için devre dışı bırakır. Bunlardan birini ayarlamadan önce takasın (trade-off) farkında olun. Transkriptler, resume komutunun okuduğu verilerdir; dolayısıyla transkript olmaması, resume özelliğinin çalışmaması anlamına gelir.

Eski bir konuşma nasıl bulunur

claude --resume ile veya çalışan bir oturumun içindeyken /resume ile seçiciyi açın. Her satır, eğer belirlediyseniz oturum adını, belirlemediyseniz oluşturulan bir başlığı, son etkinlikten bu yana geçen süreyi, git dalını ve dosya boyutunu gösterir.

Seçici arama yapar. Listeyi filtrelemek için / tuşuna basın veya doğrudan yazmaya başlayın. Öğrenmeye değer kısayollar, kapsamı genişletenlerdir: Ctrl+A bu makinedeki tüm projelerden oturumları gösterir, Ctrl+W mevcut deponun tüm çalışma ağaçlarını (worktree) listeler ve Ctrl+B mevcut git dalına göre filtreleme yapar. Bir oturumu seçmeden önce içeriğini önizlemek için Space tuşuna, vurgulanan oturumu yeniden adlandırmak için Ctrl+R tuşuna basın.

Oturumları adlandırmak tüm bu işlemleri çok daha kolaylaştırır. claude -n auth-refactor ile bir oturum başlatın veya konuşmanın gerçek bir işe dönüştüğünü fark ettiğiniz bir noktada /rename auth-refactor komutunu çalıştırın. Adlandırılmış bir oturum, doğrudan shell üzerinden ismiyle tekrar başlatılabilir.

Adlandırılmamış bir oturum yine de ilk isteminizi özetleyen küçük ve hızlı bir arka plan modeli tarafından oluşturulan bir başlık alır. Bu başlık, seçicideki satırı tanımanıza yardımcı olur ancak oturumu tekrar başlatmak için bir tanıtıcı değildir. claude --resume <name> yalnızca kendi belirlediğiniz isimlerle eşleşir.

Doğru oturumu bulmak için transkriptlerde grep kullanımı

Bazen sadece bir ifadeyi hatırlarsınız, başka hiçbir şeyi değil. Transkriptler metin tabanlıdır, bu nedenle onları arayabilirsiniz.

grep -rl "nftables" ~/.claude/projects/

Bu komut, eşleşen transkriptlerin yollarını yazdırır. .jsonl uzantısı olmayan dosya adı oturum kimliğidir (session ID) ve claude --resume <session-id> bunu kabul eder. Hangi oturumu istediğinizi belirlemek için grep kullanın, ardından oturumu devam ettirin veya okumak için dışa aktarın.

İki önemli uyarı mevcuttur. İçerik JSON-escaped formatındadır; bu nedenle tırnak işareti içeren veya satır sonuyla bölünmüş bir ifade, düz metin olarak eşleşmeyebilir. Ayrıca bir araç sonucundaki eşleşme, o metnin Claude tarafından görüldüğü anlamına gelir; bir kullanıcı tarafından yazıldığı anlamına gelmez.

Sohbeti okuma ve dışa aktarma

/export, mevcut sohbeti JSON yerine mesajların ve araç çıktılarının okunabilir biçimde yazıldığı düz metin olarak oluşturur. Herhangi bir argüman verilmediğinde, panoya kopyalama veya bir dosyaya kaydetme seçeneklerini sunan bir menü açılır. Bir dosya adı belirtildiğinde, /export handover.txt doğrudan ilgili yola yazma işlemini gerçekleştirir. Bu yöntem, bir sohbeti sunucudan yerel bilgisayarınıza taşımak veya bir destek talebine eklemek için en doğru yoldur.

Otomasyon gerektiren işlemler için kararlı olması hedeflenen arayüzleri kullanın. Kancalar (hooks) ve durum satırı komutları girdi olarak bir transcript_path alanı alır; bu sayede bir SessionEnd kancası, oturum sona erdiğinde transkripti arşivleyebilir. Ayrıca kayıtlı bir oturumu açmadan da ona soru sorabilirsiniz:

claude -p --resume <session-id> --output-format json "summarize what we changed" | jq -r '.result'

Bu komut, eski sohbetin devamı niteliğinde bir istem gönderir ve yapılandırılmış JSON çıktısı döndürür. Bu yöntem, sonraki sürümlerde değişebilecek bir JSONL formatını ayrıştırmaktan çok daha sağlam bir temel sağlar.

Sıfırdan başlamak, kaldığı yerden devam etmekten daha iyidir

Kaldığı yerden devam etmek tüm geçmişi geri getirir ve bu geçmiş, sonraki her isteğin taşıdığı yük haline gelir. Dün dört saat süren bir konuşmayı bugün devam ettirmek maliyetlidir; uzun bir oturumda token kullanımının nasıl arttığı, bu maliyetin gerçekte nereden kaynaklandığını açıklar.

Claude Code bazen orta bir yol sunar. Pro veya Max planında, yaklaşık bir saattir boşta olan ve 100.000'den fazla token içeren bir oturumu devam ettirmek, ilk mesajınızdan önce bir iletişim kutusu açar. O noktada istem önbelleği (prompt cache) süresi dolmuştur, bu nedenle hangi seçeneği seçerseniz seçin, bir sonraki istek tüm geçmişi bir kez yeniden işler.

  • Özet üzerinden devam et (Resume from summary), hemen bir sıkıştırma işlemi çalıştırır; böylece sonraki istekler tam geçmiş yerine bir özet taşır. İstek başına daha ucuzdur ancak özetin dışarıda bıraktığı bilgiler artık erişilebilir değildir.
  • Oturumu olduğu gibi devam ettir (Resume full session as-is), konuşmayı değiştirmeden yükler ve her detayı, konuşmanın boyutuyla ölçeklenen bir istek başına maliyetle korur.

Üçüncü bir seçenek, oturumu tamamen devam ettirir ve sonraki devam ettirme işlemlerinde bu iletişim kutusunun görünmesini engeller.

Karar vermek göründüğünden daha basittir. Yazacağınız bir sonraki şey daha önce söylenenlere bağlıysa devam ettirin. Bağlı değilse sıfırdan başlayın. Sapmayı fark etmek, dikkat ettiğinizde kolaydır: Claude'un bir saat önce sildiğiniz bir dosyadan bahsetmesi veya oturumun başında karara bağladığınız bir konuyu yeniden tartışması gibi. Bu bayat bir bağlamdır ve onu taşımak size hem token maliyeti getirir hem de doğruluk kaybına yol açar.

Eski bir konuşmanın faydalı kısmı, tekrar ihtiyaç duyacağınız bir karar veya gerçekse, bunu taşımak için devam ettirme özelliğine güvenmeyin. Bunu her oturumun görebileceği bir yere yazın; Claude Code'un bellek dosyaları bunun içindir.

/branch burada bilinmesi gereken bir diğer konudur. Konuşmayı mevcut noktaya kadar kopyalar ve sizi kopyaya geçirir; orijinali ise bozulmadan ve seçicide kalacak şekilde bırakır. Birincisini kaybetmeden ikinci bir yaklaşımı denemek için bunu kullanın.

Resume, compaction ve memory kavramlarının farkları

Bu kavramlar sürekli birbirine karıştırılmaktadır ancak her biri farklı sorunları çözmek için tasarlanmıştır.

Resume, uygulamadan çıktığınızda, sistemi yeniden başlattığınızda veya başka bir göreve geçtiğinizde bir konuşmaya kaldığınız yerden devam etmenizi sağlar. Compaction ise aktif bir konuşma içerisindeki bağlam penceresi (context window) ile ilgilidir: /compact, Claude'un taşıdığı veriyi bir özetle değiştirir; böylece sonraki istekler daha az token tüketir. Sorununuz bağlam penceresinin dolması ise, kullanmanız gereken araç compaction'dır ve Claude Code bağlam penceresini yönetme konusu bunu detaylıca açıklar.

Memory ise tamamen farklı bir yapıdır. CLAUDE.md dosyaları ve otomatik bellek (auto memory), her oturumun başında yüklenen talimatları ve gerçekleri tutar; dolayısıyla bunlar geri döndüğünüz bir konuşma geçmişi değildir. Bunlar, bir daha hiçbir konuşmaya geri dönmek zorunda kalmamanız için not aldığınız bilgilerdir.

Eğer aynı anda çalışan ve birbiriyle koordineli iki konuşma istiyorsanız, bu ayrı bir mekanizmadır. Claude Code oturumları birbirine mesaj gönderebilir; bu özellik her iki oturum da aktifken çalışır ve dünkü oturumu diskten geri çağırmaktan tamamen farklı bir sorunu çözer.

FAQ

Claude Code oturum geçmişimi nerede saklar?

Varsayılan olarak yapılandırma dizininizin altında, ~/.claude/projects/<project>/<session-id>.jsonl konumunda saklar; burada <project>, alfanümerik olmayan karakterlerin tire işaretiyle değiştirildiği çalışma dizini yoludur. Her dosya JSONL formatındadır: her satırda bir mesaj, araç kullanımı veya meta veri girişi için bir JSON nesnesi bulunur. CLAUDE_CONFIG_DIR yapılandırma dizinini başka bir yere taşır ve settings.json içindeki cleanupPeriodDays, transkriptlerin ne kadar süre tutulacağını belirler; varsayılan değer 30 gün olup minimum 1 gündür.

Neden dizüstü bilgisayarımdaki seçicide VPS oturumumu göremiyorum?

Çünkü transkriptler, aracın çalıştığı makinenin diskine yazılır ve makineler arasında herhangi bir eşitleme yapılmaz. VPS'nizdeki tmux içinde yaptığınız bir konuşma yalnızca o VPS üzerinde mevcuttur. Oturuma SSH üzerinden orada devam edin veya yerel bir kayıt istiyorsanız içinde /export komutunu çalıştırıp metin dosyasını kopyalayın.

Farklı bir dizinde başlattığım bir oturuma devam edebilir miyim?

Evet, oturum kimliğine (session ID) sahipseniz devam edebilirsiniz. claude --resume <session-id> önce mevcut proje dizinine ve git çalışma ağaçlarına (worktrees), ardından aynı makinedeki diğer tüm projelere bakar. Seçici içinde Ctrl+A listeyi makinedeki tüm projelere, Ctrl+W ise mevcut deponun tüm çalışma ağaçlarına genişletir. Hiçbir eşleşme bulunamazsa, Claude Code No conversation found with session ID: <session-id> hatasını bildirir.

Eski bir oturuma mı devam etmeliyim yoksa yeni bir tane mi başlatmalıyım?

Bir sonraki mesajınız o konuşmada daha önce söylenenlere bağlıysa devam edin. Bağlı değilse yeni bir oturum başlatın; çünkü devam etmek tüm geçmişi yeniden yükler ve sonraki her istek bu geçmişi taşır. Sapmalara dikkat edin: sildiğiniz dosyalara sürekli atıfta bulunan bir oturum eski bağlamı taşıyordur ve bu bağlam her adımda size token maliyeti ve doğruluk kaybı olarak geri döner.

Claude Code'un transkriptleri diske yazmasını engelleyebilir miyim?

Evet. CLAUDE_CODE_SKIP_PROMPT_HISTORY transkript yazımını engeller, --no-session-persistence ise tek seferlik etkileşimli olmayan claude -p çalıştırmaları için bunu devre dışı bırakır. Ancak önce bunun sonuçlarını anlayın; çünkü devam etme özelliği transkriptleri okur, bu yüzden bunları kapatmak --continue ve --resume komutlarının yükleyecek hiçbir şeyi kalmaması anlamına gelir. Eğer endişeniz dosyaların varlığı değil de nerede durdukları ise, CLAUDE_CONFIG_DIR değerini şifreli bir birime yönlendirin ve cleanupPeriodDays değerini düşürün.