Terminal system monitors like top and htop provide essential instant snapshots of running processes, but diagnosing intermittent CPU throttling, disk I/O bottlenecks, or network spikes requires temporal context. When an application spikes system resources for three seconds and recovers, static list monitors miss the pattern entirely. zenith is a terminal monitoring application written in Rust that bridges this gap by rendering zoomable, high-resolution historical charts for CPU, memory, GPU, disk, and network utilisation directly inside your terminal window.
Key Features of zenith
Inspired by graphical performance tools like Windows Task Manager and Activity Monitor, zenith delivers several unique capabilities to Unix terminal environments:
- Zoomable Historical Graphs: Seamlessly change historical time scales from minutes to hours or days using simple keyboard shortcuts.
- First-Class GPU Monitoring: Tracks NVIDIA GPU utilisation, VRAM consumption, and temperature alongside standard CPU cores.
- Comprehensive Disk I/O: Visualises read and write throughput per partition with dedicated temporal trend graphs.
- Per-Process Filtering: Interactive process table allowing sorting by CPU, memory, disk I/O, PID, or user ownership.
- Low Overhead: Built with Rust and compiled to native machine code for minimal impact on monitored systems.
Installing zenith Across Linux Distributions
The zenith utility is available as pre-compiled native binaries and package repository releases.
Installing on Arch Linux and Manjaro
sudo pacman -S zenith
Installing via Cargo (Any Distribution)
cargo install --locked zenith
Downloading Standalone Linux Binaries
For Debian, Ubuntu, or Fedora systems without Cargo, download the pre-compiled musl binary from GitHub releases:
# Download latest release binary
wget https://github.com/bvaisvil/zenith/releases/latest/download/zenith_x86_64-unknown-linux-musl.tar.gz
# Extract and install to PATH
tar -xvf zenith_x86_64-unknown-linux-musl.tar.gz
sudo mv zenith /usr/local/bin/
chmod +x /usr/local/bin/zenith
Navigating zenith Interface and Historical Zooming
Launch the monitor from any terminal emulator:
zenith
The display divides into dedicated panels: top graphs illustrate CPU and Memory history, middle panels display Disk and Network rates, and the bottom section hosts an interactive process manager.
Zooming Time Scales
The most powerful feature of zenith is temporal zooming across historical charts:
- Press
+or=: Zoom in to inspect short-term granularity (down to 1 second per column). - Press
-: Zoom out to view extended trends spanning hours or days of operation. - Press
h: Toggle human-readable unit notation.
Interactive Process Management Shortcuts
| Key | Action |
|---|---|
Down / Up or j / k |
Navigate through active processes in the process table. |
Tab |
Cycle focus between CPU, Disk, Network, and Process views. |
p |
Sort process table by CPU usage percentage. |
m |
Sort process table by physical memory consumption. |
d |
Sort process table by active disk I/O rate. |
e |
Expand process tree view to reveal thread hierarchies. |
q |
Exit zenith cleanly. |
Monitoring NVIDIA GPUs in the Terminal
If your system features an NVIDIA graphics card with official proprietary drivers installed, launch zenith with GPU polling enabled (requires building or downloading with the nvidia feature flag enabled):
zenith --show-gpu
Zenith adds a dedicated GPU telemetry block displaying graphics processing engine load, encoder/decoder activity, memory bus saturation, and temperature trends.
Using zenith transforms terminal performance troubleshooting, enabling sysadmins to track down intermittent resource spikes with clear visual evidence.