Claude Code ne kadar hızlı? Saniyede token, 20.000 turda ölçüldü
Claude Code çıktı hızını hiçbir zaman göstermez, ama her oturum transkripti onu hesaplamak için gereken her şeyi taşır. 40 satırlık bir betiği kendi 319 oturumumuz, 20.408 tur ve 12 milyon çıktı token'ı üzerinde çalıştırdık: Opus 5 medyanda saniyede 63 token akıtıyor, Opus 5.5 95, Sonnet 5 77, ve kısa bir yanıt her zaman uzun bir yanıttan daha yavaş. Yöntem, betik, rakamlar ve hızlı modun neyi değiştirdiği.
Claude Code sana token'lar hakkında çok şey söyler. /usage oturumun ve haftanın ne kadarını kullandığını gösterir, AgentsRoom'daki oturum monitörü girdi ve çıktı token'larını, önbellek okumalarını ve yazmalarını tur tur sayar, durum satırı da bağlam penceresinin kullanılan payını yazdırabilir. Hiçbiri insanların aramaya devam ettiği o tek sayıyı yazdırmaz: sen beklerken modelin saniyede gerçekte kaç token ürettiği.
Sayı gizli değil, sadece hiç hesaplanmıyor. Her oturumun her mesajı ~/.claude/projects/ altındaki bir JSONL transkriptine düşer ve her asistan mesajı bir zaman damgası ile token kullanımını taşır. Biz de kendi makinemizde, son dört hafta üzerinde hesapladık. İşte yöntem, betik ve ortaya çıkan sonuç.
Veriler nereden geliyor
Claude Code her oturum için ~/.claude/projects/<project slug>/<session id>.jsonl içine bir dosya yazar. Her olay için bir satır. Burada önemli olan satırlar asistan mesajlarıdır ve yalnızca işe yarayan alanları tuttuğunda her biri şöyle görünür:
{
"type": "assistant",
"uuid": "24d13076-…",
"parentUuid": "d4447285-…",
"requestId": "req_011CepWq…",
"timestamp": "2026-09-07T18:00:08.412Z",
"message": {
"model": "claude-opus-5",
"usage": {
"input_tokens": 2,
"cache_read_input_tokens": 0,
"cache_creation_input_tokens": 51591,
"output_tokens": 200,
"output_tokens_details": { "thinking_tokens": 0 },
"speed": "standard"
}
}
}
Ölçümü dört şey mümkün kılıyor:
timestampiçerik bloğu eklendiği anda yazılır, bu yüzden bir turun son bloğu akışın sonuna tarihlenir.parentUuidhemen önceki satırı gösterir: modelin yanıtladığı kullanıcı mesajı ya da araç sonucu. Onun zaman damgası isteğin çıktığı andır.requestIdtek bir API çağrısının bloklarını gruplar. Biraz metin yazıp ardından bir araç çağıran bir tur, aynırequestIdve aynıusageile iki asistan satırı üretir, bu yüzden token'lar satır başına değil, istek başına bir kez sayılmalıdır.usage.output_tokensisteğin toplam çıktısıdır, düşünme dahil;output_tokens_details.thinking_tokensbunun ne kadarının düşünme olduğunu söyler.
Dosyadaki hiçbir şey ilk token'a kadar geçen süreyi vermez. Ölçebildiğin şey turun tamamıdır: isteğin makinenden çıkmasından son token'ın gelmesine kadar. Beklerken hissettiğin tek sayı da budur, o yüzden bunu tuttuk.
Yöntem
Her requestId için: onu taşıyan ilk ve son asistan satırlarını al, usage'ı ilk satırdan oku, ilk satırın ebeveynini bul ve çıktı token'larını ebeveynin zaman damgası ile son satırın zaman damgası arasındaki saniyelere böl. Sonra tek bir ortalamaya değil, her modelin dağılımına bak, çünkü 40 saniyelik bir tur ile 2 saniyelik bir tur aynı şey değildir.
Çıktı token'ı olmayan turları, süresi sıfır ya da negatif olan turları (devam ettirilen bir oturumda ebeveyn, çocuğundan sonraya tarihlenmiş olabilir) ve on beş dakikadan uzun turları attık; bunlar uzun yanıtlar değil, kesintiye uğramış oturumlardır. Başka hiçbir şey filtrelenmedi.
Betik, bağımlılığı olmayan 40 satırlık Python. İstediğin yerden çalıştır: makinedeki tüm projeleri okur.
import json, glob, os, statistics as st
from datetime import datetime
from collections import defaultdict
def ts(s): return datetime.fromisoformat(s.replace("Z", "+00:00")).timestamp()
turns = []
for path in glob.glob(os.path.expanduser("~/.claude/projects/*/*.jsonl")):
by_uuid, groups, order = {}, {}, []
with open(path) as fh:
for line in fh:
try: o = json.loads(line)
except ValueError: continue
if "uuid" in o: by_uuid[o["uuid"]] = o
msg = o.get("message") or {}
if o.get("type") == "assistant" and msg.get("usage") and o.get("timestamp"):
rid = o.get("requestId") or o["uuid"]
if rid not in groups: groups[rid] = []; order.append(rid)
groups[rid].append(o)
for rid in order:
first, last = groups[rid][0], groups[rid][-1]
out = first["message"]["usage"].get("output_tokens", 0)
parent = by_uuid.get(first.get("parentUuid"))
if not parent or not parent.get("timestamp") or out <= 0: continue
dur = ts(last["timestamp"]) - ts(parent["timestamp"])
if 0 < dur <= 900:
turns.append((first["message"].get("model"), out, dur))
by_model = defaultdict(list)
for model, out, dur in turns: by_model[model].append((out, dur))
for model, rows in sorted(by_model.items(), key=lambda kv: -len(kv[1])):
rates = [o / d for o, d in rows]
print(f"{model:18s} turns={len(rows):6d} median={st.median(rates):5.1f} tok/s "
f"weighted={sum(o for o, _ in rows) / sum(d for _, d in rows):5.1f} tok/s")
weighted sütunu toplam token'ın toplam saniyeye bölümüdür. Uzun, otonom bir çalışmanın yaşadığı hız budur; medyan ise tek bir etkileşimli turun yaşadığı hızdır.
Rakamlar
Fransa'da tek bir Mac, 319 transkript, 27 Ağustos ile 25 Eylül 2026 arasında 20.408 tur, 45 saatlik üretimde üretilen 12,0 milyon çıktı token'ı. Her turda standart hız (hızlı mod için aşağıya bak). Transkriptlerde Claude Code'un yazdığı adlarla beş model görünüyor.
| Model | Turlar | Medyan tok/s | 25. ile 75. yüzdelik arası | Ağırlıklı tok/s |
|---|---|---|---|---|
| Opus 5 | 16.708 | 62,7 | 51,5 ile 71,8 arası | 69,8 |
| Opus 5.5 | 1.102 | 94,9 | 80,9 ile 109,0 arası | 109,3 |
| Sonnet 5 | 426 | 77,0 | 62,6 ile 91,5 arası | 87,0 |
| Fable 5.1 | 2.070 | 75,1 | 66,1 ile 82,9 arası | 80,0 |
| Opus 4.8 | 102 | 60,9 | 49,1 ile 66,5 arası | 64,2 |
Her şeyden önce iki okuma. Birincisi, Opus 5.5, Opus 5'ten biraz daha hızlı değil: medyanda bir buçuk kat, ağırlıklı rakamda %57 daha hızlı, üstelik uzun turların payı çok daha yüksekken. İkincisi, bir model içindeki yayılım modeller arasındaki farktan daha geniş: 25. yüzdelikteki bir Opus 5 turu saniyede 51 token akıtırken 75. yüzdelikteki bir tur 72 akıtıyor. Nedeni turun boyutu ve bu kendi bölümünü hak ediyor.
Kısa bir yanıt her zaman daha yavaştır
Yine Opus 5, bu kez turdaki çıktı token sayısına göre bölünmüş hâliyle:
| Turdaki çıktı token'ları | Turlar | Medyan tok/s | Medyan süre |
|---|---|---|---|
| 1 ile 99 arası | 1.854 | 42,1 | 1,9 sn |
| 100 ile 499 arası | 10.743 | 60,6 | 3,4 sn |
| 500 ile 1.999 arası | 3.512 | 72,8 | 11,1 sn |
| 2.000 ve üzeri | 599 | 78,4 | 38,8 sn |
Aynı model, aynı ay, aynı makine, ve hız tek satırlık bir yanıt ile uzun bir yanıt arasında iki katına çıkıyor. Model uzun turlarda daha hızlı akıtmıyor. Her tur, ilk token görünmeden önce sabit bir süre maliyeti öder: istek gider, prompt işlenir, akış başlar. 80 token'lık bir turda bu maliyet geçen sürenin üçte biridir; 3.000 token'lık bir turda gürültüde kaybolur.
Sürenin çıktı token'larına göre en küçük kareler regresyonu ikisini ayırır. Eğim akış hızını, kesişim ise sabit maliyeti verir:
| Model | Tur başına sabit maliyet | Akış hızı |
|---|---|---|
| Opus 5 | 1,03 sn | 81,6 tok/s |
| Opus 5.5 | 1,10 sn | 148,9 tok/s |
| Sonnet 5 | 0,45 sn | 94,9 tok/s |
| Fable 5.1 | 0,99 sn | 84,8 tok/s |
| Opus 4.8 | 1,40 sn | 69,9 tok/s |
Yani araç çağrısı yoğun bir oturum yavaş hissettirdiğinde, sorun nadiren modelin çıktı kapasitesidir. Sorun tur sayısıdır. On iki dosyayı tek tek okuyan bir ajan on iki sabit maliyet öder; aynı ajan onları tek bir toplu çağrıda okuduğunda bir tane öder. Bu, token maliyetlerini azaltma konusundaki dersin aynısı: daha hızlı bir model değil, daha az ama daha büyük turlar.
Derlemdeki en uzun tek tur, Opus 5'te 236 saniyede 21.332 çıktı token'ı, yani baştan sona saniyede 90 token: sabit maliyet amorti edildiğinde, bu modelde standart hızda gözlemlediğimiz tavan bu.
Düşünme token'ları çıktı token'larıdır
output_tokens modelin yanıtlamadan önce yaptığı düşünmeyi içerir ve output_tokens_details.thinking_tokens bunun ne kadar olduğunu söyler. Derlemimizde düşünme, Opus 5'in ürettiği her şeyin %30'u, Opus 5.5 için %18, Fable 5.1 için %36 ve çoğunlukla inceleme görevlerinde daha yüksek bir çaba seviyesinde çalıştırdığımız Sonnet 5 için %54.
Bu, yavaş bir turu yorumlarken önemlidir. Sekiz saniye düşünüp iki satır yazdıran bir tur yavaş bir model değildir, hiç görmediğin 600 token üretmiş bir turdur. Düşünmeli turlar, token başına, düşünmesiz turlardan biraz daha hızlıdır: Opus 5'te saniyede 67 token'a karşılık 57, çünkü daha uzundurlar ve sabit maliyeti daha iyi amorti ederler. Bir oturum ağır hissettiriyorsa ve akıl yürütmeye ihtiyacın yoksa, kaldıraç model değil, çaba seviyesidir.
Önbellek okumaları faturayı değiştirir, hızı değil
Claude Code'daki neredeyse her tur prompt önbelleğine isabet eder: 16.680 Opus 5 turundan yalnızca 130'unda cache_read_input_tokens sıfırdı ve bunlar bir oturumun ilk turlarıdır. 100 ile 500 çıktı token'ı arasındaki turlarda, önbellekli olanlar medyanda saniyede 60,6 token akıtıp 3,4 saniye sürüyor; önbelleksiz olanlar 58,0 akıtıp 3,7 saniye sürüyor. Fark gerçek ama küçük ve akış hızında değil, sabit maliyette duruyor. Önbellek, taşıdığın bağlamın fiyatıyla ilgilidir; AgentsRoom terminalindeki token sayacının önbellek okumalarını ve yazmalarını ayrı rakamlar olarak göstermesinin nedeni de budur.
Ay boyunca istikrarlı
Birikimli bir sayı bir kaymayı gizleyebilir, bu yüzden en yaygın tür olan 100 ile 500 token arasındaki turlarda Opus 5'in haftalık medyanına da baktık: hafta hafta saniyede 63,6, 64,1, 60,9, 61,7, 56,9 token, ardından eksik son haftada 68,7. 57 ile 69 arasında, belirgin bir eğilim yok. Oturumların bir öğleden sonra daha yavaş hissettiriyorsa, modeli suçlamadan önce betiği yalnızca o gün için çalıştırmaya değer.
Hızlı mod neyi değiştirir ve neyi ölçemedik
Her usage bloğu bir speed alanı taşır ve bizim 20.408 turumuzun hepsinde değer standard. Anthropic, Claude Opus için CLI'de /fast ile ya da kullanıcı ayarlarında "fastMode": true ile açılan ve modeli token başına daha yüksek bir fiyata 2,5 kata kadar hızlandıran bir hızlı mod belgeliyor: Opus 5.5'te milyon girdi token'ı başına 8 dolar ve milyon çıktı token'ı başına 40 dolar, Opus 5 ve Opus 4.8'de 10 ve 50. Pro ve Max planlarında abonelik pencerelerinin dışında, kullanım kredilerinden faturalandırılır; Sonnet ve Haiku bunu desteklemez ve açmak seni Opus'a geçirir. Prompt'un yanındaki bir şimşek simgesi açık olduğunu gösterir.
Bunun için ödeme yapmadık, bu yüzden belgelenen 2,5 katın yanına koyacak ölçülmüş bir rakamımız yok. Sen kullanıyorsan, aynı betik ne elde ettiğini söyler: turları usage["speed"] == "fast" üzerinden filtrele ve medyanları karşılaştır. Rakamları bize gönder.
Bu, ajanları çalıştırma biçimimizde neyi değiştiriyor
Üç şey, hiçbiri daha hızlı bir model seçmekle ilgili değil.
Birincisi beklentilerle ilgili. Yedi ajanlık bir gece çalışması iki milyon çıktı token'ı üretiyorsa, bu saniyede 70 token'la sekiz saatlik üretim demektir ve paralel çalışan ajanlara dağılır. Hızı bilmek, zamanlanmış bir görevin bir sonraki başlamadan bitip bitemeyeceğini söylemeni sağlar.
İkincisi turlarla ilgili. Tur başına sabit saniye, 30 token'lık bir onayda da 3.000 token'lık bir diff'te de aynıdır. Her küçük adımdan önce soran ya da dosyaları tek tek okuyan ajanlar, zamanlarını o saniyede geçirir. Bu yüzden gözetimsiz çalışan ajanların prompt'larına "bağımsız okumalarını grupla" yazıyoruz.
Üçüncüsü sayacın ne göstermesi gerektiğiyle ilgili. AgentsRoom'daki oturum monitörü token'ları ve önbelleği gösterir, bir oturum ağırlaştığında da kırmızıya döner; bir hız göstermez ve bu ölçümden sonra göstermesi gerektiğinden emin değiliz. Hız, oturumun değil, modelin ve tur boyutunun bir özelliğidir ve bir geliştiricinin ihtiyaç duyduğu sayı yukarıdaki tablolardadır. Bu yüzden bu bir widget değil, bir makale.
Sık sorulan sorular
Claude Code saniyede kaç token üretir?
27 Ağustos ile 25 Eylül 2026 arasında kaydedilen 20.408 turumuzda: Opus 5'in medyanı saniyede 63 çıktı token'ı (tüm token'ları tüm saniyelere bölersen 69), Opus 5.5 95 (109), Sonnet 5 77 (87), Fable 5.1 75 (80) ve Opus 4.8 61 (64). Bu rakamlar turun tamamını sayar, isteğin makinenden çıktığı andan akışla gelen son token'a kadar, yani gerçekten beklediğin süre budur.
/usage veya /cost saniyede token'ı gösterir mi?
Hayır. /usage planının kotasını, 5 saatlik ve haftalık pencereleri ve bağlam penceresinin kullanılan payını gösterir; /cost, /usage için bir takma addır. İkisi de bir hız yazdırmaz. Hızın var olduğu tek yer ~/.claude/projects/ altındaki oturum transkriptidir; orada her asistan mesajı bir zaman damgası ve çıktı token sayısını taşır. Bu makaledeki betiğin okuduğu şey de budur.
Kısa bir yanıt neden uzun bir yanıttan daha yavaş hissettirir?
Çünkü her tur, ilk token gelmeden önce sabit bir süre maliyeti öder: isteğin gönderilmesi, prompt'un işlenmesi, akışın başlaması. Verilerimizde bu ek yük Opus 5 ve Opus 5.5'te yaklaşık bir saniye, Sonnet 5'te yarım saniye. 80 token'lık bir yanıtta bir saniye turun üçte biridir, bu yüzden ölçülen hız saniyede 40 token'a düşer; 3.000 token'lık bir yanıtta aynı saniye kaybolur ve hız 80'e ya da daha üstüne çıkar. Akış hızının kendisi sabittir.
Düşünme token'ları hıza dahil mi?
Evet. Her mesajın usage bloğu, output_tokens değerini bir output_tokens_details.thinking_tokens dökümüyle birlikte bildirir ve düşünme token'ları output_tokens içindedir. Derlemimizde bunlar Opus 5'in ürettiği her şeyin %30'u, Opus 5.5 için %18 ve çoğunlukla daha yüksek bir çaba seviyesinde çalışan Sonnet 5 için %54. Uzun süre düşünen bir tur yavaş değildir, görmediğin token'lar üretmektedir.
Prompt önbelleği Claude Code'u hızlandırır mı?
Çıktı hızını değil. 100 ile 500 token arasındaki turlarda Opus 5, istek prompt önbelleğine isabet ettiğinde medyanda saniyede 60,6 token, isabet etmediğinde 58,0 token akıtır ve turun tamamı sırasıyla 3,4 ve 3,7 saniye sürer. Önbellek, bağlam için ne ödediğinle ilgilidir, yanıtın ne kadar hızlı çıktığıyla değil.
Claude Code hızlı mod nedir ve ne kadar daha hızlıdır?
Anthropic'in 2,5 kata kadar daha hızlı olarak belgelediği, token başına daha yüksek fiyatlı bir Claude Opus yapılandırması: Opus 5.5'te milyon girdi token'ı başına 8 dolar ve milyon çıktı token'ı başına 40 dolar, Opus 5 ve Opus 4.8'de 10 ve 50, abonelik pencerelerinden değil kullanım kredilerinden faturalandırılır. /fast ile açıp kapatırsın ve prompt'un yanında küçük bir şimşek simgesi belirir. Ölçtüğümüz 20.408 turun hiçbiri hızlı modda çalışmadı (her transkript speed: standard diyor), bu yüzden onun için ölçülmüş bir rakamımız yok; bu makaledeki rakamlar standart hızdadır.
AgentsRoom'u İndirin
Tüm yapay zeka ajanlarınızı, tüm projelerinizde, tek bir pencereden çalıştırın.
Yardımcı uygulama: hareket halindeyken ajanlarınızı izleyin
Claude, Codex, Antigravity CLI veya başka bir AI sağlayıcı kullan.
Hataları ve istekleri doğrudan genel backlogunuza gönderin.
Okumaya devam et
Claude Code Remote Control daha fazla token harcıyor mu? Peki Codex'te var mı?
Anthropic Remote Control'ü yayınladığından beri insanların Google'a yazdığı iki soru: bir Claude Code oturumunu telefondan yönetmek daha fazla tokena mal oluyor mu, ve Codex için bir eşdeğeri var mı. Kısa cevaplar: hayır, bir tur nereden yazarsanız yazın bir turdur, ve evet ama yalnızca yarısı mevcut. İşte Remote Control'ün gerçekte ne olduğu, token sorusunu dört komutla kendinizin nasıl ölçeceği, codex remote-control'ün bugün ne yaptığı ve bir sağlayıcıyla hiç konuşmayan bir mobil kumandanın hesabı nasıl değiştirdiği.
Makaleyi okuOn ajan aynı tip kontrolünü aynı anda çalıştırdı. Çözüm bir klasördü.
Tek bir checkout içinde on yedi kod ajanı, aynı anda on tsc süreci, load average 37 ve 87 MB boş bellek. Doksan saniyelik bir tip kontrolü 7 dk 36 sürdü. İşte ölçüm, makinenin neden hesap yapmadığı ve sorunu çözen küçük paylaşımlı kilit. Her depoya kopyalanabilir.
Makaleyi okuAntigravity Remote Control: telefonunuzdan neler yapar, neler yapmaz
Google, Antigravity 2.0 ve Antigravity CLI için Remote Control'ü 21 Ağustos 2026'da yayınladı ve bu isim üzerindeki arama hacmi, insanların bunun gerçekte ne olduğunu öğrenmek istediğini gösteriyor. 22 Eylül'de belgelerle karşılaştırılarak doğrulanmış haliyle ne yaptığı: ayar anahtarı ve agy remote-control komutları, Google hesabınızla oturum açtığınız web gösterge paneli, push bildirimlerini sağlayan ana ekrana kurulum, tek bir seçicide birden fazla makine ve önemli olan üç sınır (yalnızca Antigravity, makine başına bir daemon, ayarlar CLI'de kalır). Ardından AgentsRoom mobil kumandasının diğer 13 CLI'yi nasıl kapsadığı ve ikisinin birbirini nasıl tamamladığı.
Makaleyi oku