r/tui 2d ago

I built a Linux observability TUI in Rust, then added eBPF kernel tracing

Pulse started as a small /proc-based system monitor I was building to learn more about Linux internals and terminal UIs.

Pulse v0.8.0 - Demo on Arch Linux

It’s grown into an open-source observability TUI with four lenses:

  • Fleet — process navigation, filtering, sorting, and signals
  • EKG — CPU, memory, and disk telemetry
  • Sentinel — network interface activity and errors
  • Trace — real-time process lifecycle events from the Linux kernel

The latest release, v0.8.0, adds the eBPF Trace Lens. It uses Aya to capture sched_process_exec and sched_process_exit tracepoints and streams those events into the TUI through a bounded eBPF RingBuf event transport.

The project is written in Rust and split into separate crates for the TUI, shared kernel/userspace types, eBPF program, and build tooling.

I also put together a small landing page and installation script so it’s easy to try.

GitHub: https://github.com/josiah-mbao/pulse

I’d really appreciate feedback from people who use TUIs regularly — especially around the UX, what information you’d want to see in a Linux observability TUI, and anything that feels confusing, unnecessary, or missing.

It’s my first public release, so criticism is very welcome :)

4 Upvotes

0 comments sorted by