logana turns any log source — files, compressed archives, Docker containers, or OTel streams — into structured, filterable, annotatable data. Filter by pattern, field, or date range; jump between errors and warnings; annotate key lines; bookmark findings; and export to Markdown, Jira, or AI assistants via the built-in MCP server — all persistent across sessions.
- Any log format — JSON, syslog, journalctl, logfmt, OpenTelemetry, DLT, or your own custom
{field}schema - Any source — files, directories, compressed/archives, Docker containers, OTel (gRPC/HTTP), stdin
- Filtering — include/exclude, regex, field-scoped, date-range, and highlight-only filters, all remappable and scriptable from the CLI
- Vim-style navigation —
j/k,gg/G, count prefixes,/search, jump straight to the next error or warning - Annotations — comment on lines and export the analysis to Markdown or Jira
- Persistent sessions — filters, marks, and scroll position are restored automatically
- MCP server — expose marks and annotations to AI assistants
- Headless mode — run the full filter pipeline without a TUI, for scripting and huge logs
- Fully configurable — every keybinding is remappable
Download from the Releases page, or use the install script:
Linux / macOS
curl -fsSL https://github.com/pauloremoli/logana/releases/latest/download/logana-installer.sh | shWindows (PowerShell)
irm https://github.com/pauloremoli/logana/releases/latest/download/logana-installer.ps1 | iexbrew tap pauloremoli/logana && brew install loganacargo install logana
# or install the latest binary directly
cargo binstall loganaFiltering a 3.3 GB access log with 10M+ lines against lnav, cold disk cache:
| logana | lnav | |
|---|---|---|
| Headless (10-run avg) | 0.99 s | 11.2 s |
| TUI, open → filter → quit | 1.8 s | 11.8 s |
lnav offers features beyond filtering that may account for part of the difference — this compares filtering performance only. Hardware: AMD Ryzen 9 8945HS · 32 GB DDR5 5600 MHz · NVMe 4.0 x4.
Full documentation is at pauloremoli.github.io/logana.

