
Tired of grep | awk | sort | uniq -c for log debugging — built a CLI that pipes them into a browser dashboard
Standard story: prod alert fires, I SSH in, pull down a few hundred MB of JSONL logs, then spend 20 minutes building the same one-liner I always build:
grep ERROR app.log | grep -v noise | awk '{print $5}' | sort | uniq -c | sort -rn
Works, but it's terminal-only and I can't slice by a second dimension without rewriting it. Wanted something closer to a Splunk/Datadog view but for ad-hoc local files.
So I built a CLI that pushes local logs into a browser-side DuckDB instance:
npx duckviz ./logs/ -r
It opens a tab with the files already loaded — timeline, group-by, filter, chart. Logs never leave your machine; the CLI runs a loopback HTTP server with a bearer token and the browser pulls files locally (DNS-rebinding guard, manifest-gated, all that).
Supports JSON, JSONL, CSV, XML, and unstructured logs (LLM detects the format on first load).
Disclosure: Genuinely curious what shape of logs breaks it — drop a sample if you have a weird one.