# Claude Code nedir

Claude Code, projenizde okuyan, düzenleyen ve komut çalıştıran bir ajan harness'ı. Onu ayıran şey, harekete geçip sonra kontrol etmesi ve nerede çalışacağına sizin karar vermeniz.

## Tamamlayıcı da değil, sohbet penceresi de

Otomatik tamamlama, imlecinizin olduğu yerde sıradaki birkaç token'ı tahmin eder. Tahminin işe yarayıp yaramadığını hiç görmez. Sohbet penceresi ise içine yapıştırdığınız şeyden cevap verir, sonucu projenize elle taşıyan da sizsiniz.

Claude Code başka bir yerde duruyor. Projenizin içinde çalışıyor, ihtiyaç duyduğu dosyaları okuyor, düzenliyor, komut çalıştırıyor ve komutların yazdırdığını okuyor. Ona hedefi düz bir dille veriyorsunuz, o da siz izlerken o hedefe doğru ilerliyor.

Bunun pratik sonucu işinizin değişmesi. Bir sohbetle bir editör arasında metin taşıyan kişi olmaktan çıkıyorsunuz. Hedefi söyleyen, sınırları çizen ve sonucu yargılayan kişi oluyorsunuz.

## Neye dokunabiliyor

Bir oturumun içinde Claude az sayıda eylem türüyle çalışıyor ve izin sistemi bunların etrafında kurulu. Çalışma dizinindeki dosyaları okumak onay istemiyor. Kabuk komutları, yerleşik salt okunur birkaç komut dışında onay istiyor. Dosya düzenleme ayrıca onaylanıyor.

Bu ayrım aracın gerçekte ne olduğunu söylüyor: makinenizi değiştirebilen, ama her değişikliğin önünde bir kapı bulunan bir program. Sonraki derslerin çoğu o kapı ve onu iyi kullanmak üzerine.

> **Başlarken bağlam boş değil**
Siz bir şey yazmadan önce CLAUDE.md dosyalarınız, otomatik hafıza notları, MCP araç adları ve skill açıklamaları bağlamda yer alıyor. Sonra her dosya okuma ve her komut çıktısı üstüne ekleniyor. Yeni bir oturum göründüğünden daha dolu.


**Question:** Claude Code'u bir sohbet penceresinden ayıran ana fark nedir?

- Daha büyük bir model kullanır
- Projenizin içinde çalışır ve yaptıklarının sonucunu görür
- Hiç hata yapmaz
- Hiçbir şey okumadan cevap verir

**Answer:** Projenizin içinde çalışır ve yaptıklarının sonucunu görür. Claude Code dosyalarınızı okur, komut çalıştırır ve çıktıyı okur. Sohbet penceresinde eksik olan bu geri bildirim.


## Nerede çalışıyor

Başladığı yer terminal: bir depoyu açıp `claude` yazıyorsunuz. Ama yalnızca terminal aracı değil. Dokümanlar aynı ajanı VS Code ve JetBrains'te, bir Desktop uygulamasında, web üzerinde bulut oturumları olarak, Slack'te, Chrome entegrasyonuyla ve mobilde listeliyor.

Bir oturumu bunlar arasında taşıyabiliyorsunuz da. `/teleport` bir bulut oturumunu terminalinize çekiyor, `/desktop` Desktop uygulamasında devam ettiriyor, `/remote-control` çalışan oturumu claude.ai'a açıyor.

Script'ler için bir mod daha önemli. `claude -p "prompt"` konuşma olmadan tek seferlik çalışıyor ve girdiyi borudan verebiliyorsunuz:

```terminal
$ cat error.log | claude -p "what's going on here"
# Tek soru, tek cevap, interaktif oturum yok.
```

Gözetimsiz çalıştırmalar için rehber, siz ayrılmadan önce beş soru soruyor: bitti ne demek biliyor mu, kendini kontrol edebiliyor mu, nelere dokunabilir, onu ne durdurur ve kim onaylar.

## Kendi muhakemesi mi, zorlama mı

Resmi rehberdeki en işe yarar fikir bir ayrım. Bazı şeyler Claude'un muhakemesine kalıyor: prompt'lar, CLAUDE.md ve auto mode sınıflandırıcısı. Bazıları ise harness tarafından zorlanıyor: hook'lar, deny kuralları, sandbox ve testler.

İkinci türü yalnızca istisnası olmayan kurallar için kullanın, birincinin baskı altında tutacağını da beklemeyin. CLAUDE.md'ye yazılmış "main'e asla push etme" bir ricadır. Aynı satır bir deny kuralıysa duvardır.

> **Kuralın hangi tür olduğunu sorun**
Bir şeyin her zaman ya da asla olmamasını istediğinizde, bunun tercih mi garanti mi olduğunu düşünün. Tercihler metne yazılır. Garantiler ayarlara ya da hook'lara.


**Question:** Bir kural istisnasız tutmalı. Nerede durmalı?

- Yalnızca CLAUDE.md'de
- Bir deny kuralında ya da hook'ta
- Oturumun ilk prompt'unda
- Kodun içindeki bir yorumda

**Answer:** Bir deny kuralında ya da hook'ta. CLAUDE.md, Claude'un okuyup tarttığı bağlamdır. Deny kuralları ve hook'ları ise harness'ın kendisi zorlar.


> **Bulunduğunuz yere bakın**
Tanıdığınız bir depoyu açıp `claude` çalıştırın ve `/context` yazın. İlk mesajınızdan önce ne kadarının yüklenmiş olduğuna dikkat edin.
