Skip to content
Select theme

Build a terminal UI with Ratatui

What you end up with: a live terminal application — a log and process monitor with panes, a live filter, scrollable history, and keyboard-driven navigation, in the style of btop and lazygit.

rlog following a log file beside the machine’s process table

TUIs are the most underrated Rust niche. There is no build step, no framework churn, and the output is a binary people can install with one command. If you like CLI tools but want something more involved than argument parsing, this is the natural next project.

  • A layout with panes that resize with the terminal
  • Live data: a reader pulling from a log file or process list
  • The event loop: input, ticks and redraws, without pegging the CPU
  • Scrollable history with keyboard and mouse support
  • A fuzzy filter using tui-input and nucleo
  • Colour themes and a help overlay
  • Tests for the parts worth testing, and a way to screenshot a TUI

Closures and iterators and Concurrency and async — the event loop is where both show up at once.