Claude Code çıktı stilleri nasıl yapılandırılır?
Claude Code çıktı stillerinin sistem istemini nasıl değiştirdiğini ve outputStyle ayarının oturum boyunca neden sabit kaldığını öğrenin. Özel stil oluşturma yöntemlerini keşfedin.
Claude Code içerisinde çıktı stili nedir
Claude Code içerisindeki bir çıktı stili, Claude Code'un sistem istemine (system prompt) eklediği bir talimat bloğudur. Bu stil, Claude'un size nasıl yanıt vereceğini; üstlendiği rolü ve çıktıların biçimini değiştirir. Bu özellik Claude'a kod tabanınız hakkında herhangi bir bilgi öğretmez ve Claude'a herhangi bir şeyi çalıştırma izni veremez.
Claude Code beş yerleşik stil ile birlikte gelir. Seçiminiz outputStyle ayar anahtarında tutulur ve bu anahtar oturum başladığında bir kez okunur. Bu tek gerçek, özellik etrafındaki kafa karışıklığının çoğunu açıklar; çünkü oturum ortasında değiştirdiğiniz bir stil kaydedilir ancak siz temizleyene kadar göz ardı edilir.
Bir VPS üzerinde bu, kozmetik bir tercihten daha fazlasıdır. Transkript, genellikle bir tmux penceresi içinde, bir SSH (secure shell) bağlantısı üzerinden okuduğunuz metindir; bu nedenle Claude'un anlattığı her satır, beklediğiniz bir satır ve sabit boyutlu bir kaydırma arabelleğindeki (scrollback buffer) bir satır anlamına gelir.
outputStyle ayarının konumu
/config menüsünden, Output style başlığı altından bir stil seçin. Claude Code, seçiminizi üzerinde çalıştığınız projedeki .claude/settings.local.json dosyasına yazar.
Bağımsız /output-style komutu artık mevcut değildir. v2.1.73 sürümünde kullanımdan kaldırılmış ve v2.1.91 sürümünde tamamen kaldırılmıştır; bu nedenle güncel bir sürümde bu komut hiçbir işlev görmez. Eski bir kılavuzu uygulamadan önce hangi sürümü kullandığınızı kontrol edin. Bu sayfadaki sürümler Ağustos 2026 itibarıyla doğrulanmıştır.
claude --versionAnahtarı manuel olarak da ayarlayabilirsiniz. Dört farklı ayar dosyası bu anahtarı tutabilir; daha dar kapsamlı olan, daha geniş kapsamlı olanın yerine geçer.
~/.claude/settings.jsonkullanıcı dosyanızdır. Makinedeki her projede geçerli olur..claude/settings.jsonproje dosyasıdır. Git ile commit edildiğinden, depoyu klonlayan herkes için geçerli olur..claude/settings.local.jsonyerel proje dosyasıdır. Commit edilmez ve yukarıdaki her iki dosyanın da üzerine yazar./configmenüsünün yazdığı dosya budur.- BT ekibi tarafından Linux üzerindeki
/etc/claude-code/gibi bir sistem yolundan dağıtılan yönetilen ayarlar, diğer tüm ayarların üzerine yazar.
Anahtarın değeri stil adıdır:
{
"outputStyle": "Concise"
}Yalnızca tek bir oturum için, aynı anahtarı komut satırından geçirin. --settings bayrağı bir yol veya satır içi JSON dizgesi alır; bu değerler, ilgili çalışma için ayar dosyalarındaki aynı anahtarların üzerine yazar:
claude --settings '{"outputStyle": "Concise"}'Menü etiketleri ve eğik çizgi (slash) komutları, bu özelliğin yaşam döngüsü boyunca en az bir kez değişmiştir. outputStyle anahtarı ise değişmemiştir. Herhangi bir kılavuzdaki ekran görüntüsü gördüğünüzle uyuşmadığında, anahtarı doğrudan ayarlayın ve yürürlükteki ayar kaynaklarını listeleyen /status komutu ile doğrulayın.
Yeni çıktı stilinizin temizleme yapana kadar neden hiçbir şey yapmadığı
Claude Code, sistem istemini (system prompt) oturum başladığında bir kez oluşturur ve çıktı stili bu sistem isteminin bir parçasıdır. Bu nedenle, oturum devam ederken ayarı değiştirmek değeri kaydeder ancak gözle görülür bir değişiklik yapmaz; çünkü çalışan oturum, başlangıçta oluşturduğu istemi göndermeye devam eder. Yeni stil, bir sonraki /clear komutunda veya bir sonraki başlatmada yüklenir.
/clear
/context/context, sistem istemi de dahil olmak üzere kategori bazında ayrılmış şekilde bağlam penceresini (context window) şu anda nelerin işgal ettiğini yazdırır. Her stil altında yeni bir oturumda bu komutu çalıştırın; sistem istemi satırı, karşılaştırmanızın girdi tarafını oluşturacaktır. Bu, özel bir stilin yüklenip yüklenmediğini kanıtlamanın en hızlı yoludur. Pencerenin neyle dolduğuna dair daha geniş bir resim için bkz: uzun bir Claude Code oturumunda bağlamın nasıl dolduğu.
Ayarın canlı olarak uygulanmak yerine beklemesinin bir nedeni vardır. API, her isteğin başlangıcıyla eşleşen bir istem önbelleğinden (prompt cache) gelen tekrar eden istekleri sunar ve sistem istemi tam başlangıçta yer alır. Bunu konuşmanın ortasında yeniden yazmak, arkasındaki her şeyi geçersiz kılacağından, bir sonraki tur tüm geçmişinizi yeni bir girdi olarak yeniden işleyecektir. Stili oturum başlangıcında sabitlemek bu maliyeti önler. Stilleri değiştirmek ucuzdur. Sadece bir temizleme (clear) işlemi gerektirir.
Her yerleşik çıktı stilinin transkript üzerinde neleri değiştirdiği
- Default (Varsayılan), Claude Code'un yazılım mühendisliği çalışmaları için yazılmış normal sistem istemidir.
- Concise (Özet), doğrudan sonuca odaklanır. Giriş bölümünü ve adım adım anlatımı çıkarır, siz detay isteyene kadar yanıtları kısa tutar. Arkasındaki mühendislik çalışması değişmez. Hata raporlarını veya güvenlik uyarılarını asla kısaltmaz ve yıkıcı bir işlemden önce yine de tam olarak onay ister. Bu stil, Claude Code v2.1.237 veya sonraki sürümlerini gerektirir.
- Explanatory (Açıklayıcı), görev adımları arasına, bir uygulama tercihinin neden yapıldığını ve kod tabanınızın halihazırda hangi deseni kullandığını kapsayan eğitici "İçgörüler" ekler. Transkript tasarım gereği daha uzun olur.
- Learning (Öğrenici), bir adım daha ileri gider. Claude bu içgörüleri paylaşır ve ardından kodun küçük parçalarını bizzat yazmanızı ister; dosyada her noktayı
TODO(human)yorumuyla işaretler. - Proactive (Proaktif), Claude'un sormak yerine harekete geçmesini sağlar. Rutin kararlarda onay için durmak yerine makul varsayımlarda bulunur.
Sonuncusunu dikkatlice okuyun, çünkü insanların yanlış anladığı budur. Proactive, sistem istemindeki bir rehberliktir. Claude'un neyi deneyeceğini değiştirir. Sizin izin modunuz, neyin onay almadan çalışacağını belirlemeye devam eder; bu, başında durmadığınız bir sunucuda önemli olan ayardır. Bu konu otomatik mod ve Claude Code'un izin modları bölümünde ele alınmıştır.
Çıktı stili, CLAUDE.md, kanca (hook) ve alt temsilci (subagent) arasındaki farklar
Bu arayüzlerin tümü Claude'a nasıl davranması gerektiğini söylemekle ilgilidir ancak farklı katmanlarda çalışırlar.
- Çıktı stili, sistem istemine (system prompt) eklenir. Ana konuşmadaki her yanıta uygulanır.
- CLAUDE.md, sistem isteminden sonra bir kullanıcı mesajı olarak eklenir. Proje kuralları ve kod tabanı gerçekleri burada yer almalıdır.
--append-system-prompt, hiçbir şeyi kaldırmadan tek bir çağrı için sistem istemine metin ekler. Çıktı stilinin tek seferlik sürümüdür.- Kanca (hook), bir olay tetiklendiğinde Claude Code'un bizzat çalıştırdığı bir kabuk komutudur. Harness tarafından zorunlu kılındığı için Claude tercih etse de etmese de çalışır. Bkz: Claude Code kancasının yapabilecekleri ve yapamayacakları.
- Alt temsilci (subagent), kendi sistem istemi ve kendi araç setiyle çalışır.
İlk ikisi arasında karar vermek için kısa bir test uygulanır. Projenizle ilgili gerçekler CLAUDE.md dosyasına yazılır, çünkü Claude'un bunları bilmesi gerekir. İfade biçimi ise çıktı stiline yazılır, çünkü bu yanıtın nasıl okunacağıyla ilgilidir. Model ne karar verirse versin her seferinde gerçekleşmesi gereken her şey bir kancadır.
Çıktı stilleri yalnızca ana konuşmaya uygulanır. Bir alt temsilci, kendi sistem istemiyle kendi konuşmasını başlattığı için stilinizi devralmaz. Mevcut konuşmanın bir çatalı (fork) istisnadır, çünkü çatal, üst konuşmanın sistem istemini olduğu gibi devralır. Bir alt temsilci hoşunuza gitmeyen bir biçimde yazıyorsa, stilinizi düzenlemek yerine o temsilcinin dosyasını düzenleyin.
Kendi çıktı stilinizi oluşturma
Özel bir çıktı stili, ön bilgileri (frontmatter) içeren bir markdown dosyasıdır. Her projede kullanmak için ev dizininiz altında veya kodla birlikte tutmak için depo içerisinde saklayın. Kullanıcı dizini ~/.claude/output-styles/, proje dizini ise .claude/output-styles/ şeklindedir.
mkdir -p ~/.claude/output-styles
cat > ~/.claude/output-styles/terse-ops.md <<'EOF'
---
name: Terse ops
description: Command first, explanation after, for SSH sessions
keep-coding-instructions: true
---
Lead with the command or the file change. Put the explanation after it, in two sentences or fewer.
Do not narrate what you are about to do. Report what you did.
When a command can fail, print the one check that proves it worked and say what a healthy result looks like.
EOFBir oturum başlatın ve /config dosyasını açın. Stiliniz, yazdığınız açıklama ile birlikte Output style listesinde görünür. Eğer görünmüyorsa dosya okunmuyor demektir: dosya yolunu kontrol edin ve --- ön bilgi bloğunun dosyadaki ilk öğe olduğundan emin olun. Ön bilgilerde name ayarlanmadığı sürece dosya adı stilin adı olur; bu nedenle bu dosya terse-ops değil, Terse ops olarak adlandırılır.
Stili seçin veya anahtarı tam olarak bu isme ayarlayıp temizleyin:
{
"outputStyle": "Terse ops"
}Bir alan, dosyanızın bir düzenleme mi yoksa bir değiştirme mi olduğuna karar verir. keep-coding-instructions varsayılan olarak false değerindedir; bu, özel bir stilin Claude Code'un yerleşik yazılım mühendisliği talimatlarını devre dışı bıraktığı ve yalnızca sizin metninizle çalıştığı anlamına gelir. Bu yerleşik talimatlar, Claude'a bir değişikliğin kapsamını nasıl belirleyeceğini ve çalışmasını nasıl doğrulayacağını söyler. Yazma asistanı veya veri analisti gibi bu talimatların geçerli olmadığı durumlar için bu alanı boş bırakın. Kodla ilgili herhangi bir işlem yapıyorsanız bu alanı true olarak ayarlayın; aksi takdirde dikkatli bir mühendisin neden aniden kendi çalışmasını kontrol etmeyi bıraktığını sorgularsınız.
description, /config seçicisinin ismin yanında gösterdiği satırdır. Bunu, altı ay sonra kendi stillerinizden ikisi arasında seçim yapacağınız anı düşünerek yazın.
SSH üzerinden kısa ve öz bir stilin farkı
Bir VPS üzerinde, yerel terminalde bulunmayan katmanlar üzerinden transkript okursunuz ve her katman, kelime kalabalığı için sizden bedel talep eder.
Bunlardan ilki geri kaydırma (scrollback) arabelleğidir. tmux içinde her bölme (pane), history-limit ile ayarlanan ve varsayılan değeri 2000 olan sabit sayıda satır tutar. Anlatımlı bir transkript bu arabelleği daha hızlı doldurur; bu nedenle oturumunuzun önceki kısımları daha çabuk silinir ve geri dönüp bakmak istediğiniz çıktılar kaybolur. Daha fazla alan istiyorsanız bu değeri artırın:
echo 'set -g history-limit 20000' >> ~/.tmux.conf
tmux source-file ~/.tmux.confBu işlemden sonra oluşturulan bölmelerin her biri 20000 satır tutar, ancak bu durum bölme başına bellek maliyetini artırır. Hali hazırda açık olan bölmeler eski sınırı korur, çünkü arabellek boyutu bölme oluşturulduğu anda sabitlenir. Oturum düzenini hala oluşturuyorsanız, VPS üzerinde tmux içinde Claude Code çalıştırma konusu bunu kapsamaktadır.
İkincisi gecikmedir (latency). Yanıt, oluşturulduğu anda terminalinize akar. Gidiş-dönüş süresi (RTT) yüksek bir bağlantıda, uzun bir giriş metni, yanıt görünmeden önce metnin terminale düşmesini izleyerek geçirdiğiniz süredir.
Üçüncüsü ise çıktı token'larıdır. Anlatımlı her satır, çıktı olarak faturalandırılır. "Açıklayıcı" (Explanatory) ve "Öğretici" (Learning) stilleri tasarımları gereği daha uzundur. "Kısa ve Öz" (Concise) stili ise Claude'a yanıtları varsayılan olarak kısa tutması talimatını verdiği için tasarımı gereği daha kısadır.
Bu sayfa dahil olmak üzere kimseden gelen bir yüzde değerine güvenmeyin. Farkın boyutu istemlerinize, modelinize ve talep ettiğiniz işe bağlıdır; bu yüzden kendi öncesi ve sonrası ölçümlerinizi yapın. Aynı gerçek görevi biri "Varsayılan" (Default), diğeri "Kısa ve Öz" (Concise) altında olmak üzere iki yeni oturumda çalıştırın ve karşılaştırın. Bir durum satırı (statusline) en kolay ölçüm aracıdır, çünkü Claude Code betiğinize stdin üzerinden zaten hem stil adını hem de token sayılarını içeren bir JSON nesnesi iletir:
cat > ~/.claude/statusline.sh <<'EOF'
#!/bin/bash
input=$(cat)
style=$(echo "$input" | jq -r '.output_style.name // "default"')
out=$(echo "$input" | jq -r '.context_window.total_output_tokens // 0')
cost=$(echo "$input" | jq -r '.cost.total_cost_usd // 0')
echo "style=$style out=$out cost=$cost"
EOF
chmod +x ~/.claude/statusline.shstatusLine ayarını bu betiğe yönlendirin:
{
"statusLine": {
"type": "command",
"command": "~/.claude/statusline.sh"
}
}Oturumun alt kısmındaki çubuk artık aktif stili ve ürettiği token sayısını gösterir; bu da ihtiyacınız olan öncesi ve sonrası karşılaştırmasıdır. Betik, komut satırı JSON ayrıştırıcısı olan jq aracına ihtiyaç duyar, bu yüzden önce sudo apt install -y jq ile kurulumunu yapın. Eğer çubuk boş kalıyorsa, betiği manuel olarak çalıştırın ve içine biraz JSON verisi yönlendirin; çünkü sıfırdan farklı bir değerle sonlanan (non-zero exit) bir durum satırı hiçbir şey yazdırmaz ve raporlamaz. Özel bir Claude Code durum satırı bu nesnedeki diğer alanları listeler. Oturum tarafı yerine faturalandırma tarafı için, Claude Code token'larının gerçekte nereye gittiği ve Claude Code harcamalarını takip eden araçlar bölümlerini okuyun.
Hangi çıktı stilinin yüklü olduğu nasıl kontrol edilir
Tahmin etmek yerine bu kontrolleri kullanın.
/status, bu oturum için geçerli olan ayar kaynaklarını listeler; buna bir organizasyon tarafından yönetilen ayarların devrede olup olmadığı da dahildir./context, yüklenen sistem istemini (system prompt) bağlam penceresi dökümünde bir kategori olarak gösterir.claude doctor, bir oturum başlatmadan kabuk üzerinden çalıştırıldığında, kurulum ve ayar tanılamalarını yazdırır ve geçersiz olan ayar dosyalarını raporlar.
Bir stil uygulanmadığında, neden neredeyse her zaman iki şeyden biridir. Birincisi, stili oturumun ortasında değiştirmiş olmanızdır; bu durumda /clear komutunu çalıştırın. İkincisi ise öncelik sırasıdır: .claude/settings.local.json, .claude/settings.json ayarını geçersiz kılar ve her ikisi de ~/.claude/settings.json ayarını geçersiz kılar. /config seçicisi yerel dosyaya yazdığı için, ekibinizin .claude/settings.json içinde taahhüt ettiği bir stil, birinin menüyü bir kez kullandığı herhangi bir makinede sessizce geçersiz kılınır. /status, hangi kaynağın kazandığını size bildiren komuttur.
Bir JSON sözdizimi hatası aynı belirtiye sahiptir ancak farklı bir çözümü vardır. claude doctor, ayrıştıramadığı dosyanın adını verir; daha karmaşık bir şey aramaya başlamadan önce bunu çalıştırmakta fayda vardır.
FAQ
/output-style komutu neden çalışmayı durdurdu?
Bu komut v2.1.73 sürümünde kullanımdan kaldırılmış ve v2.1.91 sürümünde tamamen çıkarılmıştır; dolayısıyla 2026 ortalarından kalma bir derlemede bu komut artık mevcut değildir. Mevcut durumu görmek için claude --version komutunu çalıştırın. /config altındaki Output style kısmından bir stil seçin veya bir ayar dosyasında outputStyle anahtarını yapılandırın. Bu anahtar komuttan daha uzun ömürlüdür; bu nedenle doğrudan ayar dosyasını düzenlemek, notlarınıza almanız gereken yöntemdir.
Çıktı stilini değiştirdim ancak hiçbir şey değişmedi. Neden?
Çıktı stili sistem isteminin (system prompt) bir parçasıdır ve Claude Code sistem istemini oturum başladığında bir kez oluşturur. Oturum ortasında yapılan bir değişiklik kaydedilir ancak uygulanmaz; çünkü çalışan oturum, başlangıçta oluşturduğu istemi göndermeye devam eder. /clear komutunu çalıştırın veya yeni bir oturum başlatın. Değişiklik hala uygulanmıyorsa, hangi ayar kaynağının öncelikli olduğunu görmek için /status komutunu çalıştırın; çünkü .claude/settings.local.json, .claude/settings.json üzerinde baskındır ve her ikisi de ~/.claude/settings.json üzerinde önceliğe sahiptir.
Concise çıktı stili tasarruf sağlar mı?
Bu stil, Claude'a yanıtları varsayılan olarak kısa tutması talimatını verdiği için çıktı belirteçlerini (output tokens) beklediğiniz yönde azaltır. Tasarruf miktarı istemlerinize ve kullandığınız modele bağlıdır; bu nedenle yayınlanan yüzde değerlerini yalnızca başkalarının yaptığı ölçümler olarak değerlendirin. Kendi ölçümünüzü yapın: her stil altında temiz bir oturumda /context komutunu çalıştırarak girdi tarafını ölçün, ardından aynı görevi her iki stilde de çalıştırıp çıktı belirteç sayılarını karşılaştırın. Concise stili, hata raporlarını veya güvenlik uyarılarını asla kısaltmaz; bu sayede okumanız gereken kısımlar bütün kalır.
Çıktı stili değişikliği alt temsilcilerimin (subagents) yazımını etkiler mi?
Hayır. Çıktı stilleri yalnızca ana konuşmaya uygulanır; çünkü bir alt temsilci kendi sistem istemi ve kendi araç setiyle ayrı bir konuşma başlatır. Mevcut konuşmanın bir çatalı (fork) oluşturulduğunda durum farklıdır, çünkü çatal, üst konuşmanın sistem istemini olduğu gibi devralır. Bir alt temsilcinin yanıt verme biçimini değiştirmek için o temsilcinin kendi dosyasını düzenleyin.
Çıktı stili, Claude'un komutları sormadan çalıştırmasını sağlayabilir mi?
Hayır. Çıktı stili sistem istemindeki bir metindir, dolayısıyla yalnızca Claude'un ne yapmaya çalışacağını etkileyebilir. Proactive stili, Claude'un rutin kararlarda duraksamak yerine varsayımlarda bulunup harekete geçmesini sağlar ancak yine de bir komutu onaylayamaz. Komutların izinsiz çalışıp çalışmayacağına izin modunuz (permission mode) karar verir; sunucuda açık bir oturum bırakmadan önce kontrol etmeniz gereken ayar budur.