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ç.

Opus 5.5 saniyede token: 19 Ekim 2026 güncellemesi

Ölçümü tamamlanmış son dört hafta üzerinde yeniden çalıştırdık: 21 Eylül'den 18 Ekim 2026'ya kadar (UTC). Varsayılan transkript dizinini ve AgentsRoom'un kullandığı ek Claude profillerini dahil ettik, ardından her isteği dosyalar arasında yalnızca bir kez saydık.

Opus 5.5, standart hızÖlçülen değer
Benzersiz istekler30.119
Medyan çıktı hızı89,4 tok/s
Ağırlıklı çıktı hızı (toplam token / toplam saniye)97,5 tok/s
Tur başına tahmini sabit süre1,29 sn
Düşünmenin çıktı token'larındaki payı%42,1

Sabit süre, geçen saniyelerin çıktı token'larına göre en küçük kareler regresyonundaki kesişimdir. Tur başına ek yükün bir tahminidir; bir fiyat ya da ilk token'a kadar geçen sürenin doğrudan bir ölçümü değildir. Düşünme her iki hıza da dahildir.

Bu güncelleme zamanlamayı da düzeltiyor. Doğrudan ebeveyn, yanıt zaten gelirken yazılmış teknik bir ek olabilir; deferred_tools_record de bunlardan biridir. Bir istekte eski yöntem 562 token'ı 0,046 saniyeye bölerek 12.000 tok/s'nin üzerinde bir değer buluyordu. Ebeveyn zincirini, isteği tetikleyen kullanıcı mesajına ya da araç sonucuna kadar geri izlemek, yaklaşık yedi saniyelik geçen süreyi geri kazandırır. Bu düzeltme ve tekrarlanan isteklerin ayıklanmasıyla, bu penceredeki hiçbir Opus 5.5 isteği 400 tok/s'yi aşmıyor; yüksek hızları filtrelemedik.

Aşağıdaki Eylül tabloları özgün ölçüm olarak kalıyor. 94,9 tok/s medyanları ve 109,3 tok/s ağırlıklı hızları eski zamanlamaya ve farklı bir örnekleme dayanıyor, bu yüzden aradaki fark Opus 5.5'in yavaşladığının kanıtı değil. Bu rakamlar yalıtılmış bir model kıyaslamasını değil, bizim iş yüklerimizi, ağımızı ve transkriptlerdeki zaman damgalarını yansıtıyor.

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:

  • timestamp içerik bloğu eklendiği anda yazılır, bu yüzden bir turun son bloğu akışın sonuna tarihlenir.
  • parentUuid önceki olayı gösterir; bu, yanıt sırasında yazılmış teknik bir ek olabilir. Zinciri attachment, system ve progress olaylarının ötesine, turu tetikleyen kullanıcı mesajına ya da araç sonucuna kadar izle; onun zaman damgası turun başlangıcı için yaklaşık bir değerdir.
  • requestId tek bir API çağrısının bloklarını gruplar. Biraz metin yazıp ardından bir araç çağıran bir tur, aynı requestId ve aynı usage ile 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_tokens isteğin toplam çıktısıdır, düşünme dahil; output_tokens_details.thinking_tokens bunun 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, ebeveyn zincirini isteği tetikleyen kullanıcı mesajına ya da araç sonucuna kadar izle ve çıktı token'larını son asistan satırına kadar geçen saniyelere böl. Her isteği dosyalar arasında bir kez say ve her modelin ve hız ayarının sonuçlarını ayrı ayrı raporla. Bu zaman damgaları yerel ek yükü içerir; API'nin üretim süresini yalıtmaz.

Çıktı token'ı olmayan, tetikleyicisi bulunamayan, süresi sıfır ya da negatif olan veya on beş dakikayı aşan turları atıyoruz. Aşağıdaki betik, tarihli güncellemenin penceresini UTC'de, başlangıç dahil ve bitiş hariç olacak şekilde kullanır. Başka bir dönemi ölçmek için START ve END değerlerini değiştir.

Güncellenmiş betik Python 3.10 veya daha yenisini gerektirir ve ek bir bağımlılığı yoktur. İstediğin yerden çalıştır: varsayılan projeleri ve ek yerel Claude profillerini, içeriklerini hiçbir yere yüklemeden okur.

import json, glob, os, statistics as st
from datetime import datetime
from collections import defaultdict

START, END = "2026-09-21", "2026-10-19"  # UTC, end exclusive
PATTERNS = ("~/.claude/projects/*/*.jsonl",
            "~/.agentsroom/claude-profiles/*/projects/*/*.jsonl")

def ts(s): return datetime.fromisoformat(s.replace("Z", "+00:00")).timestamp()

def read_session(path):
    by_uuid, groups = {}, defaultdict(list)
    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"):
                groups[o.get("requestId") or o["uuid"]].append(o)
    return by_uuid, groups

def trigger(first, by_uuid):
    parent, visited = by_uuid.get(first.get("parentUuid")), set()
    while parent and parent.get("type") in ("attachment", "system", "progress"):
        uid = parent.get("uuid")
        if uid in visited: return None
        visited.add(uid)
        parent = by_uuid.get(parent.get("parentUuid"))
    return parent if parent and parent.get("type") == "user" else None

