A beautiful, real-time system monitoring dashboard for the terminal that provides comprehensive insights into your system's performance with live temperature graphs, resource usage, and hardware information.
Real-time system monitoring dashboard in your terminal
- Real-time temperature tracking for CPU and GPU
- Visual temperature graphs with configurable history points
- Color-coded alerts (green/yellow/red based on configurable thresholds)
- Historical trends showing temperature patterns over time
- CPU usage with percentage and core count
- Memory usage with detailed used/total breakdown
- Real-time updates with configurable refresh rate
- Percentage-based color coding for quick status assessment
- NVIDIA GPU support with detailed metrics
- GPU utilization and temperature monitoring
- VRAM usage (used/total memory)
- Power consumption tracking
- GPU model identification
- Multiple filesystem support with smart filtering
- Dual view modes: exact bytes and GB format
- Mounted drive information with usage percentages
- Automatic filtering of virtual/temporary filesystems
- JSON-based configuration with user-friendly defaults
- Customizable refresh rates and temperature thresholds
- Configurable display options and color schemes
- Per-user configuration stored in
~/.config/system-monitor/
- Rich formatting with colors, emojis, and proper alignment
- Live dashboard with smooth updates
- Responsive layout that adapts to terminal size
- Professional panels with clear section organization
- Linux (tested on Ubuntu/Debian-based systems)
- Python 3.12+
- NVIDIA GPU (optional, for GPU monitoring features)
nvidia-settings
andnvidia-smi
(for GPU monitoring)sensors
command (for CPU temperature - usually fromlm-sensors
package)
# Ubuntu/Debian
sudo apt update
sudo apt install lm-sensors nvidia-utils-* python3.12 python3.12-venv
# Initialize sensors (run once)
sudo sensors-detect --auto
# Clone the repository
git clone https://github.com/bkocis/system-monitor-cli-app.git
cd system-monitor-cli-app
# Install the package
pip install -e .
# Run the dashboard
system-monitor
# Clone the repository
git clone https://github.com/bkocis/system-monitor-cli-app.git
cd system-monitor-cli-app
# Set up development environment
make dev-setup
source venv/bin/activate
# Run the dashboard
make run
# Clone the repository
git clone https://github.com/bkocis/system-monitor-cli-app.git
cd system-monitor-cli-app
# Run using the setup script
./scripts/run_dashboard.sh
# Or launch in dedicated terminal window
./scripts/monitoring_terms.sh
# Create virtual environment
python3.12 -m venv venv
source venv/bin/activate
# Install dependencies
pip install -r requirements.txt
# Run dashboard
python -m src.system_monitor.main
The dashboard displays information in the following order:
๐ฅ๏ธ SYSTEM DASHBOARD | 2024-01-15 14:30:25
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
๐ก๏ธ Temperatures & History
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ๐ญ CPU: 72ยฐC [Temperature Graph] โ
โ ๐ฎ GPU: 65ยฐC [Temperature Graph] โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
๐พ System Info ๐ฎ GPU Info
โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ
โ ๐ป CPU Usage: 45%โ โ ๐ฎ GPU: RTX 4090โ
โ ๐ข CPU Cores: 16โ โ โก Usage: 23% โ
โ ๐ง Memory: 67% โ โ ๐ง VRAM: 2.1GB โ
โ ๐ฆ Used: 32GB โ โ โก Power: 180W โ
โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ
๐ฟ Disk Usage
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Filesystem Size Used Avail Use%โ
โ /dev/sda1 500GB 350GB 150GB 70%โ
โ /dev/sdb1 1TB 200GB 800GB 20%โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Press Ctrl+C to exit
The dashboard uses a JSON configuration file located at ~/.config/system-monitor/config.json
.
Create custom configuration:
# Copy default configuration
mkdir -p ~/.config/system-monitor
cp config/default.json ~/.config/system-monitor/config.json
# Edit configuration
nano ~/.config/system-monitor/config.json
{
"refresh_rate": 1.0,
"max_history_points": 100,
"temperature_thresholds": {
"warning": 70,
"critical": 80
},
"display": {
"show_gpu": true,
"show_network": false,
"graph_height": 8,
"graph_length": 100
},
"colors": {
"normal": "green",
"warning": "yellow",
"critical": "red"
}
}
For detailed configuration options, see docs/CONFIGURATION.md.
# Clone repository
git clone https://github.com/bkocis/system-monitor-cli-app.git
cd system-monitor-cli-app
# Set up development environment
make dev-setup
source venv/bin/activate
# Install development dependencies
make install-dev
make help # Show available commands
make install # Install package in development mode
make install-dev # Install with development dependencies
make test # Run test suite
make test-coverage # Run tests with coverage report
make lint # Run linting tools (ruff)
make format # Format code (ruff)
make clean # Clean build artifacts
make run # Run the dashboard
make build # Build distribution packages
# Run all tests
make test
# Run with coverage
make test-coverage
# Run specific test file
pytest tests/test_dashboard.py
# Format code
make format
# Check code quality (linting and type checking)
make lint
# Check formatting without making changes
make format-check
system-monitor-cli-app/
โโโ src/system_monitor/ # Main package
โ โโโ __init__.py # Package initialization
โ โโโ main.py # CLI entry point
โ โโโ dashboard.py # Core dashboard logic
โ โโโ config.py # Configuration management
โโโ tests/ # Test suite
โ โโโ test_dashboard.py # Dashboard tests
โ โโโ test_config.py # Configuration tests
โโโ scripts/ # Shell scripts
โ โโโ run_dashboard.sh # Main launcher
โ โโโ monitoring_terms.sh # Terminal launcher
โโโ config/ # Configuration files
โ โโโ default.json # Default configuration
โโโ docs/ # Documentation
โ โโโ CONFIGURATION.md # Configuration guide
โ โโโ DEVELOPMENT.md # Development guide
โโโ requirements.txt # Production dependencies
โโโ requirements-dev.txt # Development dependencies
โโโ pyproject.toml # Modern packaging config
โโโ setup.py # Package setup
โโโ Makefile # Development automation
โโโ CHANGELOG.md # Version history
- Monitor system health during intensive tasks
- Track temperature trends during gaming or rendering
- Identify resource bottlenecks in real-time
- Keep eye on GPU temperatures during gaming sessions
- Monitor VRAM usage for optimal game settings
- Track power consumption for efficiency optimization
- Monitor headless servers via SSH
- Track resource usage trends over time
- Quick system health checks
- Monitor resource usage during builds/tests
- Profile application performance impact
- Debug memory leaks and CPU spikes
- Monitor temperatures during stress testing
- Track performance metrics after hardware changes
- Validate cooling solutions effectiveness
- Real-time ASCII graphs showing temperature trends
- Color coding: Green (cool), Yellow (warm), Red (hot)
- Historical data with min/max temperature display
- Adaptive scaling based on temperature range
- Green: Normal operation (< 50% usage, configurable temperature)
- Yellow: Moderate load (50-75% usage, warning temperature)
- Red: High load/temperature (> 75% usage, critical temperature)
# Check NVIDIA drivers
nvidia-smi
# Install nvidia-utils if missing
sudo apt install nvidia-utils-*
# Detect sensors
sudo sensors-detect --auto
# Test sensors
sensors
# Reset to default configuration
rm ~/.config/system-monitor/config.json
# Will recreate on next run
# Validate JSON configuration
python -c "import json; json.load(open('~/.config/system-monitor/config.json'))"
# Clean installation
make clean
pip uninstall system-monitor-cli
pip install -e .
# Development environment reset
rm -rf venv
make dev-setup
# Make scripts executable
chmod +x scripts/run_dashboard.sh scripts/monitoring_terms.sh
- Python 3.12 with modern packaging standards
- Rich library for terminal UI rendering
- psutil for cross-platform system metrics
- JSON configuration with user-friendly defaults
- Modular design with separate concerns
- Minimal CPU overhead (~1-2% CPU usage)
- Memory efficient (~10-20MB RAM usage)
- Configurable refresh rate (default: 1 second)
- Adaptive terminal sizing for different screen sizes
- CPU:
psutil.cpu_percent()
andsensors
command - GPU:
nvidia-smi
andnvidia-settings
integration - Memory:
psutil.virtual_memory()
andpsutil.swap_memory()
- Disk:
psutil.disk_usage()
with intelligent filtering - Temperature: Hardware sensor integration with configurable history
- Comprehensive test suite with >90% coverage
- Unit tests for all major components
- Mocked external dependencies for reliable testing
- Continuous integration ready
# Build wheel and source distribution
make build
# Files created in dist/
ls dist/
# system_monitor_cli-1.0.0-py3-none-any.whl
# system_monitor_cli-1.0.0.tar.gz
# Install from local directory
pip install .
# Install in development mode
pip install -e .
# Install with development dependencies
pip install -e ".[dev]"
This project is open source under the MIT License. Feel free to modify and distribute according to your needs.
Contributions are welcome! Please see docs/DEVELOPMENT.md for detailed development guidelines.
- Support for AMD GPUs
- Additional sensor types
- Network monitoring features
- Export/logging capabilities
- Windows/macOS support
- Fork the repository
- Create a feature branch
- Write tests for new features
- Ensure code quality (
make lint
) - Submit a pull request
Please report bugs and feature requests on GitHub Issues.
- Repository: https://github.com/bkocis/system-monitor-cli-app
- Issues: https://github.com/bkocis/system-monitor-cli-app/issues
- Documentation: docs/
Created by Balaz Kocis | Professional System Monitoring for the Terminal