Komutlar
/gunluk yaz <metin>Yeni giriş ekle (#etiket otomatik parse)/gunluk bugunBugünün girişlerini listele/gunluk son 10Son N giriş (varsayılan 10, max 100)/gunluk ara authSubstring + etiket arama/gunluk istatistikToplam, ilk/son, top 5 etiket/günlükTürkçe karakter alias (tüm alt komutlar)Format
Her satır bağımsız bir JSON object. Bozuk satır olursa diğerleri etkilenmez:
~/.kanka/gunlukler/my-app.jsonl· json
{"ts":"2026-05-18T14:23:12.000Z","proje":"my-app","metin":"auth refresh token bug düzeltildi","etiketler":["fix","auth"]}
{"ts":"2026-05-18T15:01:45.000Z","proje":"my-app","metin":"NextJS 15 migration başladı","etiketler":["frontend","nextjs"]}
{"ts":"2026-05-18T16:30:00.000Z","proje":"my-app","metin":"Prod'da PostgreSQL connection pool tükendi, pgbouncer eklendi","etiketler":["fix","prod","db","incident"]}Tipik bir gün
>/gunluk yaz auth refresh bug fix #fix #auth
✓Günlüğe yazdım [#fix #auth]
→ auth refresh bug fix
>/gunluk yaz pgbouncer eklendi prod'a #fix #prod #db
✓Günlüğe yazdım [#fix #prod #db]
>/gunluk bugun
📓 Bugün (2 giriş) — my-app
─────────────────────────────
18.05.2026 14:23 [#fix #auth]
→ auth refresh bug fix
18.05.2026 16:30 [#fix #prod #db]
→ pgbouncer eklendi prod'a
İstatistik
/gunluk istatistik komutu sana hangi konularda en çok not aldığını gösterir:
📊 Günlük istatistik — my-app
═════════════════════════════════
Toplam giriş : 47
İlk : 01.04.2026
Son : 18.05.2026 (bugün)
Bugün : 3
🏷️ Top 5 etiket
#fix 18 ████████████████████
#refactor 12 █████████████
#auth 8 █████████
#prod 5 █████
#db 4 ████
Neden JSONL?
- ✓Append-only — race condition yok, paralel yazıma uygun
- ✓cat | grep ile bash'te de okunabilir
- ✓Bozuk satır → sadece o atlanır, diğerleri sağlam
- ✓jq ile filtreleme kolay (jq 'select(.etiketler[] | contains("fix"))')
- ✓Git'e commit edebilirsin — proje history'sinin bir parçası
- ✓SQLite/JSON'dan daha hızlı write (yalnızca dosyaya append)
Git'e commit etmek
Günlüğünü repo ile birlikte versiyonlamak istersen .gitignore'dan çıkar ve commit et. Takım üyelerin de görür:
# .kanka/ klasörünü repo'na sembolik link veya copy et
mkdir .kanka
ln -s ~/.kanka/gunlukler/my-app.jsonl .kanka/gunluk.jsonl
git add .kanka/gunluk.jsonl
git commit -m "docs: günlük güncellendi"⚠
Dikkat
Günlükte hassas bilgi olabilir (server IP, geçici API key, müşteri ismi). Commit etmeden önce gözden geçir veya .gitignore'da tut.
Bash'te de kullan
Son 7 günün özet· bash
# Tüm projelerin son 7 günlük girişleri
find ~/.kanka/gunlukler -name "*.jsonl" -mtime -7 -exec cat {} \;
# Etikete göre filtre
cat ~/.kanka/gunlukler/my-app.jsonl | jq 'select(.etiketler[] | contains("incident"))'
# Bugün kaç giriş?
cat ~/.kanka/gunlukler/my-app.jsonl | grep "$(date +%Y-%m-%d)" | wc -lSıkça Sorulanlar
Aynı proje birden fazla klasörde olursa?
Klasör adı baz alınır (path.basename). Aynı isimde 2 klasörün varsa girişleri tek dosyada birleşir. İstersen klasör adlarını farklılaştır.
Sınırsız büyür mü?
Teorik olarak evet — ama 10K giriş bile sadece ~2MB. Çok büyüdüğünde manuel rotate edebilirsin (mv app.jsonl app-2025.jsonl).
Cron job ile yazabilir miyim?
Şu an /gunluk yaz interaktif komut. Programatik için: doğrudan ~/.kanka/gunlukler/<proje>.jsonl dosyasına JSON satırı append edersin. Format dokümante.
📓 Geliştirme Günlüğü'ni dene
npm üzerinden 30 saniyede kur, hemen kullan.
$npm install -g @thorrangonak/kanka