by_model, seen = defaultdict(list), set()
for pattern in PATTERNS:
    for path in glob.glob(os.path.expanduser(pattern)):
        by_uuid, groups = read_session(path)
        for rid, blocks in groups.items():
            first, last = blocks[0], blocks[-1]
            if rid in seen or not START <= first["timestamp"] < END: continue
            usage = first["message"]["usage"]
            out, parent = usage.get("output_tokens", 0), trigger(first, by_uuid)
            if not parent or not parent.get("timestamp") or out <= 0: continue
            dur = ts(last["timestamp"]) - ts(parent["timestamp"])
            if not 0 < dur <= 900: continue
            seen.add(rid)
            thinking = (usage.get("output_tokens_details") or {}).get("thinking_tokens", 0)
            key = first["message"].get("model"), usage.get("speed", "unknown")
            by_model[key].append((out, dur, thinking))

for (model, speed), rows in sorted(by_model.items(), key=lambda kv: -len(kv[1])):
    outputs, durations, thinking = zip(*rows)
    median = st.median(o / d for o, d, _ in rows)
    weighted = sum(outputs) / sum(durations)
    overhead = st.linear_regression(outputs, durations).intercept if len(set(outputs)) > 1 else float("nan")
    print(f"{model} {speed}: turns={len(rows)} median={median:.1f} "
          f"weighted={weighted:.1f} tok/s overhead={overhead:.2f}s "
          f"thinking={100 * sum(thinking) / sum(outputs):.1f}%")

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.

ModelTurlarMedyan tok/s25. ile 75. yüzdelik arasıAğırlıklı tok/s
Opus 516.70862,751,5 ile 71,8 arası69,8
Opus 5.51.10294,980,9 ile 109,0 arası109,3
Sonnet 542677,062,6 ile 91,5 arası87,0
Fable 5.12.07075,166,1 ile 82,9 arası80,0
Opus 4.810260,949,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ıTurlarMedyan tok/sMedyan süre
1 ile 99 arası1.85442,11,9 sn
100 ile 499 arası10.74360,63,4 sn
500 ile 1.999 arası3.51272,811,1 sn
2.000 ve üzeri59978,438,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:

ModelTur başına sabit maliyetAkış hızı
Opus 51,03 sn81,6 tok/s
Opus 5.51,10 sn148,9 tok/s
Sonnet 50,45 sn94,9 tok/s
Fable 5.10,99 sn84,8 tok/s
Opus 4.81,40 sn69,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 Opus 5.5 saniyede kaç token üretir?

19 Ekim 2026'da güncellenen ölçümümüzde Claude Opus 5.5, 21 Eylül ile 18 Ekim arasındaki 30.119 benzersiz istekte medyanda saniyede 89,4 çıktı token'ı verdi; hepsi standart hızda. Toplam çıktı token'larını toplam geçen saniyeye bölmek 97,5 tok/s verir. Düşünme, çıktı token'larının %42,1'ini oluşturur. Bunlar kendi oturumlarımızın transkriptlerinden alınmış, turun başından sonuna uçtan uca ölçümlerdir; evrensel bir akış hızı kıyaslaması değildir.

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.

DevOps Mühendisiİçerik YazarıÖn Yüz GeliştiriciSatış UzmanıArka Uç GeliştiriciKoç ve EğitmenYazılım MimarıHukuk MüşaviriQA MühendisiFinans ve İdari İşlerTam Yığın GeliştiriciKreatif TasarımcıMobil GeliştiriciAraştırmacıGüvenlik MühendisiİK ve İşe Alım
Proje YöneticisiÇevirmenGit UzmanıVeri AnalistiSEO UzmanıMuhasebeciYerelleştirme Uzmanıİletişim ve Halkla İlişkilerBeyin Fırtınası UzmanıOperasyon ve LojistikPazarlama UzmanıMüşteri DesteğiProje asistanıSatın Alma UzmanıTopluluk YöneticisiKişisel Asistan

AgentsRoom'u İndir

Tüm yapay zeka ajanlarını, tüm projelerinde, tek bir pencereden çalıştır.

AgentsRoom'u İndirÜcretsiz

Yardımcı uygulama: hareket halindeyken ajanlarını izle

Claude, Codex, Antigravity CLI veya başka bir AI sağlayıcı kullan.

Uzantıyı yükle
Chrome Web Store

Hataları ve istekleri doğrudan genel backloguna gönder.

Bir sohbet gibi okuduğun ajanlar

Her ajanın bir rolü, bir yüzü ve mesajlaşma uygulaması gibi okuduğun bir konuşması var.

Konuşma görünümü

AgentsRoom konuşma görünümü: bir yapay zeka kodlama ajanının çalışması sohbet akışı olarak
Çoklu proje
Çoklu sağlayıcı
Çoklu ajan
Canlı durum
Diff ve commit
Mobil uygulama
Canlı önizleme
Ajan ekipleri
Tarayıcı otomasyonu
Backlog odaklı dev
Prompt kütüphanesi
Beceri kütüphanesi
Tüm özellikleri gör

Okumaya devam et