Cursor'u ilk kurduğunuzda tek bir chat kutusu görürsünüz. Çoğu kullanıcı hep aynı modu kullanır — genellikle Agent — ve diğerlerinin varlığından habersizce çalışır. Sonuç: yavaş, verimsiz, bazen tehlikeli iş akışları.
Oysa Cursor'un 4 farklı modu var ve her birinin farklı bir süper gücü var. Doğru modu doğru zamanda kullanmak, AI ile çalışma verimliliğinizi en az 3x artırır.
Bu yazıda her modu ne için, ne zaman ve nasıl kullanacağınızı gerçek örneklerle açıklıyoruz.
Modlara Genel Bakış
Cursor chat panelinde sol alt köşede mod seçici bulunur. Dört mod:
| Mod | Kısayol | Kod Değiştirir mi? | Terminal Çalıştırır mı? |
|---|---|---|---|
| Ask | Ctrl+L | ❌ Hayır | ❌ Hayır |
| Agent | Ctrl+I | ✅ Çok dosya | ✅ Evet |
| Plan | — | ❌ (önce plan) | ❌ (önce plan) |
| Debug | — | ✅ Hedefli | ❌ Hayır |
Temel kural: Anlamak istiyorsanız Ask, yapmak istiyorsanız Agent, planlamak istiyorsanız Plan, düzeltmek istiyorsanız Debug.
Ask Modu: Anlamak İçin Sor
Ask modu, Cursor'un okuma odaklı modudur. Codebase'i analiz eder, sorularınızı yanıtlar ama tek satır bile kod değiştirmez.
Ne Zaman Kullanmalısınız?
- Yeni bir projeye girdiniz ve mimariyi anlamaya çalışıyorsunuz
- Bir fonksiyonun ne yaptığını, neden böyle yazıldığını merak ediyorsunuz
- Bir bug'ın nereden kaynaklandığını araştırıyorsunuz ama henüz değişiklik yapmak istemiyorsunuz
- Kod review öncesi başka birinin yazdığı kodu okuyorsunuz
Pratik Örnekler
# Mimari anlama
"Bu proje nasıl bir authentication akışı kullanıyor?
Kullanıcı login olduğunda hangi dosyalar devreye giriyor?"
# Bağımlılık analizi
"useCartStore hook'u hangi component'lerde kullanılıyor?
Bunları değiştirirsem ne etkilenir?"
# Kod anlama
"Bu middleware fonksiyonu tam olarak ne yapıyor?
Edge cases neler olabilir?"
Ask Modunun Gücü: @Codebase
Ask modunda @Codebase yazarak tüm projeyi bağlama dahil edebilirsiniz:
@Codebase Bu projede e-posta gönderme işlemi nerede ve nasıl yapılıyor?
Cursor tüm dosyaları tarar, ilgili kısımları bulur ve size kapsamlı bir yanıt verir. Agent'ı başlatmadan önce bu soruyu sormak, yanlış dosyalarda değişiklik yapma riskini ortadan kaldırır.
💡 İpucu: Büyük bir feature'a başlamadan önce Ask ile "Bu değişikliği yapmak için hangi dosyalara dokunmam gerekir?" sorusunu sorun. Plan çıkarın, sonra Agent'a geçin.
Agent Modu: Otonom Yapıcı
Agent modu, Cursor'un en güçlü ve en riskli modudur. Bir görev verirsiniz, Agent planlar ve sizin onayınız olmadan çok sayıda dosyayı düzenleyebilir, yeni dosyalar oluşturabilir, terminal komutları çalıştırabilir.
Ne Yapabilir?
- Birden fazla dosyada eş zamanlı değişiklik yapar
npm install,npx,gitgibi terminal komutları çalıştırır- Yeni dosya ve klasör oluşturur, isim değiştirir, siler
- Hata aldığında kendi kendine tekrar dener
- Test çalıştırır, sonuçları analiz eder, düzeltir
Ne Zaman Kullanmalısınız?
- Yeni bir feature sıfırdan oluşturuyorsunuz
- Büyük bir refactoring yapıyorsunuz (örn. tüm projeyi TypeScript'e geçirmek)
- Tekrarlayan boilerplate kod yazıyorsunuz (form, CRUD, API endpoint)
- Bir kütüphane migration'ı yapıyorsunuz
Pratik Örnekler
"Kullanıcı profil sayfası oluştur. /app/profil/page.tsx altında
Next.js App Router ile. Supabase'den kullanıcı verilerini çek,
ad, e-posta ve avatar göster. Mevcut UI bileşenlerini kullan."
"tüm .tsx dosyalarındaki console.log ifadelerini bul ve kaldır.
Sadece // TODO yorum satırı olan yerlerde bırak."
Agent Modunda Kritik Uyarılar
Agent güçlüdür ama kontrolsüz bırakmayın:
1. Her adımı takip edin. Agent değişiklik yaparken ekranı izleyin. Yanlış bir yöne giderse erken durdurun — Escape tuşu Agent'ı durdurur.
2. Git'te temiz bir state'te başlayın. Agent'ı çalıştırmadan önce git commit yapın. Bir şeyler ters giderse git checkout ile geri dönebilirsiniz.
3. Küçük, net görevler verin. "Tüm projeyi yeniden yaz" yerine "Sadece checkout flow'unu güncelle" deyin. Ne kadar spesifik olursanız o kadar isabetli sonuç alırsınız.
4. Production'da dikkatli olun. Agent terminal komutları çalıştırabileceğinden, rm -rf, DROP TABLE gibi tehlikeli komutlara dikkat edin. .cursorignore ile kritik dosyaları dışarıda bırakabilirsiniz.
Plan Modu: Önce Planla, Sonra Yap
Plan modu, Agent'ın düşünce sürecini görünür kılar. Agent kodu değiştirmeden önce yapacaklarının listesini çıkarır ve sizden onay bekler.
Büyük bir değişikliği körü körüne çalıştırmak yerine şöyle bir akış oluşturur:
Siz → Görev tanımı
↓
Plan → Atacağı adımların listesi
↓
Siz → Onaylıyorsunuz / düzeltiyorsunuz
↓
Agent → Planı uygular
Ne Zaman Kullanmalısınız?
- Büyük ve karmaşık değişiklikler yapmadan önce
- Tam olarak ne yapılacağından emin olmadığınız durumlarda
- Takım çalışmasında başkalarının incelemesi gereken değişiklikler için
- Agent'ın daha önce yanlış anlayıp beklenmedik şeyler yaptığı durumlarda
Pratik Örnek
Görev: "Authentication sistemini NextAuth'tan Supabase Auth'a geçir"
Plan Modunun Ürettiği Çıktı:
Yapılacaklar:
1. next-auth bağımlılığını kaldır, @supabase/auth-helpers-nextjs ekle
2. /lib/auth.ts dosyasını Supabase client ile yeniden yaz
3. middleware.ts'deki session kontrolünü güncelle
4. /app/api/auth/[...nextauth]/route.ts'i sil
5. /app/api/auth/callback/route.ts oluştur
6. Login/logout component'lerini güncelle
7. .env.local'a SUPABASE_URL ve SUPABASE_ANON_KEY ekle
Bunu görünce fark ettiniz: "Adım 3'te middleware değişiyor, bu production'ı etkiler. Önce staging'de denemeliyim." Plan olmadan bu farkı ancak iş işten geçtikten sonra görebilirdiniz.
💡 İpucu: Plan modunu özellikle database migration'larında ve authentication değişikliklerinde kullanın. Bu iki alan geri alınması en zor değişiklikleri içerir.
Plan'ı Düzenleyebilirsiniz
Plan çıktısını onaylamadan önce düzenleyebilirsiniz:
"Planın iyi ama Adım 1'i atlayalım, next-auth'u şimdilik bırak.
Sadece Supabase Auth'u paralel olarak ekle.
Önce sadece yeni kullanıcı kaydı için deneyelim."
Bu şekilde Agent'ı adım adım yönlendirebilir, riski minimize edebilirsiniz.
Debug Modu: Hataları Analiz Et ve Düzelt
Debug modu, Cursor'un hata odaklı modudur. Terminal çıktısını, console hatalarını veya stack trace'leri analiz eder ve hedefli düzeltmeler önerir.
Ne Zaman Kullanmalısınız?
- Terminal'de bir hata aldınız ve ne anlama geldiğini çözmek istiyorsunuz
- Browser console'da beklenmedik bir hata var
- Build başarısız oldu ve neden anlamıyorsunuz
- Test'ler kırılıyor, hangisi ve neden bilmiyorsunuz
Pratik Kullanım
Terminal'de bir hata aldığınızda terminal çıktısını kopyalayın veya @terminal ile doğrudan bağlayın:
@terminal
Bu hata neden çıkıyor? Nasıl düzeltebilirim?
Cursor hata mesajını analiz eder, hangi satırda, neden oluştuğunu açıklar ve spesifik bir fix önerir:
// Hata: Cannot read properties of undefined (reading 'map')
// Nedeni: products state'i başlangıçta undefined,
// API response gelmeden map çağrılıyor.
// Düzeltme:
const products = useProductStore((state) => state.products ?? []);
// ^^^^
// Fallback olarak boş dizi
Build Hatalarında Debug
@terminal
[Vercel Build Log]
Error: Module not found: Can't resolve '@/components/Hero'
at /app/page.tsx:3:1
Bu build hatası neden oluşuyor?
Debug modu dosya yolunu kontrol eder, import'ların doğruluğunu analiz eder ve sorunu tam olarak gösterir.
TypeScript Hatalarında Debug
@Problems
Bu TypeScript hatalarının tamamını açıkla ve
her biri için en temiz çözümü öner.
@Problems ile VS Code'un Problems panelindeki tüm hataları Cursor'a besleyebilirsiniz.
4 Modun Doğru Workflow'u
Gerçek bir feature geliştirme senaryosunda modları şöyle birleştirin:
1. Ask → "Bu feature için hangi dosyalara dokunmam gerekir?"
"Mevcut state management nasıl çalışıyor?"
2. Plan → "Kullanıcı bildirim tercihlerini kaydetme özelliği ekle"
→ Agent planı listeler → siz onaylarsınız
3. Agent → Planı uygular, dosyaları düzenler, bağımlılıkları kurar
4. Debug → Build hataları veya runtime hatalarını düzeltir
5. Ask → "Yaptığım değişiklikler mevcut testleri etkiler mi?"
"Güvenlik açısından gözden kaçırdığım bir şey var mı?"
Bu döngüyü takip ettiğinizde hem hız kazanırsınız hem de kontrolü elinizde tutarsınız.
Hangi Modu Ne Zaman Seçmeli — Hızlı Karar Rehberi
Soru: Kodun nasıl çalıştığını anlamak mı istiyorum? → Ask
Soru: Büyük bir feature mı yazıyorum, değişiklikler öngörülemeyen yerlere yayılabilir mi? → Plan → Agent
Soru: Küçük, net sınırlı bir değişiklik mi var? → Agent (Plan atla)
Soru: Terminal veya console'da hata mı var? → Debug
Soru: Bir şeyler yanlış gitti, ne olduğunu bilmiyorum? → Ask ile başla, sonra Debug
Sık Yapılan Hatalar
1. Her şeyi Agent'a vermek
En yaygın hata. "Yap" demek için Agent seçmek yerine önce Ask ile bağlamı netleştirin. Aksi halde Agent doğru görünen ama yanlış olan şeyler yapabilir.
2. Plan modunu atlamak
Karmaşık değişikliklerde Plan modunu atlamak, Agent'ın beklenmedik yerlere dokunmasına yol açar. 2 dakikalık plan incelemesi saatlerce debug çalışmasının önüne geçebilir.
3. Debug yerine Agent'la düzeltmek
Bir hatayı düzeltmek için Agent kullanmak bazen sorunu çözmek yerine yeni sorunlar üretebilir. Debug modu daha hedefli ve cerrahi müdahale yapar.
4. .cursorrules yazmamak
Her mod için Cursor'un nasıl davranacağını .cursorrules dosyasıyla tanımlayabilirsiniz:
# .cursorrules
- Plan modunda her zaman etkilenecek dosyaların listesini çıkar
- Agent modunda mevcut bileşenleri yeniden kullanmaya öncelik ver
- Debug modunda her zaman hatanın root cause'unu açıkla, sadece fix verme
- TypeScript strict mode kullan, any type yazma
Bu dosya olmadan Cursor genel amaçlı davranır. Dosya ile projenize özel kurallarla çalışır.
Sonuç
Cursor'un 4 modunu birbirini tamamlayan araçlar olarak düşünün:
- Ask = Anlamak
- Plan = Planlamak
- Agent = Yapmak
- Debug = Düzeltmek
Çoğu geliştirici sadece Agent kullanıyor ve "AI neden bunu yanlış yaptı?" diye yakınıyor. Cevap genellikle mod seçiminden geçiyor: önce anlamadan yapmaya çalışmak.
Doğru mod seçimi, AI ile çalışmayı körlükten görerek yürümeye dönüştürür.
Cursor hakkında daha fazla bilgi için teknoloji sayfamızı, diğer vibe coding araçlarını keşfetmek için vibe coding sayfamızı inceleyebilirsiniz.
Cursor ile başlattığınız projeyi production kalitesine taşımak mı istiyorsunuz? Bizimle iletişime geçin — AI çıktınızı birlikte sağlam bir ürüne dönüştürelim.



