{"adoption": {"forks": 399, "observed_at": "2026-08-28T04:10:42.554386+00:00", "stars": 10613}, "canonical_url": "https://ross.abutalabs.com/products/lnav", "card": {"archived": false, "artifact_type": "cli-tool", "description": "Log file navigator", "domain": ["developer-tools", "monitoring", "analytics"], "enriched": true, "function": ["logging", "search-engine", "data-visualization", "developer-tools", "terminal-ui"], "health_score": 99, "homepage": "http://lnav.org", "language": "C++", "license": "BSD-2-Clause", "license_family": "permissive", "maturity": "active", "member_repos": ["tstack/lnav"], "name": "tstack/lnav", "platform": ["windows", "cli", "cross-platform"], "pushed_at": "2026-08-25T05:38:47+00:00", "repo": "tstack/lnav", "stars": 10613, "tags": ["log-viewer", "log-analysis", "tui", "pager", "tail", "sqlite", "log-monitoring", "log-format-detection", "command-line", "linux", "macos"], "topics": ["log-analysis", "log-monitor", "command-line-tool", "less", "logging", "more", "pager", "tail", "terminal", "terminal-pager", "tui", "log-viewer", "log-visualization"], "urls": [], "use_cases": ["view and tail multiple log files merged in one terminal view", "search and filter server logs with regular expressions", "query log files using SQL", "find errors and warnings quickly in large log files", "pretty-print JSON-lines and structured logs", "visualize log message frequency over time with histograms", "analyze web access logs for failed requests"], "what_it_is": "lnav is an advanced terminal-based log file viewer that automatically detects log formats, merges multiple files by timestamp, and lets users search, filter, and query logs. It includes a TUI with histogram views, syntax highlighting, and a SQLite interface for analyzing log data with SQL.", "when_to_avoid": ["you need centralized, distributed log aggregation across many servers", "you want a GUI or web-based log dashboard", "you need long-term log storage and retention", "you primarily process non-log structured data files"], "when_to_choose": ["you need to correlate logs from multiple files or rotated logs in chronological order", "you want a zero-setup terminal tool instead of a centralized log server", "you need to run SQL queries against log data", "you work with many built-in log formats like syslog, nginx, or JSON-lines", "you want to tail live logs while still being able to scroll and search backwards"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/lnav", "repo": "tstack/lnav", "role": "main", "score": 88}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:10:42.554386+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:18:28.533058+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1df9135a6fb538a26262cd1cb56617be57b34341c0228b4beec01efe89ad1bc3", "fetched_at": "2026-08-28T04:10:42.554386+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tstack/lnav"}, {"content_hash": "6ac15229e3ef4bc71dd626dac8e7421718666a691ff8c65e4607d58d25e17921", "fetched_at": "2026-08-29T08:17:36.153956+00:00", "kind": "homepage", "missing": false, "url": "http://lnav.org"}, {"content_hash": "f87d2cc2d76b3344a45c252a4b7e058ea33f6982aa3b6293959d5dc0f94a766e", "fetched_at": "2026-08-29T08:17:36.157590+00:00", "kind": "site_page", "missing": false, "url": "https://lnav.org/features"}, {"content_hash": "13d04ca15538790871dcdb3c8abc0bcb95185cc318c6a0248c9bf315d1b3e62f", "fetched_at": "2026-08-29T08:17:36.159619+00:00", "kind": "site_page", "missing": false, "url": "https://lnav.org/docs"}, {"content_hash": "b04be3ec970fd1f1d5203d67532c5d54e7f720fd6adbb010f2417da6df04866f", "fetched_at": "2026-08-29T08:17:36.161281+00:00", "kind": "site_page", "missing": false, "url": "https://docs.lnav.org/"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:10:42.554386+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:18:28.533058+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1df9135a6fb538a26262cd1cb56617be57b34341c0228b4beec01efe89ad1bc3", "fetched_at": "2026-08-28T04:10:42.554386+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tstack/lnav"}, {"content_hash": "6ac15229e3ef4bc71dd626dac8e7421718666a691ff8c65e4607d58d25e17921", "fetched_at": "2026-08-29T08:17:36.153956+00:00", "kind": "homepage", "missing": false, "url": "http://lnav.org"}, {"content_hash": "f87d2cc2d76b3344a45c252a4b7e058ea33f6982aa3b6293959d5dc0f94a766e", "fetched_at": "2026-08-29T08:17:36.157590+00:00", "kind": "site_page", "missing": false, "url": "https://lnav.org/features"}, {"content_hash": "13d04ca15538790871dcdb3c8abc0bcb95185cc318c6a0248c9bf315d1b3e62f", "fetched_at": "2026-08-29T08:17:36.159619+00:00", "kind": "site_page", "missing": false, "url": "https://lnav.org/docs"}, {"content_hash": "b04be3ec970fd1f1d5203d67532c5d54e7f720fd6adbb010f2417da6df04866f", "fetched_at": "2026-08-29T08:17:36.161281+00:00", "kind": "site_page", "missing": false, "url": "https://docs.lnav.org/"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:18:28.533058+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1df9135a6fb538a26262cd1cb56617be57b34341c0228b4beec01efe89ad1bc3", "fetched_at": "2026-08-28T04:10:42.554386+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tstack/lnav"}, {"content_hash": "6ac15229e3ef4bc71dd626dac8e7421718666a691ff8c65e4607d58d25e17921", "fetched_at": "2026-08-29T08:17:36.153956+00:00", "kind": "homepage", "missing": false, "url": "http://lnav.org"}, {"content_hash": "f87d2cc2d76b3344a45c252a4b7e058ea33f6982aa3b6293959d5dc0f94a766e", "fetched_at": "2026-08-29T08:17:36.157590+00:00", "kind": "site_page", "missing": false, "url": "https://lnav.org/features"}, {"content_hash": "13d04ca15538790871dcdb3c8abc0bcb95185cc318c6a0248c9bf315d1b3e62f", "fetched_at": "2026-08-29T08:17:36.159619+00:00", "kind": "site_page", "missing": false, "url": "https://lnav.org/docs"}, {"content_hash": "b04be3ec970fd1f1d5203d67532c5d54e7f720fd6adbb010f2417da6df04866f", "fetched_at": "2026-08-29T08:17:36.161281+00:00", "kind": "site_page", "missing": false, "url": "https://docs.lnav.org/"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:10:42.554386+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:10:42.554386+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:10:42.554386+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:18:28.533058+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1df9135a6fb538a26262cd1cb56617be57b34341c0228b4beec01efe89ad1bc3", "fetched_at": "2026-08-28T04:10:42.554386+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tstack/lnav"}, {"content_hash": "6ac15229e3ef4bc71dd626dac8e7421718666a691ff8c65e4607d58d25e17921", "fetched_at": "2026-08-29T08:17:36.153956+00:00", "kind": "homepage", "missing": false, "url": "http://lnav.org"}, {"content_hash": "f87d2cc2d76b3344a45c252a4b7e058ea33f6982aa3b6293959d5dc0f94a766e", "fetched_at": "2026-08-29T08:17:36.157590+00:00", "kind": "site_page", "missing": false, "url": "https://lnav.org/features"}, {"content_hash": "13d04ca15538790871dcdb3c8abc0bcb95185cc318c6a0248c9bf315d1b3e62f", "fetched_at": "2026-08-29T08:17:36.159619+00:00", "kind": "site_page", "missing": false, "url": "https://lnav.org/docs"}, {"content_hash": "b04be3ec970fd1f1d5203d67532c5d54e7f720fd6adbb010f2417da6df04866f", "fetched_at": "2026-08-29T08:17:36.161281+00:00", "kind": "site_page", "missing": false, "url": "https://docs.lnav.org/"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:10:42.554386+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:10:42.554386+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:18:28.533058+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1df9135a6fb538a26262cd1cb56617be57b34341c0228b4beec01efe89ad1bc3", "fetched_at": "2026-08-28T04:10:42.554386+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tstack/lnav"}, {"content_hash": "6ac15229e3ef4bc71dd626dac8e7421718666a691ff8c65e4607d58d25e17921", "fetched_at": "2026-08-29T08:17:36.153956+00:00", "kind": "homepage", "missing": false, "url": "http://lnav.org"}, {"content_hash": "f87d2cc2d76b3344a45c252a4b7e058ea33f6982aa3b6293959d5dc0f94a766e", "fetched_at": "2026-08-29T08:17:36.157590+00:00", "kind": "site_page", "missing": false, "url": "https://lnav.org/features"}, {"content_hash": "13d04ca15538790871dcdb3c8abc0bcb95185cc318c6a0248c9bf315d1b3e62f", "fetched_at": "2026-08-29T08:17:36.159619+00:00", "kind": "site_page", "missing": false, "url": "https://lnav.org/docs"}, {"content_hash": "b04be3ec970fd1f1d5203d67532c5d54e7f720fd6adbb010f2417da6df04866f", "fetched_at": "2026-08-29T08:17:36.161281+00:00", "kind": "site_page", "missing": false, "url": "https://docs.lnav.org/"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:10:42.554386+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:10:42.554386+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:10:42.554386+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:18:28.533058+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1df9135a6fb538a26262cd1cb56617be57b34341c0228b4beec01efe89ad1bc3", "fetched_at": "2026-08-28T04:10:42.554386+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tstack/lnav"}, {"content_hash": "6ac15229e3ef4bc71dd626dac8e7421718666a691ff8c65e4607d58d25e17921", "fetched_at": "2026-08-29T08:17:36.153956+00:00", "kind": "homepage", "missing": false, "url": "http://lnav.org"}, {"content_hash": "f87d2cc2d76b3344a45c252a4b7e058ea33f6982aa3b6293959d5dc0f94a766e", "fetched_at": "2026-08-29T08:17:36.157590+00:00", "kind": "site_page", "missing": false, "url": "https://lnav.org/features"}, {"content_hash": "13d04ca15538790871dcdb3c8abc0bcb95185cc318c6a0248c9bf315d1b3e62f", "fetched_at": "2026-08-29T08:17:36.159619+00:00", "kind": "site_page", "missing": false, "url": "https://lnav.org/docs"}, {"content_hash": "b04be3ec970fd1f1d5203d67532c5d54e7f720fd6adbb010f2417da6df04866f", "fetched_at": "2026-08-29T08:17:36.161281+00:00", "kind": "site_page", "missing": false, "url": "https://docs.lnav.org/"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:10:42.554386+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:10:42.554386+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:18:28.533058+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1df9135a6fb538a26262cd1cb56617be57b34341c0228b4beec01efe89ad1bc3", "fetched_at": "2026-08-28T04:10:42.554386+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tstack/lnav"}, {"content_hash": "6ac15229e3ef4bc71dd626dac8e7421718666a691ff8c65e4607d58d25e17921", "fetched_at": "2026-08-29T08:17:36.153956+00:00", "kind": "homepage", "missing": false, "url": "http://lnav.org"}, {"content_hash": "f87d2cc2d76b3344a45c252a4b7e058ea33f6982aa3b6293959d5dc0f94a766e", "fetched_at": "2026-08-29T08:17:36.157590+00:00", "kind": "site_page", "missing": false, "url": "https://lnav.org/features"}, {"content_hash": "13d04ca15538790871dcdb3c8abc0bcb95185cc318c6a0248c9bf315d1b3e62f", "fetched_at": "2026-08-29T08:17:36.159619+00:00", "kind": "site_page", "missing": false, "url": "https://lnav.org/docs"}, {"content_hash": "b04be3ec970fd1f1d5203d67532c5d54e7f720fd6adbb010f2417da6df04866f", "fetched_at": "2026-08-29T08:17:36.161281+00:00", "kind": "site_page", "missing": false, "url": "https://docs.lnav.org/"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:18:28.533058+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1df9135a6fb538a26262cd1cb56617be57b34341c0228b4beec01efe89ad1bc3", "fetched_at": "2026-08-28T04:10:42.554386+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tstack/lnav"}, {"content_hash": "6ac15229e3ef4bc71dd626dac8e7421718666a691ff8c65e4607d58d25e17921", "fetched_at": "2026-08-29T08:17:36.153956+00:00", "kind": "homepage", "missing": false, "url": "http://lnav.org"}, {"content_hash": "f87d2cc2d76b3344a45c252a4b7e058ea33f6982aa3b6293959d5dc0f94a766e", "fetched_at": "2026-08-29T08:17:36.157590+00:00", "kind": "site_page", "missing": false, "url": "https://lnav.org/features"}, {"content_hash": "13d04ca15538790871dcdb3c8abc0bcb95185cc318c6a0248c9bf315d1b3e62f", "fetched_at": "2026-08-29T08:17:36.159619+00:00", "kind": "site_page", "missing": false, "url": "https://lnav.org/docs"}, {"content_hash": "b04be3ec970fd1f1d5203d67532c5d54e7f720fd6adbb010f2417da6df04866f", "fetched_at": "2026-08-29T08:17:36.161281+00:00", "kind": "site_page", "missing": false, "url": "https://docs.lnav.org/"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:18:28.533058+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1df9135a6fb538a26262cd1cb56617be57b34341c0228b4beec01efe89ad1bc3", "fetched_at": "2026-08-28T04:10:42.554386+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tstack/lnav"}, {"content_hash": "6ac15229e3ef4bc71dd626dac8e7421718666a691ff8c65e4607d58d25e17921", "fetched_at": "2026-08-29T08:17:36.153956+00:00", "kind": "homepage", "missing": false, "url": "http://lnav.org"}, {"content_hash": "f87d2cc2d76b3344a45c252a4b7e058ea33f6982aa3b6293959d5dc0f94a766e", "fetched_at": "2026-08-29T08:17:36.157590+00:00", "kind": "site_page", "missing": false, "url": "https://lnav.org/features"}, {"content_hash": "13d04ca15538790871dcdb3c8abc0bcb95185cc318c6a0248c9bf315d1b3e62f", "fetched_at": "2026-08-29T08:17:36.159619+00:00", "kind": "site_page", "missing": false, "url": "https://lnav.org/docs"}, {"content_hash": "b04be3ec970fd1f1d5203d67532c5d54e7f720fd6adbb010f2417da6df04866f", "fetched_at": "2026-08-29T08:17:36.161281+00:00", "kind": "site_page", "missing": false, "url": "https://docs.lnav.org/"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:18:28.533058+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1df9135a6fb538a26262cd1cb56617be57b34341c0228b4beec01efe89ad1bc3", "fetched_at": "2026-08-28T04:10:42.554386+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tstack/lnav"}, {"content_hash": "6ac15229e3ef4bc71dd626dac8e7421718666a691ff8c65e4607d58d25e17921", "fetched_at": "2026-08-29T08:17:36.153956+00:00", "kind": "homepage", "missing": false, "url": "http://lnav.org"}, {"content_hash": "f87d2cc2d76b3344a45c252a4b7e058ea33f6982aa3b6293959d5dc0f94a766e", "fetched_at": "2026-08-29T08:17:36.157590+00:00", "kind": "site_page", "missing": false, "url": "https://lnav.org/features"}, {"content_hash": "13d04ca15538790871dcdb3c8abc0bcb95185cc318c6a0248c9bf315d1b3e62f", "fetched_at": "2026-08-29T08:17:36.159619+00:00", "kind": "site_page", "missing": false, "url": "https://lnav.org/docs"}, {"content_hash": "b04be3ec970fd1f1d5203d67532c5d54e7f720fd6adbb010f2417da6df04866f", "fetched_at": "2026-08-29T08:17:36.161281+00:00", "kind": "site_page", "missing": false, "url": "https://docs.lnav.org/"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 67}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 6198, "days_push": 8, "days_rel": 143, "gap_med": 84, "n_releases_24m": 6}, "score": 88, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}