A terminal-based system monitor built with Rust and ratatui. Provides real-time system metrics, process management, file browsing, and network traffic visualization.
Animated demo showing Gribble's real-time system monitoring capabilities
- Real-time CPU and memory monitoring with visual progress bars
- Interactive process viewer sorted by resource usage
- File system navigation with keyboard controls and directory history
- Network traffic visualization with sparkline graphs
- Multi-interface network monitoring with overflow detection
- Detail modals for processes, networks, system info, and files
- Vim-style keyboard navigation
- Rust 1.70+ (2024 edition)
- Terminal with Unicode support
git clone https://github.com/Cod-e-Codes/gribble.git
cd gribble
cargo build --release
cargo run
←→
orh l
- Switch between panels↑↓
orj k
- Navigate within lists, cycle network interfacesPgUp/PgDn
- Jump by page in listsHome/End
- Jump to first/last item in listsEnter
- Open directories in File ExplorerBackspace
- Go up one directoryb
- Go back in directory historyi
- Show detailed information modalr
- Refresh all data?
- Show/hide helpq
orEsc
- Quit
- System Monitor - CPU usage, memory statistics, process count, system information
- System Status - Current time/date, disk usage, network interface statistics, system load
- Process Manager - Live process list sorted by CPU usage
- File Explorer - Directory browser with folder/file icons and navigation history
- Network Graph - Real-time network traffic with interface cycling
Press i
to show detailed information:
- Process Manager - Process details (PID, CPU, memory, status, command)
- Network Graph - Network interface details (totals, current rates)
- System panels - System information (hostname, OS, kernel, hardware)
- File Explorer - File/directory info or disk usage for mount points
- Built with ratatui for terminal UI rendering
- Uses sysinfo for cross-platform system metrics
- Updates system data every 2 seconds
- Maintains 60-point history for network graphs
- Cross-platform support (Windows, macOS, Linux)
- Memory and network formatting with appropriate units
- Bounds checking and overflow protection
- String truncation for long names
- Error recovery for directory navigation
- Cached data structures for performance
- Network counter overflow detection
- Modern terminal emulator with Unicode support
- Minimum terminal size 80x24
- Read permissions for system information
Pre-built binaries are available for download on the Releases page.
- Linux (x86_64) -
gribble-x86_64-unknown-linux-gnu.tar.gz
- Windows (x64) -
gribble-x86_64-pc-windows-msvc.zip
- macOS (Intel) -
gribble-x86_64-apple-darwin.tar.gz
- macOS (Apple Silicon) -
gribble-aarch64-apple-darwin.tar.gz
Linux/macOS:
# Download and extract
tar -xzf gribble-x86_64-unknown-linux-gnu.tar.gz
# Make executable and move to PATH
chmod +x gribble-x86_64-unknown-linux-gnu
sudo mv gribble-x86_64-unknown-linux-gnu /usr/local/bin/gribble
Windows: Extract the zip file and add the directory to your PATH environment variable.
Use the included release script to create a new version:
./release.sh 1.0.0
This will:
- Update the version in
Cargo.toml
- Create and push a git tag
- Trigger GitHub Actions to build and publish cross-platform binaries
MIT License