Hangi proje için ne kadar token yaktım? Tahmin etmeyi bırakıp ölçtüm
Abonelik limitlerim her hafta doluyor ama hangi projenin ne kadar token yaktığını bilmiyordum. Bunu ölçmek için bir masaüstü uygulaması yazdım.
Kısaca
Haftalık limitin dolduğunu görüyordum ama hangi projenin ne kadar token yaktığını tahmin ediyordum, ölçmüyordum. TokenMetrics, Claude Code, Codex CLI ve Gemini CLI loglarını yerelde okuyup kullanımı proje, model ve oturum bazında görünür kılıyor.
Yapay zekâ agent’larını uzun zamandır yoğun bir şekilde kullanıyorum ve kişisel aboneliklerimin haftalık limitleri neredeyse her hafta doluyor. Bir noktada kendime şunu sordum: hangi proje, hangi iş için gerçekten ne kadar token yaktım? Verebildiğim tek cevap “sanırım şu proje” oldu.
Bu konuda tahmin yapmak yalan söylemektir; ölçmek gerekir. Ölçmek de yetmez, sonucu bir bakışta anlaşılır hâle getirmek gerekir. TokenMetrics’i bunun için yazdım.
Neyi, neye sığdırmaya çalışıyorum
Zamanla kendime bazı kullanım standartları geliştirdim ve uygun sayılabilecek bir dengeyi yakalamaya çok yakın olduğumu düşünüyorum. Token kullanımımı olabildiğince abonelik paketlerime sığdırmaya çalışıyorum, ama bunu yaparken kaliteden ve güvenlikten ödün vermeden.
Yani derdim daha az kullanmak değil. Olabildiğince az token ile olabildiğince güvenli ve stabil bir çıktı almaya çalışıyorum. Yaptığım şey vibe coding değil, AI destekli geliştirme; agent’ı yöneten kişinin, onun neye mal olduğunu da bilmesi gerekiyor.
API kullanımlarım hariç, kişisel projelerim ve işlerim için 200 dolarlık Claude, 100 dolarlık ChatGPT ve Gemini için AI Pro aboneliği kullanıyorum. Bunların yanında çalıştığım şirket bir Claude Teams aboneliği sağlıyor; sanırım o da 100 dolarlık bireysel pakete yakın bir seviyede. Kişisel hesaplarımın haftalık limiti genellikle %100 dolmuş oluyor, şirket hesabı ise çoğunlukla %70 civarında kalıyor.
Limitlerin dolduğunu biliyordum. Hangi işin doldurduğunu ise bilmiyordum.
Tahmin neden güvenilmez
Hafıza dramatik olanı hatırlar. Dün sabaha kadar süren uzun bir oturumu hatırlarım; haftaya yayılmış yüzlerce küçük isteği hatırlamam. “Bu projede çok harcadım” cümlesi bir ölçüm değil, bir izlenim. Optimizasyon da izlenime kurulursa yanlış yerde optimize ederim: sorun olmayan işi kısarım, asıl harcayan işe dokunmam.
Bu yüzden tahmin etmeyi bırakıp ölçmeye karar verdim.
TokenMetrics ne okuyor
TokenMetrics, Go ile yazdığım bir masaüstü uygulaması. Pencere katmanı Wails, arayüz Svelte; Windows, macOS ve Linux’ta çalışıyor. Zaten kullandığım araçların bıraktığı verileri topluyor, yerel bir SQLite dosyasında tutuyor ve servis, model, proje, oturum ve zamana göre kırıyor.
Şu kaynakları okuyor:
| Kaynak | Nereden okuyor |
|---|---|
| Claude Code | ~/.claude/projects altındaki yerel oturum logları |
| Codex CLI | ~/.codex/sessions altındaki oturum dosyaları |
| Gemini CLI | ~/.gemini/tmp altındaki sohbet kayıtları |
| Anthropic ve OpenAI Admin API | Yalnız API hesapları; Admin API anahtarı gerekiyor |
| Elle giriş ve CSV | Log bırakmayan servisler için |
Ölçümün güvenilir olması için birkaç kararı baştan verdim. Taramayı artımlı yaptım: uygulama her log dosyasında nereye kadar okuduğunu hatırlıyor ve yalnız sonradan eklenen kısmı okuyor. Aynı mesajı iki kez saymıyor. Log dosyası silinse bile saklanan kaydı silmiyor. Claude Code için ayrıca bir doğrulama aracı yazdım: toplamları ham loglardan kendi ayrıştırıcısıyla yeniden hesaplıyor ve sonucu veritabanıyla model model karşılaştırıyor. Rakamlara güvenemeyeceksem bu uygulamayı yazmanın bir anlamı yoktu.
Gizlilik tarafında ayrıştırıcılarım token sayılarını ve üst veriyi okuyor: model, zaman, proje dizini, oturum kimliği. İstemlerinizi ve cevaplarınızı okumuyor. Veri makinenizden çıkmıyor; ağ trafiği yalnız sizin yapılandırdığınız Admin API’ler için var.
Ölçmek yetmiyor: görmek gerek
Ham bir tablo bana soruma cevap vermedi. Bir kayıt listesinden “bu hafta en çok hangi proje” cümlesini çıkarmak yine hafızaya ve sezgiye iş bırakıyor. Uygulamanın asıl işi bu yüzden görselleştirme:
- Bugün, son 7 gün ve son 30 gün için toplamlar; saat ya da güne göre, servis veya modele bölünmüş token grafiği.
- Model ve servis karşılaştırma tablosu: girdi, çıktı ve cache token’ları, istek sayısı, tahmini maliyet.
- Proje ve oturum bazında kullanım. Projeyi, agent’ın çalıştığı dizin olarak tanımladım; “hangi proje” sorusunun cevabı buradan geliyor.
- 5 saatlik ve haftalık abonelik pencereleri için tahmini limit takibi.
- Eşik aşıldığında işletim sistemi bildirimi ve tepsi simgesi uyarısı.
Limitleri siz giriyorsunuz, çünkü sağlayıcılar abonelik limitlerini yayımlamıyor. Bu yüzden limit yüzdelerini ve maliyeti arayüzde tahmini olarak işaretledim. Fiyatlar uygulamaya gömülü bir tabloda duruyor ve ayarlardan düzenlenebiliyor.
Ölçümün sınırları
Uygulamanın bugün göremediği şeyler de var:
- Log bırakmayan kullanım görünmüyor. Yalnız Claude Code, Codex CLI ve Gemini CLI loglarını okuyorum. ChatGPT ve Gemini’yi araçların dışında kullandığım yerler için yalnız elle giriş var.
- Hesap ayrımı yok. Kayıtları servis, model, proje ve oturum bazında tutuyorum; hangi aboneliğe yazıldığını henüz ayrı bir alan olarak eklemedim. Kişisel ve şirket hesabı arasındaki %100 ile %70 farkını bu uygulamayla ayrı ayrı ölçemiyorum.
- Maliyet ve limit yüzdeleri tahmin. Gerçek faturanın ya da limit sayacının yerine geçmesi için yazmadım.
- Arayüz yalnızca Türkçe.
- Beta. Sürüm 0.1.0; ikili dosyaları imzalamadım ve macOS uygulamasını notarize etmedim, bu yüzden ilk açılışta işletim sistemi onay istiyor. Kod GPL-3.0-only lisanslı.
Bu yazıda proje bazında rakam yok, çünkü uygulamayı bugün yayımladım ve henüz bir haftalık düzenli verim birikmedi.
Denemek için
Kendi kullanımınızı ölçmek isterseniz kaynak kodu GitHub’da: muhammetsafak/TokenMetrics. Uygulamayı nasıl kurduğumu Labs sayfasında anlattım. Benim önerim şu: bir hafta boyunca kullanımınızı değiştirmeden ölçün, sonra tahmininizle ölçümü yan yana koyun.
Bu konudaki deneyler
Tan Assistant: toplantıyı sesi ve değişen ekran kareleriyle nota çeviren masaüstü uygulaması
Rust ve Tauri 2 ile yazılan açık kaynak bir masaüstü uygulaması toplantının sesini ve değişen ekran karelerini kaydedip özet ve aksiyon notu çıkarıyor.
Şu an ne yapıyor
Toplantının mikrofon ve sistem sesini ayrı kanallarda, ekranın yalnızca değişen karelerini kaydedip özet, karar, aksiyon maddesi ve açık soru içeren bir not çıkarıyor. Toplantı kaydını videoya çevirmeden nota dönüştürmek isteyen herkes kaynaktan derleyip deneyebilir.
TokenMetrics: AI agent token harcamasını projeye göre görünür kılmak
Claude Code, Codex CLI ve Gemini CLI loglarını yerelde okuyan bir masaüstü uygulaması, token kullanımını proje, model ve oturuma göre gösteriyor.
Şu an ne yapıyor
AI agent token kullanımını yerel loglardan toplayıp proje, model, oturum ve zaman bazında gösteriyor; tahmini maliyet ve abonelik limiti takibi sunuyor. Claude Code, Codex CLI veya Gemini CLI'ı yoğun kullanıp harcamasını görmek isteyen geliştirici kurabilir.
Yorumlar
Yorum yapmak için GitHub hesabınızla giriş yapmanız yeterli. Yorumlar GitHub Discussions üzerinde saklanır.