{"slug": "cli-ile-araci-token-maliyetlerini-dusurme-2026-rehberi", "title": "CLI ile Aracı Token Maliyetlerini Düşürme (2026 Rehberi)", "summary": "CLI coding agents like Claude Code and Codex can waste significant tokens by reading entire files, retaining full conversation histories, and performing unnecessary context loading, leading to high API costs. The guide recommends reducing token waste by keeping memory files like `CLAUDE.md` short, specifying exact file paths and scope in prompts, and using commands like `/compact` or `/clear` to minimize context before sending requests to the model.", "body_md": "Bir CLI kodlama ajanı, fatura gelene kadar “özgür” görünür. Claude Code veya Codex’i bir depoya yönlendirip bir modülü yeniden düzenlemesini istediğinizde, on dakika içinde kırk dosya okumuş, testleri üç kez çalıştırmış ve aslında hiç gerek olmayan bağlam için altı haneli token harcamış olabilir. Bunu gün boyu ajan kullanan sekiz kişilik bir ekiple çarptığınızda maliyet hızla büyür. İyi haber: Kodlama ajanlarında token israfının büyük kısmı, modeli değiştirmeden veya çıktı kalitesinden vazgeçmeden komut satırı alışkanlıklarıyla azaltılabilir.\n\n## TL;DR\n\nAjan maliyetini düşürmek için modele gitmeden önce bağlamı küçültün:\n\n- Çalışma kümesini dosya/dizin bazında sınırlayın.\n-\n`CLAUDE.md`\n\ngibi bellek dosyalarını kısa tutun. - Uzun oturumlarda\n`/compact`\n\nveya`/clear`\n\nkullanın. - Kararlı ön ekler için istem önbellekleme açın.\n- Basit alt görevleri daha ucuz modele yönlendirin.\n- Test, kurulum ve diff çıktısını filtreleyin.\n- Her çalıştırmanın token ve maliyetini ölçün.\n\n## Giriş\n\nSorun genelde iki şekilde görünür: Ya görev ortasında haftalık/oturum limitine çarparsınız ya da ay sonunda API faturası gelir ve “AI asistanı neden bu kadar pahalı?” sorusu sorulur.\n\nTemel neden aynıdır: CLI ajanları varsayılan olarak çok fazla bağlam taşır. On satır koda ihtiyaç duyduklarında tüm dosyayı okurlar, her dönüşte konuşma geçmişini yeniden gönderirler, komut çıktılarını ham haliyle bağlama eklerler ve aynı sistem istemini binlerce kez tekrar yollarlar.\n\nBu kaçınılmaz değildir. 2.000 token’lık kod üzerinde akıl yürütmesi gereken bir refactor işleminin 180.000 token bağlama ihtiyacı yoktur. Aradaki fark sizin tasarruf alanınızdır.\n\nBu rehberde şu başlıkları uygulamalı olarak ele alacağız:\n\n- CLI ajan çalışmasında token’ların nereye gittiği\n- Bağlam hijyeni ve bellek dosyaları\n- İstem önbellekleme\n- Model yönlendirme\n- Araç çıktısını ve dosya alımını kısaltma\n- Çalıştırma başına maliyet ölçümü\n\nÖrnekler Claude Code ve Codex üzerinden ilerliyor, ancak aynı ilkeler token tabanlı API kullanan çoğu kodlama ajanı için geçerlidir.\n\nEk bir maliyet kaynağı da API hata ayıklamasıdır. Güvenilmez bir dahili API’ye bağlanan ajan, her denemede token harcar: yeniden dener, hata gövdelerini okur, belgeleri tekrar tarar ve aynı döngüye girer.\n\n💡 Ajanlarınız API’lerle çalışıyorsa, API’leri ajana vermeden önce Apidog’da tasarlamak, mock verilerle test etmek ve sözleşmesini doğrulamak pahalı deneme-yanılma döngülerini azaltır. Ajan, sürprizlerle dolu canlı bir endpoint yerine beklenen davranışı olan bir API sözleşmesine karşı çalışır.\n\n## CLI Ajan Çalışmasında Token’lar Nereye Gider?\n\nBir ajan dönüşünde modele giriş yükü gönderilir ve modelden çıktı alınır. İkisi için de ödeme yaparsınız. Çoğu sağlayıcıda çıktı token’ları, giriş token’larından daha pahalıdır.\n\nÖrnek olarak bir model ailesinde:\n\n- Giriş: milyon token başına yaklaşık 3$\n- Çıkış: milyon token başına yaklaşık 15$\n- Daha küçük modelde giriş: yaklaşık 1$\n- Daha küçük modelde çıkış: yaklaşık 5$\n\nBunları sabit fiyat olarak değil, oranları anlamak için örnek kabul edin. Güncel fiyatları her zaman sağlayıcının fiyatlandırma sayfasından kontrol edin.\n\nTipik bir ajan çalışmasında giriş token’larını büyüten kalemler şunlardır:\n\n-\n**Sistem istemi ve araç tanımları:** Ajan talimatları ve araç JSON şemaları. Her dönüşte tekrar gönderilir. -\n**Bellek/proje dosyaları:**`CLAUDE.md`\n\ngibi dosyalar, depo kuralları ve kalıcı talimatlar. -\n**Konuşma geçmişi:**Önceki kullanıcı mesajları, model yanıtları, araç çağrıları ve araç sonuçları. -\n**Okunan dosya içerikleri:** Ajanın açtığı kaynak dosyalar. -\n**Araç çıktısı:** Test logları,`npm install`\n\nçıktısı,`git diff`\n\n, stack trace’ler.\n\nEn kritik nokta: **Konuşma geçmişi her dönüşte yeniden oynatılır.**\n\n30 dönüşlük bir oturum, tek dönüşün 30 katı değildir; büyüyen bir ön ekin tekrar tekrar gönderilmesine benzer. Bu yüzden uzun ve dağınık oturumlar pahalıdır.\n\nOturum ve limit muhasebesi hakkında daha fazla detay için [Claude Code token penceresinin nasıl sıfırlandığına](http://apidog.com/blog/claude-code-token-window-reset?utm_source=dev.to&utm_medium=wanda&utm_content=n8n-post-automation) dair açıklama faydalı bir tamamlayıcıdır.\n\n## 1. Bağlam Hijyeni ve Bellek Dosyaları\n\nEn ucuz token, hiç göndermediğiniz tokendir.\n\n### Çalışma kümesini baştan sınırlayın\n\nAjanı depo kökünde açıp şunu demeyin:\n\n```\nclaude \"fatura mantığını yeniden düzenle\"\n```\n\nBu, ajanın gereksiz keşif yapmasına yol açar.\n\nBunun yerine dosya ve kapsam belirtin:\n\n```\nclaude \"src/payments/retry.ts ve ilgili test dosyasında üstel geri çekilmeyi kullanacak şekilde yeniden deneme mantığını yeniden düzenle\"\n```\n\nDaha iyi bir istem şunları içerir:\n\n- Değiştirilecek dosyalar\n- Değişiklik hedefi\n- Test kapsamı\n- Okunmaması gereken alanlar\n\nÖrnek:\n\n```\nclaude \"\nSadece şu dosyaları kullan:\n- src/payments/retry.ts\n- src/payments/retry.test.ts\n\nAmaç:\nYeniden deneme mantığını üstel geri çekilme kullanacak şekilde düzenle.\n\nKısıtlar:\n- Public API imzasını değiştirme.\n- Başka dizinleri tarama.\n- Sadece başarısız testleri çalıştır.\n\"\n```\n\n### Bellek dosyasını kısa tutun\n\n`CLAUDE.md`\n\nveya eşdeğer proje bellek dosyası her dönüşte bağlama eklenebilir. Bu dosya büyüdükçe her ajan çağrısının sabit maliyeti artar.\n\nYaklaşık token sayısını kontrol edin:\n\n```\nwc -c CLAUDE.md | awk '{print \"≈\", int($1/4), \"token/dönüş\"}'\n```\n\nİyi bir `CLAUDE.md`\n\nşunları içermelidir:\n\n```\n# Proje Kuralları\n\n## Komutlar\n\n- Test: npm test --silent\n- Lint: npm run lint\n- Typecheck: npm run typecheck\n\n## Kod Kuralları\n\n- Public API imzalarını değiştirme.\n- Yeni bağımlılık eklemeden önce sor.\n- Test eklemeden refactor tamamlanmış sayılmaz.\n\n## Belgeler\n\n- API sözleşmeleri: docs/api.md\n- Ödeme akışı: docs/payments.md\n```\n\nKötü örnek:\n\n```\n# Proje Hakkında\n\nBu proje 2021 yılında başladı...\nBurada tüm mimari geçmişi...\nTüm endpoint belgeleri...\nTüm veritabanı tabloları...\nTüm onboarding notları...\n```\n\nBellek dosyası wiki değildir. Sık kullanılan kuralları tutun, detaylı belgeleri linkleyin.\n\n### Uzun oturumları sıkıştırın veya temizleyin\n\nBir görev bittiğinde aynı konuşma içinde yeni göreve geçmeyin. Eski bağlam yeni görevin maliyetini artırır.\n\nClaude Code’da:\n\n```\n/compact\n```\n\nBu, geçmişi kısa bir özete dönüştürür.\n\nYeni ve ilgisiz bir göreve başlıyorsanız:\n\n```\n/clear\n```\n\nBasit kural:\n\n- Aynı mantıksal görev: devam edin.\n- Yeni görev:\n`/compact`\n\nveya`/clear`\n\n.\n\n[Claude Code iş akışlarındaki](http://apidog.com/blog/claude-code-workflows?utm_source=dev.to&utm_medium=wanda&utm_content=n8n-post-automation) desenler bu kapsam belirleme alışkanlığına dayanır.\n\n### Ignore dosyası kullanın\n\nAjanın şu dizinleri okumasını engelleyin:\n\n```\nnode_modules/\ndist/\nbuild/\ncoverage/\n.next/\n.vendor/\n*.lock\n```\n\nAjan `node_modules/`\n\nveya `dist/`\n\ngörmezse, bu dosyaları okuyup token harcayamaz.\n\n## 2. İstem Önbellekleme: Aynı Ön Ek İçin Tekrar Ödeme Yapmayın\n\nİstem önbellekleme, sistem istemi, araç tanımları ve depo kuralları gibi kararlı ön eklerin sağlayıcı tarafından önbelleğe alınmasını sağlar.\n\nEkonomi basittir:\n\n- İlk yazma normal girişten biraz pahalıdır.\n- Sonraki okumalar yaklaşık %90 indirimlidir.\n- Büyük ve sabit ön eklerde ciddi tasarruf sağlar.\n\nKararlı içeriği önce, değişken içeriği sonra koyun:\n\n```\nresponse = client.messages.create(\n    model=\"claude-sonnet-4-6\",\n    max_tokens=2048,\n    system=[\n        {\n            \"type\": \"text\",\n            \"text\": SYSTEM_PROMPT + REPO_CONVENTIONS,\n            \"cache_control\": {\"type\": \"ephemeral\"},\n        }\n    ],\n    messages=[\n        {\n            \"role\": \"user\",\n            \"content\": user_task,\n        }\n    ],\n)\n```\n\nKullanımı ölçün:\n\n```\nu = response.usage\n\nprint(\"önbellek yazma:\", u.cache_creation_input_tokens)\nprint(\"önbellek okuma :\", u.cache_read_input_tokens)\nprint(\"yeni giriş     :\", u.input_tokens)\n```\n\nDikkat edilmesi gerekenler:\n\n- Önbellek kesme noktasından önce değişken veri koymayın.\n- Sistem istemine timestamp eklemeyin.\n- Aynı işleri yakın zaman aralığında çalıştırın.\n- Ön ek bayt düzeyinde kararlı olmalıdır.\n\nÖrnek senaryo:\n\n- Sistem istemi + repo kuralları: 8.000 token\n- Günlük çağrı sayısı: 60\n\nÖnbellekleme yoksa 8.000 token için 60 kez ödeme yaparsınız. Önbellekleme varsa ilk yazmadan sonra çoğu çağrı indirimli okunur.\n\nOpenAI tarafında da desteklenen modellerde önbelleğe alınmış giriş için benzer indirimler otomatik uygulanabilir. Ayarlar değişebilir, ancak ilke aynıdır.\n\nCodex tarafında yönlendirme ve ücretsiz katman seçenekleri için [Codex aracılığıyla GPT-5.5’i ücretsiz çalıştırma](http://apidog.com/blog/how-to-use-gpt-5-5-free-codex?utm_source=dev.to&utm_medium=wanda&utm_content=n8n-post-automation) rehberi bu stratejiyi tamamlar.\n\n## 3. Model Yönlendirme: Basit İşe Ucuz Model\n\nHer görev en güçlü modeli gerektirmez.\n\nŞunlar genellikle küçük modelle yapılabilir:\n\n- Commit mesajı yazma\n- Diff özetleme\n- Changelog girdisi oluşturma\n- Basit test taslağı üretme\n- Değişken yeniden adlandırma\n- Lint hatası açıklama\n\nŞunlar daha güçlü model gerektirebilir:\n\n- Mimari karar\n- Karmaşık refactor\n- Çok dosyalı hata ayıklama\n- Performans analizi\n- Güvenlik açısından kritik değişiklik\n\nCLI’dan model seçimi:\n\n```\nclaude --model haiku \"evreye alınmış diff için conventional commit mesajı yaz\"\n\nclaude --model sonnet \"ödeme servisi için cache katmanını yeniden tasarla\"\n```\n\nVarsayılan strateji:\n\n```\n# Basit görevler için ucuz model\nalias ccheap='claude --model haiku'\n\n# Zor görevler için güçlü model\nalias cstrong='claude --model sonnet'\n```\n\nKullanım:\n\n```\nccheap \"bu diff'i 5 maddede özetle\"\n\ncstrong \"src/payments içindeki retry ve idempotency akışını analiz et\"\n```\n\nÇoğu ekip tersini yapar: Her şeyi pahalı modelle çalıştırır ve basit işler için gereksiz ödeme yapar.\n\nAlt-ajan destekleyen sistemlerde de aynı kural geçerlidir:\n\n- Üst ajan: güçlü model, küçük karar sayısı\n- Alt ajan: ucuz model, dar görev, kısa bağlam\n\nÖrneğin:\n\n```\nAlt ajan görevi:\nSadece src/payments dizininde retry ile ilgili fonksiyonları bul.\nKod değiştirme.\nEn fazla 10 maddelik özet döndür.\n```\n\nÜst ajan sadece özetlenmiş sonucu görür; tüm arama bağlamını taşımak zorunda kalmaz.\n\nBu yetki devri desenleri için [Codex ve Claude Code’daki hedef komut](http://apidog.com/blog/goal-command-codex-claude-code-autonomous-agents?utm_source=dev.to&utm_medium=wanda&utm_content=n8n-post-automation) rehberindeki otonom döngü örnekleri faydalıdır.\n\nLimitli plan kullanıyorsanız model yönlendirme yalnızca maliyeti değil, hakkınızın ne kadar dayanacağını da etkiler. [Claude Code haftalık limit artışı](http://apidog.com/blog/claude-code-weekly-limits-50-percent-increase-july-2026?utm_source=dev.to&utm_medium=wanda&utm_content=n8n-post-automation) yardımcı olabilir, ancak doğru yönlendirme hâlâ kritik kaldıraçtır.\n\n## 4. Araç Çıktısını Kısaltın\n\nAjanın çalıştırdığı her komut metin döndürür. Bu metin bağlama eklenir ve sonraki dönüşlerde tekrar gönderilir.\n\nGürültülü komutlar pahalıdır:\n\n```\nnpm test\nnpm install\ngit diff\npytest\n```\n\n### Komutları sessiz çalıştırın\n\n```\n# Gürültülü\nnpm test\n\n# Daha kısa çıktı\nnpm test --silent -- --reporter=dot\n# Gürültülü\nnpm install\n\n# Daha kısa çıktı\nnpm install --silent --no-audit --no-fund\n```\n\n### Çıktıyı filtreleyin\n\n```\npytest -q 2>&1 | tail -n 30\ngit diff --stat\nnpm test 2>&1 | grep -E \"(FAIL|✗|Error)\" | head -n 20\n```\n\nAjan çoğu zaman tüm loga değil, şu bilgilere ihtiyaç duyar:\n\n- Test geçti mi?\n- Hangi test başarısız oldu?\n- Hata mesajı nedir?\n- İlgili stack trace’in son kısmı nedir?\n\n### Büyük diff’leri sınırlayın\n\nŞunu yaptırmayın:\n\n```\ngit diff\n```\n\nÖnce özet alın:\n\n```\ngit diff --stat\n```\n\nSonra yalnızca ilgili dosyayı açtırın:\n\n```\ngit diff -- src/payments/retry.ts\n```\n\nKilit dosyaları özellikle tehlikelidir:\n\n```\ngit diff -- package-lock.json\n```\n\nBu çıktı binlerce satır olabilir. Ajanın genelde tamamına ihtiyacı yoktur.\n\n## 5. Tüm Dosya Yerine Hedefli Okuma Kullanın\n\nBir fonksiyonu değiştirmek için 1.500 satırlık dosyanın tamamını okumak israftır.\n\nDaha iyi yaklaşım:\n\n```\ngrep -n \"function retryPayment\" src/payments/retry.ts\n```\n\nSonra ilgili pencereyi okuyun:\n\n```\nsed -n '120,220p' src/payments/retry.ts\n```\n\nAjan istemine bunu açıkça yazın:\n\n```\nTüm dosyayı okuma.\nÖnce retry mantığını grep ile bul.\nSadece ilgili fonksiyonun çevresindeki yaklaşık 100 satırı oku.\n```\n\nBüyük dosyalarda bu fark ciddi olabilir:\n\n- Tüm dosya: ~18.000 token\n- Hedefli pencere: ~800 token\n\n## 6. RAG ve Doküman Alımını Sınırlayın\n\nAjanınız kod tabanı araması veya doküman RAG kullanıyorsa, alınan parçaların sayısı ve boyutu maliyeti doğrudan etkiler.\n\nKötü varsayılan:\n\n```\ntop_k = 50\nchunk_size = 800\n```\n\nBu, modele 40.000 token’a yakın bağlam taşıyabilir.\n\nDaha iyi başlangıç:\n\n```\ntop_k = 8\nchunk_size = 200\n```\n\nPratik kural:\n\n- Daha az ama daha alakalı parça\n- Kısa chunk\n- Soruya göre filtrelenmiş dizin\n- Gereksiz doküman koleksiyonlarını dışarıda bırakma\n\nÖrnek istem:\n\n```\nSadece docs/payments ve src/payments altında arama yap.\nGenel README, changelog ve onboarding belgelerini kullanma.\nEn fazla 8 kısa sonuç döndür.\n```\n\n## 7. Her Çalıştırmanın Maliyetini Ölçün\n\nÖlçmediğiniz maliyeti azaltamazsınız.\n\nAPI yanıtındaki kullanım bilgilerini kaydedin:\n\n```\nu = response.usage\n\nINPUT_RATE  = 3.00 / 1_000_000\nOUTPUT_RATE = 15.00 / 1_000_000\nCACHE_READ  = 0.30 / 1_000_000\nCACHE_WRITE = 3.75 / 1_000_000\n\ncost = (\n    u.input_tokens * INPUT_RATE +\n    u.output_tokens * OUTPUT_RATE +\n    u.cache_read_input_tokens * CACHE_READ +\n    u.cache_creation_input_tokens * CACHE_WRITE\n)\n\nprint(\n    f\"çalıştırma maliyeti ≈ ${cost:.4f} \"\n    f\"(girdi={u.input_tokens}, \"\n    f\"çıktı={u.output_tokens}, \"\n    f\"önbellek okuma={u.cache_read_input_tokens})\"\n)\n```\n\nCLI kullanıyorsanız:\n\n```\nclaude /cost\n```\n\nDaha iyi izleme için ajan çağrısını küçük bir wrapper içine alın:\n\n``` bash\n#!/usr/bin/env bash\n\nTASK=\"$1\"\nSTART=$(date -Iseconds)\n\nclaude \"$TASK\"\n\nEND=$(date -Iseconds)\n\necho \"$START,$END,$TASK\" >> agent-runs.csv\n```\n\nDaha gelişmiş sürümde şunları da kaydedin:\n\n- Model\n- Proje\n- Görev etiketi\n- Giriş token\n- Çıkış token\n- Cache read/write token\n- Yaklaşık maliyet\n\nAPI anahtarlarını da ayırın:\n\n- Proje başına anahtar\n- Ajan türü başına anahtar\n- Ortam başına anahtar\n\nBöylece harcama tek bir toplamda kaybolmaz.\n\n## Taktik Karşılaştırması\n\n| Taktik | Tipik token tasarrufu | Çaba |\n|---|---|---|\n| Çalışma kümesini sınırlama | Çalıştırma başına girdide %30–60 | Düşük |\n| Kısa ve kararlı bellek dosyası | Her dönüşte %5–15 | Düşük |\n`/compact` veya `/clear`\n|\nUzun oturumlarda %40–80 | Düşük |\n| İstem önbellekleme | Önbelleğe alınan ön ekte ~%90 | Orta |\n| Model yönlendirme | Yönlendirilen alt görevlerde %50–80 | Orta |\n| Sessiz/filtrelenmiş araç çıktısı | Araç yoğun çalıştırmalarda %20–50 | Düşük |\n| Hedefli dosya okuma | Büyük dosyalarda %70–95 | Düşük |\n| Kısıtlı RAG alımı | RAG yoğun ajanlarda %30–60 | Orta |\n| Çalıştırma başına maliyet ölçümü | Doğrudan %0; diğerlerini mümkün kılar | Düşük |\n\nTasarruf oranları örnektir. Gerçek kazanç, mevcut israf seviyenize bağlıdır.\n\n## Uygulanabilir Kontrol Listesi\n\nBaşlamak için sırayla şunları yapın:\n\n```\n[ ] CLAUDE.md dosyasını 1.000 token altına indir.\n[ ] node_modules, dist, build, coverage ve lock dosyalarını ignore et.\n[ ] Ajan istemlerinde dosya/dizin kapsamı belirt.\n[ ] Test komutlarını sessiz moda al.\n[ ] git diff yerine önce git diff --stat kullan.\n[ ] Uzun oturumlarda /compact kullan.\n[ ] Yeni görevlerde /clear ile başla.\n[ ] Commit mesajı/diff özeti gibi işleri ucuz modele yönlendir.\n[ ] Kararlı sistem istemi için prompt caching aç.\n[ ] Her çalıştırma için token ve maliyet kaydı tut.\n```\n\n## Sonuç\n\nAjan token maliyetlerinin çoğu modelden değil, çalışma şeklinden kaynaklanır. Gereksiz bağlam, uzun konuşma geçmişi, ham araç çıktısı ve yanlış model seçimi faturayı büyütür.\n\nÖnce düşük çabalı adımları uygulayın:\n\n- Kapsamı daraltın.\n- Bellek dosyasını küçültün.\n- Araç çıktısını sessizleştirin.\n- Uzun oturumları temizleyin.\n- Basit işleri ucuz modele taşıyın.\n\nArdından istem önbellekleme ve maliyet ölçümü ekleyin. Bu kombinasyon, çıktı kalitesini düşürmeden ajan maliyetlerini yönetilebilir hale getirir.", "url": "https://wpnews.pro/news/cli-ile-araci-token-maliyetlerini-dusurme-2026-rehberi", "canonical_source": "https://dev.to/tobiass_hoffmann/cli-ile-araci-token-maliyetlerini-dusurme-2026-rehberi-5fep", "published_at": "2026-05-20 08:46:49+00:00", "updated_at": "2026-05-20 09:02:21.333818+00:00", "lang": "en", "topics": ["artificial-intelligence", "large-language-models", "developer-tools"], "entities": ["Claude Code", "Codex", "CLI"], "alternates": {"html": "https://wpnews.pro/news/cli-ile-araci-token-maliyetlerini-dusurme-2026-rehberi", "markdown": "https://wpnews.pro/news/cli-ile-araci-token-maliyetlerini-dusurme-2026-rehberi.md", "text": "https://wpnews.pro/news/cli-ile-araci-token-maliyetlerini-dusurme-2026-rehberi.txt", "jsonld": "https://wpnews.pro/news/cli-ile-araci-token-maliyetlerini-dusurme-2026-rehberi.jsonld"}}