INFO live log viewer · macOS · Windows · Linux

Read logs at the speed they are written.

Like tail -f with a window around it. Five million lines open in 25 milliseconds, a level filter answers in 15, and a stack trace stays in one piece.

Free and open source (MIT). No account, no telemetry.

No line matches. That was quick, though.
Live /var/log/shop/app.log UTF-8 500 MB 5,104,000 lines

Try it: click a level, Alt-click for only that level, type in the search, freeze.Simulated in your browser. The real one reads real files.

DEBUG took 25ms

An index, not the text.

The Rust backend keeps 16 bytes per line in memory and leaves the rest on disk. That is why half a gigabyte feels like a small file.

25msuntil the first lines are on screen
2.2suntil 5.1 million lines are indexed
78MBof memory for the index of 500 MB
15msfor a level filter over all lines

500 MB, 5.1 million lines, Apple Silicon, release build. All measurements

INFO seven ways to find it

From “something is wrong” to the line that says why.

ERROR levels

Colour first. Stack traces in one piece.

TRACE to FATAL, with chips that count while the file grows. Continuation lines inherit the level of their entry, so a filter never tears an exception apart.

A recognised format becomes a table with one column per field: time, level, thread, logger, message.

T E W
A Spring Boot log as a table with coloured levels and a stack trace across the full width

WARN filter tree

AND, OR, NOT. On the whole entry.

Text or regex, levels, a field, a time span, a section between two markers. A request id in the head and “Timeout” in its stack trace match together.

Mark text and press a key to filter on it, or to exclude it.

I Shift+I > <
The filter tree in the sidebar with nested conditions

INFO filter tabs

Drill down, and keep every step.

A filter opens as a tab of its own and filters further: app.log › ERROR › OrderService › 4711. Change a filter above and every tab below follows live.

Cmd/Ctrl+Shift+T
A chain of filter tabs next to their file

FATAL timeline

See the outage before you read a line.

A strip above the log stacks the entries of the whole file over time. Peaks and bursts of errors stand out, a silence is hatched: “no entries 10:04–10:51”.

Click to jump there, drag a window and make it a filter.

Z
The timeline with a peak of errors, a hatched outage and a marked window

ERROR overview ruler

One error in five million lines is still a mark.

The bar right of the log shows where errors and warnings lie, as density and not as one solid colour. Bookmarks are flags, notes are diamonds.

This page has one too. Look right.

M N Shift+M
The overview ruler on a busy log

DEBUG detail panel

The whole entry, formatted.

Head line and stack trace without the cut at the screen edge. Embedded JSON or XML is indented and coloured by its own tokenizer, so 64-bit ids stay exact.

D Enter G
The detail panel below the log with formatted JSON

INFO dashboard

Charts from SQL, on a log file.

Errors per minute, the error rate, took as mean and maximum. Panels start from templates and show their SQL to change. Click a bar to land on its first line.

Cmd/Ctrl+Shift+D
A dashboard with charts over time
Every feature in detail

INFO and the rest of the toolbox

The details you miss everywhere else.

cpu=72.3% mem=1.2GB took 340ms

Fields from the message

Measurements in the text become columns of their own. The app suggests them on opening; units are converted, so took > 500 ms also finds 1.2s.

Extracted fields cpu, mem and took as columns
a.log + b.log → one

Merge files

Up to 16 logs in one tab, sorted by timestamp, each with a colour stripe. New lines keep coming in live.

❄ freeze

Freeze and follow

Stay at the end while you are there, scroll up and it pauses. Freeze holds a tab still while filters and search keep working.

.* Aa

Search

Filter or highlight, regular expressions, case, jump between matches. Full text over 5 million lines in 0.7 s.

⤓ txt · csv · jsonl

Export

The selection, the view or the whole file. Written by the backend in the background: 500 MB as text in half a second.

⚑ M · N

Bookmarks

One key sets a flag in the gutter and on the ruler, another jumps to the next. They survive in a workspace.

❖ .lcw

Workspaces

Files, merges, every filter tab, bookmarks, notes and layout in one file. Paths are kept relative too, so a folder with logs can be shared.

✎ notes · markdown · jira

Notes and sharing

Put a note on an entry, then copy lines with file, time span and filter as Markdown or Jira markup for the ticket.

WARN not every log is a file

Syslog, servers, databases. Same window.

Every source without a file writes into a spool on disk, and the app tails that like any log. So filters, timeline, dashboard, export and merge work for all of them.

Local filestail · rotation · truncation SyslogUDP · TCP · RFC 3164/5424 SSH / SFTPhost:/var/log/app.log Windows eventsApplication · System · Security DatabasesPostgreSQL · MySQL · MSSQL · SQLite Spoola file, bounded Log Commander
  • Local filestail, rotation, truncation
  • SyslogUDP, TCP, RFC 3164/5424
  • SSH / SFTPfollow a file on a server
  • Windows eventsthis computer or another one
  • DatabasesPostgreSQL, MySQL, SQL Server, SQLite
How each source works, and how it stays safe

FATAL OutOfMemory, explained

Let your AI drive the viewer.

Over the Model Context Protocol, Claude Code, Claude Desktop or Cursor see your tabs and use the app’s engines instead of reading whole files. The answer shows up in the window: a filter tab, a note, the line scrolled into view.

Off by default. No port while it is off. Opening files and exporting ask you first.

31 tools, three tiers, the safety model

What went wrong in app.log in the last 30 minutes?

get_timeline 1 outage, 1 burst of errors at 10:07

run_sql errors by logger since 09:40

open_filter_tab app.log › ERROR › ConnectionPool

add_note line 4,538 “KI: first exhausted pool”

The connection pool ran out at 10:07:33. 450 errors follow, all from OrderService.place. I opened a tab with them and left a note on the first one.

DEBUG theme = …

Seventeen colour schemes. All pass WCAG AA.

From One Dark to Solarized Light to a C64. The window frame follows, and “follow system” takes a light and a dark one of your choice.

Dark
Log Commander in the colour scheme Dark

INFO started on 3 platforms

macOS, Windows and Linux.

One app, built with Tauri, Rust and Angular. The automated tests run on all three systems.

macOS

Apple Silicon and Intel in one universal app.

.dmg

Windows

Reads the Windows event logs too, of this computer or another one.

installer · .msi

Linux

For desktops with WebKitGTK.

.deb · AppImage

$ log-commander /var/log/app.log

Open the log.

Free and open source under the MIT license. The packages are not signed yet.