{"name":"Nerdlog: A Fast, Remote-First TUI Log Viewer for Multiple Hosts","description":"Nerdlog is an efficient, remote-first TUI log viewer designed for monitoring logs across multiple hosts without requiring a central server. It offers a timeline histogram for quick visual insights and excels at querying large log files from various sources like syslog or journalctl. This tool provides a lightweight yet powerful alternative to more complex log management solutions.","github":"https://github.com/dimonomid/nerdlog","url":"https://osrepos.com/repo/dimonomid-nerdlog","source":"osrepos.com","sourceDescription":"This repository profile is provided by osrepos.com, an open source repository discovery platform.","repositoryProfile":"https://osrepos.com/repo/dimonomid-nerdlog","generatedFor":"open source discovery and AI-assisted research","markdown":"https://osrepos.com/repo/dimonomid-nerdlog.md","json":"https://osrepos.com/repo/dimonomid-nerdlog.json","topics":["Go","TUI","Log Viewer","Log Management","Monitoring","DevOps Tools","Remote Logging","System Administration"],"keywords":["Go","TUI","Log Viewer","Log Management","Monitoring","DevOps Tools","Remote Logging","System Administration"],"stars":null,"summary":"Nerdlog is an efficient, remote-first TUI log viewer designed for monitoring logs across multiple hosts without requiring a central server. It offers a timeline histogram for quick visual insights and excels at querying large log files from various sources like syslog or journalctl. This tool provides a lightweight yet powerful alternative to more complex log management solutions.","content":"## Introduction\n\nNerdlog is a fast, remote-first, multi-host Terminal User Interface (TUI) log viewer with a timeline histogram and no central server. Loosely inspired by tools like Graylog and Kibana, it aims to provide similar functionality without the associated bloat or complex setup. It's laser-focused on efficiently querying logs from multiple remote machines simultaneously, allowing users to filter by time range and patterns, while also drawing an interactive timeline histogram for quick visual insight.\n\nPrimary use cases include reading system logs from files such as `/var/log/messages` or `/var/log/syslog`, or directly from `journalctl`, across one or more remote hosts. Nerdlog is highly efficient, even when dealing with large log files of 1GB or more.\n\n![Nerdlog Intro](https://dmitryfrank.com/_media/projects/nerdlog/nerdlog_intro_3.png)\n\n### Design Highlights\n\n*   **No Centralized Server**: Nerdlog establishes SSH connections to each node, keeping them idle in the background. All log analysis is performed on the remote nodes, and only filtered data (up to 250 messages per logstream and timeline histogram data) is downloaded, significantly reducing bandwidth.\n*   **Efficient Data Transfer**: Most data is gzipped in transit, further saving bandwidth.\n*   **Flexible SSH**: Supports arbitrary commands to establish shell sessions, making it compatible with tools like Teleport.\n\nHere's a quick demo showing Nerdlog in action across four remote nodes:\n\n![Nerdlog Demo](https://dmitryfrank.com/_media/projects/nerdlog/nerdlog_demo.gif?v=2)\n\n## Installation\n\nThe easiest way to get started with Nerdlog is by using a prebuilt binary for your platform. These can be found on the [releases page](https://github.com/dimonomid/nerdlog/releases){:target=\"_blank\"}.\n\nAlternatively, if you have [Go](https://go.dev/){:target=\"_blank\"} installed, you can build it from source.\n\n**Linux Specific Requirement**: On Linux, the X11 development package (`libx11-dev`) is required for clipboard access. On Ubuntu, you can install it with:\n\nbash\nsudo apt install libx11-dev\n\n\nNo extra dependencies are required on MacOS and Windows (for the client app).\n\n### Using `go install`\n\nTo install the latest release:\n\nbash\ngo install github.com/dimonomid/nerdlog/cmd/nerdlog@latest\n\n\nTo install the latest master branch:\n\nbash\ngo install github.com/dimonomid/nerdlog/cmd/nerdlog@master\n\n\nBy default, this installs the `nerdlog` binary to `$HOME/go/bin`.\n\n### Using `make`\n\nTo build and install `nerdlog` to `/usr/local/bin`:\n\nbash\nmake && sudo make install\n\n\nTo build and run without installing:\n\nbash\nmake && bin/nerdlog\n\n\n## Examples\n\nWhen you launch the `nerdlog` application, it presents a query edit form. A core concept is 'logstreams', which define how Nerdlog connects to and reads logs from various sources. Logstreams can be local or remote, accessed via SSH.\n\nBy default, Nerdlog checks for `/var/log/messages`, then `/var/log/syslog`, and finally `journalctl`.\n\n**Basic Logstream Configuration**:\n\nFor a server `myserver.com` accessible via SSH on port 22, reading default log files:\n\n\nmyuser@myserver.com\n\n\nFor a different port and/or specific log file:\n\n\nmyuser@myserver.com:1234:/some/other/logfile\n\n\nTo explicitly use `journalctl`:\n\n\nmyuser@myserver.com:1234:journalctl\n\n\nMultiple logstreams can be provided, separated by commas:\n\n\nmyuser@myserver.com, myuser@anotherserver.com:1234:/some/other/logfile\n\n\nNerdlog also reads your SSH configuration (`~/.ssh/config`) and supports glob patterns for host definitions. For more advanced configurations, you can use Nerdlog's own logstreams config file at `~/.config/nerdlog/logstreams.yaml`.\n\n**UI and Commands**:\n\nThe UI includes an Awk pattern input for filtering logs, a time range histogram for visual insights, and a Vim-like command line for advanced operations. For example:\n\n*   `:xc[lip]`: Copies a command string to the clipboard, allowing you to share or re-run specific queries. This is similar to sharing a URL in web-based logging tools. The string might look like: `nerdlog --lstreams 'localhost' --time -3h --pattern '/something/'`\n*   `:back` / `:fwd`: Navigate through query history.\n*   `:refresh`: Rerun the current query.\n*   `:e[dit]`: Open the query edit form.\n\n## Why Use Nerdlog?\n\nNerdlog offers a compelling alternative to more resource-intensive log management solutions. Its remote-first architecture means no central server is required, simplifying deployment and reducing infrastructure overhead. By performing log analysis on remote nodes and minimizing data transfer, it ensures high efficiency, even when dealing with vast amounts of log data across many machines.\n\nDesigned for speed and efficiency, Nerdlog provides a powerful TUI experience with features like an interactive timeline histogram, making it easy to spot trends and anomalies. The project, initially developed in 2022 and open-sourced in 2025, has been rigorously tested across various Linux distributions, FreeBSD, MacOS, and Windows (client-side). It is considered production-ready, making it a robust tool for DevOps professionals and system administrators seeking a lean, effective log viewer.\n\n## Links\n\n*   [GitHub Repository](https://github.com/dimonomid/nerdlog){:target=\"_blank\"}\n*   [Implementing a Radically Simple Alternative to Graylog (Article)](https://dmitryfrank.com/projects/nerdlog/article){:target=\"_blank\"}\n*   [Nerdlog Documentation](https://github.com/dimonomid/nerdlog/blob/master/docs/index.md){:target=\"_blank\"}","metrics":{"detailViews":8,"githubClicks":10},"dates":{"published":null,"modified":"2026-04-14T00:43:22.000Z"}}