JournalView

May 20, 2026 · View on GitHub

A fast TUI for journalctl — pick a unit, scroll the logs.

crates.io CI License: MIT Downloads

jview1

Why JournalView?

journalctl is powerful but pages of text are awkward to navigate, and remembering -u <unit> for every service gets old fast. JournalView is a lightweight terminal UI written in Rust on top of Ratatui: it lists your systemd service units in a side panel, lets you pick one with the keyboard, and shows that unit's journal in a scrollable pane next to it. If no unit is selected it falls back to journalctl --since=yesterday. No daemon, no config — just a binary that shells out to journalctl and systemctl.

Features

  • Three-pane layout — left: systemd service units; top right: search box; bottom right: log view; bottom: help line.
  • Unit-scoped log view — pick a .service unit with Enter and the log pane refreshes with journalctl -u <unit>.
  • Pure keyboard navigationTab cycles panes, arrow keys scroll vertically and horizontally inside each pane.
  • No config to write — works out of the box on any host where journalctl and systemctl are on $PATH.
  • Search boxTODO/WIP: typing in the search pane is captured but does not yet filter the log view. Tracked in ROADMAP.md.

Comparison

Cells marked TODO need confirmation against current upstream behavior — see issue tracker.

CapabilityJournalViewjournalctllnavlazyjournal
Interactive TUIYesNo (pager only)YesYes
Reads systemd journalYes (shells out)Yes (native)TODOTODO
Built-in unit pickerYesNoTODOTODO
Live tail / followNoYes (-f)TODOTODO
Regex search inside the TUINo (WIP)Yes (-g)TODOTODO
Reads arbitrary log filesNoNoTODOTODO
Single static binaryYes (Rust)n/a (ships with systemd)TODOTODO

Installation

Prebuilt binary (Linux)

curl -sL https://github.com/codervijo/journalview/raw/main/install.sh | bash

This installs to ~/.local/bin/journalview. Make sure ~/.local/bin is on your $PATH.

From crates.io

cargo install journalview

From source

Ensure Rust is installed (see rustup.rs), then:

cargo install --git https://github.com/codervijo/journalview.git journalview

Other package managers

  • Homebrew — TODO
  • Arch (AUR) — TODO
  • Standalone release binaries — see the releases page (added by the release workflow on tag push).

Requirements

JournalView shells out to journalctl and systemctl, so it expects a Linux host with systemd. It does not need root, but it can only show journal entries the current user is allowed to read.

Usage

Launch:

journalview

The UI opens with the Logs pane focused, showing journalctl --since=yesterday. Tab cycles between Logs → Selector → Search → Logs. In the Selector pane, move the cursor with Up/Down and press Enter to filter the log pane by that service unit.

Hotkeys

KeyPaneAction
TabanyCycle to the next pane
q / QanyQuit
Up / DownLogs, SelectorScroll vertically
Left / RightLogs, SelectorScroll horizontally
EnterSelectorFilter the log pane by the highlighted service unit
Up / DownSelectorAlso clears the active unit filter
any characterSearchAppend to search buffer (filtering not yet wired up — see ROADMAP)
BackspaceSearchDelete last character from the buffer
Enter / EscSearchLeave the Search pane

Contributing

Contributions are very welcome. See CONTRIBUTING.md for dev setup, the test loop, and the PR process, and have a look at issues tagged good first issue for a starting point.

License

This project is licensed under the MIT License.

Acknowledgements

Thanks to the following projects for inspiration:

Inspired by the functionality of journalctl and enhanced by the capabilities of Rust for high-performance, terminal-based tools.