Skip to content

Oturumlarla Calismak

Konusmalari olusturun, devam ettirin, surdurun ve catallastirin

6 dk okuma

Art arda iki claude -p cagrisi calistiriyorsunuz. Ikincisinin birinciden hicbir hatirasi yok. Dikkatli cok adimli is akisiniz, paylasilan baglami olmayan iki baglantisiz konusmaya donustu. Oturumlar bunu cozer.

Her claude -p cagrisi benzersiz bir ID’ye sahip bir oturum olusturur. Daha sonra --resume ile devam ettirebilir, --continue ile en son oturumu surdurebilir veya --no-session-persistence ile kaliciligi devre disi birakabilirsiniz. Cok adimli is akislarini mumkun kilan budur — bir planlama-inceleme-yurutme zinciri, asamali bir goc veya onceki calismanin kaldigi yerden devam eden bir CI hatti.

Session lifecycle: create, resume, fork, expireCreateResumeForkExpireBranch

Olusturma ve Yakalama

Herhangi bir oturum is akisindaki ilk adim, ilk cagridan session_id’yi yakalamaktir. session_id alanini jq ile cikarabilmeniz icin --output-format json iletin.

Oturum Olustur ve Yakala
$ RESULT=$(claude -p "Analyze the codebase" --output-format json)
$ SESSION_ID=$(echo "$RESULT" | jq -r '.session_id')
$ echo "Session: $SESSION_ID"
Session: d25a595e-22f0-4206-87d8-20cce15c6355

Ilk cagridaki JSON yaniti ihtiyaciniz olan her seyi icerir. Tam yukun burada:

create_sessionclaude -p --output-format json
1{
2 "type": "result",
3 "subtype": "success",
4 "is_error": false,
5 "duration_ms": 3071,
6 "num_turns": 1,
7 "result": "session test 1",A
8 "session_id": "d25a595e-22f0-4206-87d8-20cce15c6355",B
9 "total_cost_usd": 0.015954
10}
ADaha sonra devam ettirmek icin bu UUID'yi saklayin
BYalnizca bu tur icin maliyet
Try This

Hemen iki adimli bir oturum deneyin:

SID=$(claude -p “Remember: the secret word is ‘banana’” —output-format json | jq -r ‘.session_id’)

claude -p “What was the secret word?” —resume “$SID” —output-format json | jq ‘.result’

Claude hatirladi mi? Simdi —resume olmadan deneyin — baglam kayboldu.

—resume ve —continue Karsilastirmasi

Bu iki bayrak bir oturumu devam ettirir, ancak onu cok farkli yollarla bulur. Yanlis olani secmek, oturum tabanli is akislarindaki en yaygin hatalardan biridir.

Oturum Devam Ettirme Bayraklari

BayrakDavranisKapsam
—resume SESSION_IDUUID ile belirli bir oturumu devam ettirirHerhangi bir dizinden calisir
—continueEn son oturumu devam ettirirYalnizca mevcut dizin
—resume (argumansiz)Etkilesimli oturum secici acarYalnizca etkilesimli mod

Otomasyon icin her zaman --continue yerine --resume SESSION_ID kullanin. Scriptlerde --continue belirsizlik getirir: baska bir islem ayni dizinde daha yeni bir oturum olusturabilir ve --continue sizinki yerine onu secer.

Session ID yanlis olursa ne olur? --resume’a gecersiz veya suresi dolmus bir session ID iletirseniz, Claude yeni bir ID ile yeni bir oturum baslatir — onceki baglaminiz sessizce kaybolur. Uretim scriptlerinde resume’a guvenirken her zaman session ID’leri dogrulayin.

Gecici Oturumlar

Oturumun diske kaydedilmesini istemediginizde --no-session-persistence (--print gerektirir) ekleyin:

Terminal window
claude -p "Quick question" --no-session-persistence --output-format json

