
Terminalde claude yazıp Enter’a bastığınızda bir sohbet ekranı açılıyor. Buraya “bu servise JWT tabanlı kimlik doğrulama ekle” yazabilirsiniz; Claude mevcut dosyaları okuyacak, değişiklikleri yapacak, neyi neden yaptığını gösterecek. Editör açmanıza, sekmeler arasında gezmenize gerek yok.
Claude Code Nedir?
Claude Code, Anthropic’in doğrudan terminal üzerinden çalışan agentic kodlama aracı. Bir IDE eklentisi değil; proje dizininizde claude komutunu çalıştırarak başlatıyorsunuz ve ardından doğal dilde talimat veriyorsunuz.
Araç, çalışma dizininizdeki tüm proje dosyalarını bağlam olarak kullanabiliyor. Belirli bir dosyayı elle açmanıza gerek kalmadan “bu servis katmanı neden hata veriyor?” diye sorabilirsiniz; Claude ilgili dosyaları kendisi okuyacak. Multi-file düzenleme, git operasyonları ve terminal komutu çalıştırma tek bir arayüzden yürüyor.
Cursor veya Copilot ile farkını öğrenmek istiyorsanız ayrı bir karşılaştırma sayfası var; Gemini CLI ile yan yana bakış da ayrı.
Claude Code, arka planda LLM olarak Claude Opus veya Sonnet modelini çalıştırıyor. Hangi modeli seçtiğiniz hem yanıt kalitesini hem de maliyeti etkiliyor; model seçimini kurulum adımında ele alıyoruz.
Kurulum: 5 Dakikada Hazır
Gereksinimler
- Node.js 18 veya üzeri
- npm
- Anthropic API anahtarı
1. Yükleme
npm install -g @anthropic-ai/claude-code
Global kurulum yapıyorsunuz; böylece herhangi bir dizinde claude komutunu çağırabilirsiniz. Yükleme tamamlanınca claude --version ile doğrulayın.
2. API Anahtarı
export ANTHROPIC_API_KEY="sk-ant-..."
Bu satırı ~/.zshrc veya ~/.bashrc dosyanıza ekleyin; her terminal açışında yeniden yazmanıza gerek kalmaz.
Anthropic API anahtarı almak için console.anthropic.com adresine gidin. Yeni hesaplarda deneme kredisi geliyor; prodüksiyonda kullanım başına ödeme yapıyorsunuz. Maliyet, hangi modeli seçtiğinize ve ne kadar token kullandığınıza göre değişiyor.
3. Model Seçimi
Varsayılan model genellikle Sonnet. Daha güçlü sonuç almak istiyorsanız Opus’a geçin:
export ANTHROPIC_MODEL="claude-opus-4-7"
Sonnet hızlı iterasyonlar için yeterli; Opus’u mimari kararlar ve uzun dosya analizleri için saklayın. Token maliyeti Opus’ta belirgin biçimde yüksek, bütçeyi buna göre ayarlayın.
4. İlk Çalıştırma
Herhangi bir proje dizinine gidin ve claude yazın:
cd ~/projelerim/benim-api
claude
İlk açılışta kısa bir kayıt akışı çıkabilir. Sonraki adım interaktif REPL. Buraya “bu projede ne var, kısaca anlat” yazarak başlayabilirsiniz.
Temel Kullanım: İlk Proje
CLAUDE.md Dosyası
Claude Code, çalışma dizininde CLAUDE.md adlı bir dosya arayıyor. Buraya proje hakkındaki temel bilgileri yazıyorsunuz: kullanılan framework, kodlama konvansiyonları, testlerin nasıl çalıştırıldığı.
Örnek bir CLAUDE.md:
# Proje: UserAuth API
## Stack
- Python 3.12 + FastAPI
- PostgreSQL + SQLAlchemy ORM
- Testler: pytest
## Konvansiyonlar
- Snake_case fonksiyon isimleri
- Tüm endpoint'ler `/api/v1/` prefix'i alıyor
- Her değişiklik test gerektiriyor
## Komutlar
- Sunucu: `uvicorn main:app --reload`
- Test: `pytest tests/ -v`
Bu dosya olmadan Claude projeyi her seferinde yeniden keşfetmek zorunda kalıyor. CLAUDE.md ekleyince bağlam hızla oturuyor ve daha tutarlı yanıtlar alıyorsunuz.
Temel Komutlar Tablosu
| Komut | Ne yapar |
|---|---|
claude | İnteraktif REPL başlatır |
claude "görev" | Tek görev çalıştırır, çıkar |
claude -p "görev" | Pipe modunda çalıştırır, stdout’a yazar |
/help | Kullanılabilir komutları listeler |
/clear | Mevcut konuşmayı sıfırlar |
/compact | Bağlamı özetler, token tasarrufu yapar |
/exit veya Ctrl+C | Çıkış |
REPL içinde her prompt bir konuşma turu. Claude önceki yanıtlarını hatırlıyor; “bunu da ekle”, “bunu geri al” gibi kısa takip komutları çalışıyor.
Agent Modu: Karmaşık Görevler
Claude Code otonom modda çalışabiliyor; bu, agentic coding’in terminal uygulaması. Varsayılan ayarda her dosya değişikliği ve terminal komutundan önce onay soruyor. Başlangıç için makul bir kısıtlama.
İzin Yapılandırması
~/.claude/settings.json dosyasına sık kullandığınız komutlar için otomatik izin tanımlayabilirsiniz:
{
"permissions": {
"allow": [
"Bash(git:*)",
"Bash(npm:*)",
"Bash(pytest:*)",
"Edit",
"Write"
]
}
}
Bu ayarla git, npm ve pytest komutları onay sormadan çalışıyor; bilinmeyen terminal komutları için hâlâ onay çıkıyor.
Multi-File Düzenleme
Claude, tek bir görev için birden fazla dosyayı değiştirebiliyor. “UserService sınıfına update_email metodu ekle ve mevcut testleri de güncelle” dediğinizde sırasıyla şunlar oluyor:
services/user_service.pydosyasını okur- Metodu yazar
tests/test_user_service.pydosyasını bulur- İlgili test case’i ekler
- Değişiklikleri size gösterir ve onay bekler
Her adım şeffaf; neyi neden yaptığını gösteriyor. Beğenmediyseniz onaylamadan geri çekilebilirsiniz.
Git Entegrasyonu
Git komutları doğal dille çalışıyor:
> mevcut değişiklikleri commit et, anlamlı bir mesaj yaz
Claude git diff çalıştırır, değişiklikleri analiz eder ve uygun bir commit mesajıyla teslim eder. Branch oluşturma veya merge conflict çözümü de doğal dille çalışıyor.
Gerçek Senaryo: REST API Yaz
Python FastAPI ile kullanıcı yönetim API’si adım adım:
1. Proje Dizini ve CLAUDE.md
mkdir user-api && cd user-api
Önce CLAUDE.md dosyası oluşturun:
# Proje: User API
## Stack: Python 3.12, FastAPI, SQLite, pydantic v2
## Test: pytest
## Kural: Her endpoint için request/response şeması zorunlu
Ardından Claude’u başlatın:
claude
2. Dosya Yapısını İste
> Python FastAPI ile kullanıcı CRUD API'si kur. SQLite kullansın, pydantic v2 ile doğrulama yapsın. Dosya yapısını önce listele.
Claude şu yapıyı önerdi:
user-api/
├── main.py
├── models.py
├── schemas.py
├── database.py
└── requirements.txt
3. Dosyaları Oluştur
> Bu yapıyı oluştur. main.py'de /users GET, POST, GET {id}, PUT {id}, DELETE {id} endpoint'leri olsun.
Claude her dosyayı sırayla yazıyor; önemli kararları (örneğin veritabanı bağlantı stratejisi) kısaca açıklıyor.
4. Bağımlılıkları Yükle
> requirements.txt'i pip ile kur
pip install -r requirements.txt
5. Sunucuyu Çalıştır ve Test Et
> Sunucuyu başlat, ardından GET /users endpoint'ini curl ile test et
Claude çalıştırır:
uvicorn main:app --reload
Yeni bir terminal sekmesinde:
curl http://localhost:8000/users
Beklenen çıktı:
[]
6. Kullanıcı Ekle
> POST /users endpoint'ine test verisi gönder: isim "Ali", email "ali@test.com"
Claude şu curl komutunu üretip çalıştırır:
curl -X POST http://localhost:8000/users \
-H "Content-Type: application/json" \
-d '{"name": "Ali", "email": "ali@test.com"}'
7. Hata Ayıklama
Bir endpoint 422 hatası verirse:
> POST /users 422 döndürüyor, nedenini incele ve düzelt
Claude schemas.py ve main.py dosyalarını okur, pydantic doğrulama hatasını tespit eder ve düzeltir. Tüm bu süreçte hiç editör açmıyorsunuz.
Cursor ve Copilot ile Fark
| Özellik | Claude Code | Cursor | GitHub Copilot |
|---|---|---|---|
| Çalışma ortamı | Terminal | VS Code tabanlı editör | IDE eklentisi |
| Proje bağlamı | Tüm repo (CLAUDE.md) | Açık dosyalar + proje indexi | Açık dosya ağırlıklı |
| Git entegrasyonu | Doğrudan doğal dil | Kaynak denetim paneli | Yok |
| Multi-file düzenleme | Agent modu ile otomatik | Composer ile | Sınırlı |
| Fiyatlandırma | Kullanım başına API | Hobby $20/ay | Bireysel $10/ay |
| Bağımsız çalışma | Evet (izin moduna göre) | Hayır | Hayır |
| Öğrenme eğrisi | Orta (CLI alışkanlığı gerekli) | Düşük (editör içi) | Düşük (editör içi) |
Fiyatlar Temmuz 2026 itibarıyla: Cursor Pricing, GitHub Copilot Pricing
Cursor ve Copilot editör içinde çalışıyor; mevcut iş akışınızı bozmadan yanınızda duruyor. Claude Code ise terminal bağımlısı ve proje genelinde otonom görev üstlenebiliyor. Terminal alışkanlığı olan geliştiriciler için bu fark çok geniş bir kullanım alanı demek. Ayrıntılı karşılaştırma için Cursor vs Claude Code rehberine bakabilirsiniz.
Pro İpuçları
settings.json ile Özelleştirme
Global ayar dosyası ~/.claude/settings.json yolunda. İzin ayarları ve model tercihi buraya giriyor:
{
"model": "claude-opus-4-7",
"permissions": {
"allow": [
"Bash(git:*)",
"Bash(npm:*)",
"Bash(uvicorn:*)",
"Edit",
"Write"
],
"deny": [
"Bash(rm -rf:*)"
]
}
}
deny listesi güvenlik katmanı ekliyor; örneğin toplu silme komutlarını engelleyebilirsiniz. Proje bazlı ayarlar için projenin kökünde .claude/settings.json dosyası da oluşturabilirsiniz; lokal ayarlar global ayarların önüne geçiyor.
Custom Slash Komutlar
.claude/commands/ dizinine Markdown dosyaları koyarak kendi komutlarınızı tanımlayabilirsiniz:
# .claude/commands/test-and-fix.md
pytest çalıştır. Başarısız test varsa hatayı analiz et, düzelt ve tekrar çalıştır. En fazla 3 denemede tamamla.
REPL içinde /test-and-fix yazınca bu iş akışı çalışıyor. Sık kullandığınız görevleri komuta dönüştürmek tekrarlayan prompt yazımını ortadan kaldırıyor.
Token Tasarrufu
- Uzun oturumlarda
/compactkomutu konuşma geçmişini özetliyor. Bağlam penceresi dolmaya başladığında kullanın. - CLAUDE.md dosyasını kısa tutun. Her konuşma turunda yüklenen bu dosya gereksiz detaylar içerirse maliyeti doğrudan artırıyor.
- Küçük, tek görevli işler için
claude "tek satır görev"formatı daha verimli; REPL başlatmaya gerek kalmıyor. - Bir dosyayı tekrar tekrar okutmak yerine ilgili kısmı kopyalayıp konuşmaya yapıştırmak bazen daha hızlı.
Verimli Komut Yazımı
Prompt mühendisliği teknikleri burada da geçerli:
Zayıf: “bu kodu düzelt”
Güçlü: “user_service.py’deki get_user_by_email fonksiyonu kullanıcı bulunamadığında None döndürüyor; bunun yerine UserNotFoundError fırlatmalı, ilgili testleri de güncelle”
Dosya adı ve beklenen davranış ne kadar net olursa çıktı o kadar kullanılabilir oluyor. Muğlak görev açıklaması muğlak sonuç üretiyor.
Hata Mesajlarını Direkt Yapıştırın
Stack trace veya hata çıktısını konuşmaya direkt yapıştırmak açıklama yazmaktan çok daha etkili:
> şu hatayı alıyorum:
AttributeError: 'NoneType' object has no attribute 'email'
File "services/user_service.py", line 47, in get_user
Claude neyin yanlış gittiğini hemen anlıyor ve doğru dosyayı incelemeye başlıyor.
Kurulum 5 dakika sürüyor, ama CLAUDE.md alışkanlığı ve izin yapılandırması olmadan aracın kapasitesinin büyük kısmını kaçırıyorsunuz. Başlamak için en somut yol: yukarıdaki FastAPI senaryosunu kendi projenize uyarlayın.



