codissy v1.4.2

A small command-line tool for filtering, transforming and summarising structured logs. Reads JSON, logfmt or plain text from stdin and gives you back something readable.

$ kubectl logs -n prod web-7c5d | codissy filter status=5xx | codissy summary path

  path                              count   p50    p99
  ──────────────────────────────────────────────────────
  /api/v2/checkout                  142    180ms  1.2s
  /api/v2/orders/{id}                97    220ms  890ms
  /api/v2/payments/webhook           18    340ms  2.1s
  /healthz                            3     15ms   18ms

What it does

Stream-friendly

Reads stdin, writes stdout. Plays well with pipes, tail -f and journalctl.

Format-agnostic

JSON, logfmt, common log format, or your own pattern via --regex.

Fast filters

Expression-based filtering: status>=400 and method="POST".

Group & aggregate

Counts, percentiles, rates — without leaving the shell.

Single binary

One static executable, no runtime. ~4 MB on Linux/amd64.

Friendly output

Tables in TTY, JSON when piped. Colours when it makes sense.

Why another log tool?

Because jq is wonderful but not the right shape for ad-hoc log triage, awk requires you to be sober, and the "log analytics platform" in the cloud costs more than the application that produced the logs.

codissy is what happens when you spend a few too many incident calls squinting at a tail -f in a tmux pane.

Quick taste

# show only failed requests, last 1000 lines
tail -n 1000 /var/log/nginx/access.log | codissy filter 'status >= 500'

# count requests by status code
journalctl -u myapp.service --since "1h ago" | codissy summary status

# pull a single field out of JSON logs
docker logs api 2>&1 | codissy pick request_id duration_ms path

# follow a live stream, highlighting errors
kubectl logs -f deploy/worker | codissy filter 'level in [warn, error]' --color
Status: codissy is a small personal project, used in production by a handful of teams I know personally. Stable enough for daily use, but not feature-complete. See the changelog for what shipped recently.