Docs

Quick start

Open a log

jaytail app.jsonl                     # a file
kubectl logs deploy/api | jaytail     # a pipe
jaytail                               # no argument: the file picker

jaytail recognizes time, level and message columns by itself. The keys you need first:

KeyAction
/search text, or field:text
n / Nnext / previous match
Mshow only matching rows
2 / 3 / 1WARN and above / ERROR and above / all levels
ffilter by field, for example component:payments
Enterthe whole record
Space, v, Ctrl+Amark a row, select a range, select the view
y / ecopy the selected lines / export them
? / qevery key / quit

Use it in scripts

When stdout is not a terminal, jaytail writes records as raw JSONL. --plain=table prints an aligned table:

jaytail --level =error app.jsonl > errors.jsonl
jaytail --plain=table --columns time,level,message app.jsonl | less

Open it in a browser

jaytail --web app.jsonl

The page is served on 127.0.0.1 only, behind a random token, with the same filters, search, selection and export.

Ask someone for their log

jaytail request

jaytail prints a ticket and a link. Send the link to the other person (a chat message is fine): the page shows them how to get jaytail and the one command to run, for example jaytail send <ticket> /var/log/app.jsonl. The file arrives encrypted end to end, its checksum is verified, and it opens in the viewer as it arrives. They need no license.

Send a log to someone

jaytail send --qr checkout.jsonl

The other person opens the link, or runs jaytail receive <ticket>. Creating a ticket, with send FILE or request, needs a Complete license; answering one never does.

Install your license

jaytail license install --key 'JTL1…'
jaytail license

See Licenses and activation, and the manual for everything else.