Reduce waiting time and cognitive load in log analysis so users can see “what is happening now” in the terminal.
tail -fis too fast to readsort | uniq -cneeds full input before output, not suitable for incidents- Heavy log platforms are expensive and slow to set up for quick local analysis
- SRE / Infrastructure engineers
- Backend engineers
- On-call responders
- Real-time aggregation: rankings update immediately
- Simple usage: pipe-based, no query language
- Local-first: no extra infra required
| Alternative | Strength | Weakness | tally advantage |
|---|---|---|---|
| sort | uniq | Low cost | Batch only |
| datamash | Stats features | Needs sorted input | No sort required |
| angle-grinder | Powerful | High learning cost | Simple usage |
- stdin line streaming
- In-memory HashMap aggregation
- TUI Top N display
- Field selection (
-f) - Final results on exit
- Disk-based aggregation for huge cardinality
- Complex query language
- Log storage
- High throughput (tens of thousands of lines/sec)
- Stable long-running behavior
- Readable TUI
- Feels more “real-time” than
sort | uniq - Usable within minutes from README
- Works same day without setup
- Follow phases in
ROADMAP.md - SemVer-compatible changes
ログ解析における「待ち時間」と「認知負荷」を減らし、 ターミナル上で「今起きていること」を即座に把握できるようにする。
tail -fは流速が速いと追えないsort | uniq -cは全件読み込みが必要で、緊急対応に使いにくい- 高機能なログ基盤は導入コストが高く、手元の端末で完結したい
- SRE / インフラエンジニア
- バックエンド開発者
- オンコール対応者
- リアルタイム集計: 実行直後からランキングが更新され続ける
- シンプル操作: パイプで繋ぐだけ、学習コストが低い
- ローカル完結: 追加の基盤やセットアップ不要
| 競合/代替 | 強み | 弱み | tallyの差別化 |
|---|---|---|---|
| sort | uniq | 低コスト | 完了待ち |
| datamash | 統計機能 | 入力ソート必要 | ソート不要 |
| angle-grinder | 高機能 | 学習コスト | シンプル操作 |
- stdinの行ストリーム処理
- HashMapによるインメモリ集計
- Top NランキングのTUI表示
- フィールド指定(
-f) - 終了時に最終結果を出力
- ディスクベース処理(巨大ユニーク数への対応)
- 複雑なクエリ言語
- ログの保存・蓄積
- 高スループット(数万行/秒の処理を想定)
- 長時間稼働に耐える安定性
- TUIの視認性
sort | uniqより「今が見える」と感じること- セットアップなしで即日使えること
- 開発者が README を見て数分で試せること
ROADMAP.mdのフェーズに従う- 互換性方針はSemVerに準拠