RAZKOM/hem

tail, but tailored.

hem app.log opens a full-screen, mouse-aware log viewer that makes it obvious where things went wrong. It stays instant on multi-gigabyte files and never gets in the way of the program writing them.

01install

cargo
cargo install hem
cargo-binstall
cargo binstall hem
macOS / Linux
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/RAZKOM/hem/releases/latest/download/hem-installer.sh | sh
Windows
powershell -ExecutionPolicy Bypass -c "irm https://github.com/RAZKOM/hem/releases/latest/download/hem-installer.ps1 | iex"

Or grab a prebuilt archive from GitHub Releases. Inside the viewer, press ? for help and : for the command palette.

02what it does

Instant on huge filesIndexed in the background: a 5 GB log is scrollable in ~20 ms and fully indexed in a few seconds.
Answers "what happened?"A timeline minimap coloured by severity, next / previous error, and repeats collapsed with counts and sparklines.
Rare lines firstThe templates view groups lines by shape, so the one odd message stands out from a million routine ones.
Filters that composeRegex include and exclude, minimum level, time range and field predicates like status>=500, as clickable chips.
Out of the writer's wayFiles are read without memory-mapping, so the app writing the log can still rotate, truncate or delete it. On Windows too.
A proper Unix toolFiles, globs, stdin and .gz; merge sources by timestamp; plain coloured output when piped.

03usage

hem app.log                         # open in the viewer
hem app.log nginx.log --merge       # one stream, interleaved by timestamp
hem 'logs/*.log'                    # globs are expanded by hem
cat app.log | hem                   # stdin
hem app.log -f                      # follow, survives rotation
hem app.log --since 15m --level warn --filter timeout
hem app.log --level error --plain | wc -l
hem templates app.log -n 20 --rare  # the 20 rarest line templates

04spec

platformWindows, macOS, Linux (x64 and ARM64)
formatsJSON lines, logfmt, nginx / Apache, syslog, plain; custom formats in config
stackRust + ratatui
installcargo install hem or a one-line installer
configOptional TOML: themes, colours, keys, presets
licenseMIT or Apache-2.0
costFree