Yanit hala bir session_id alani icerir, ancak oturum diske kaydedilmez. Daha sonra --resume ile devam ettirmeye calismak basarisiz olur. Bu, su durumlar icin dogru secimdir:

  • CI/CD hatlari — oturum deposunu tek seferlik calistirmalarla kirletmeyin
  • Toplu isleme — binlerce bagimsiz sorgu icin kalicilik gerekmez
  • Gizlilik — hassas istemler diske kaydedilmez

JSON yaniti normal bir oturumla ayni gorulur. Yalnizca yukten oturumun kalici olup olmadigi anlasilamaz. Bu tasarim geregi boyledir — cagiran kod kaliciligi belirler, yanit formati degil.

Oturum-Farkinda Is Akislari

Oturumlarin gercek gucu, birden fazla cagrıyı tek bir tutarli is akisina zincirlemedir. Klasik desen planlama-inceleme-yurutmedir: Claude kisitli modda plan yapar, bir insan inceler ve sonra Claude ayni konusma baglaminda tam yetkilerle yurutur.

Terminal window
# Step 1: Plan
PLAN=$(claude -p "Plan a refactoring of auth.py" \
--permission-mode plan --output-format json)
SESSION=$(echo "$PLAN" | jq -r '.session_id')
# Step 2: Review
echo "$PLAN" | jq -r '.result'
# Step 3: Execute (same session, full context)
claude -p "yes, proceed" --resume "$SESSION" --permission-mode bypassPermissions
  1. adim, 1. adimdan tam oturumu devam ettirir. Claude planin tamamini baglaminda tutar ve kod tabanini yeniden analiz etmesine gerek yoktur. --permission-mode bayragi adimlar arasinda degisir ve yazma yetkisi vermeden once bir inceleme kapisi uygulamaniza olanak tanir.
Gotcha

—continue dizin kapsamlidir. /project-a/ dizininde bir oturum olusturup /project-b/ dizininden —continue calistirdiginizda onu bulamaz. Dizinler arasi devam ettirme icin —resume SESSION_ID kullanin.

Tip

Oturumlar 1M baglam penceresini paylasiror. Uzun oturumlar, alan acmak icin onceki turlari ozetleyen otomatik sikistirmayi tetikler. Uzun is akislarinda bunu planlayin — kritik talimatlar sikilamayi atlatabılmeleri icin CLAUDE.md’de olmalidir.

Devam Ettirme Yuku

Bir oturumu devam ettirdiginizde yuk, surekliligi onaylar. Devam ettirilen bir oturumda “Onceki mesajim neydi?” sorusuna verilen yanit sudur:

resume_sessionclaude -p --resume SESSION_ID --output-format json
1{
2 "type": "result",
3 "subtype": "success",
4 "is_error": false,
5 "duration_ms": 3523,
6 "num_turns": 1,
7 "result": "Your previous message was:\n\n> Say: session test 1",A
8 "session_id": "d25a595e-22f0-4206-87d8-20cce15c6355",B
9 "total_cost_usd": 0.01628525
10}
AClaude onceki turu dogru hatirladi
BAyni session ID -- konusma surekliligi onaylandi

result alani, Claude’un onceki turdaki tam icerigi hatirlıdigini gosterir. session_id orijinalle eslesiyor ve bunun ayni konusma baglami oldugunu — benzer talimatlar alan yeni bir oturum olmadıgını — onayliyor.

Catallama ve es zamanli oturumlar gibi ileri dusenler icin Ileri Oturum Kaliplari bolumune bakin.

Bunu Uygulamada Gorun

Bir uretim sisteminin is parcacikli tartismalar icin inceleme oturumlarini nasil catallastirdigini — ilk mesaj ana hatti catllar, takip mesajlari catali devam ettirir — MR Inceleyici Olusturun, Bolum 4: Tartismalar Icin Oturum Catallama bolumunde gorun.

Now Do This

Bir sonraki otomasyon cagrinizdan session ID yakamayin: SID=$(claude -p “Analyze this codebase” —output-format json | jq -r ‘.session_id’). Sonra takip sorusuyla devam ettirin: claude -p “What did you find?” —resume “$SID”. Cok adimli bir is akisi olusturdunuz.