A clean Bash hardware dashboard for Linux laptops/workstations with CPU temps, per-core usage, NVIDIA GPU/VRAM, NVMe temps, fans, battery, RAM/swap, load average, and uptime.
- CPU package temperature
- Per-core CPU temperature and usage
- NVIDIA GPU temperature, power draw, P-State, clocks, utilization, and VRAM
- NVMe temperatures
- Fan RPM
- Battery voltage/current
- RAM and swap usage
- Load average and uptime
- Clean ANSI color output
- Local LLM friendly monitoring layout
Ubuntu/Debian/Lubuntu:
sudo apt update
sudo apt install -y lm-sensors procps pciutilsFor NVIDIA GPU metrics, nvidia-smi must be available. It usually comes with the installed NVIDIA proprietary driver / NVIDIA utils package.
Check:
nvidia-smi
sensorsOptional first-time sensor setup:
sudo sensors-detect
sudo sensors -schmod +x sensors-clean.sh
./sensors-clean.shOptional sampling interval for CPU usage calculation:
./sensors-clean.sh 0.5Default interval is 0.3 seconds.
The optional argument only controls the CPU usage sampling interval. It does not control the screen refresh rate; use watch -n for refresh timing.
mkdir -p ~/.local/bin
cp sensors-clean.sh ~/.local/bin/sensors-clean
chmod +x ~/.local/bin/sensors-cleanMake sure ~/.local/bin is in your PATH:
echo $PATH | grep -o "$HOME/.local/bin"If it is missing, add this to ~/.bashrc or ~/.zshrc:
export PATH="$HOME/.local/bin:$PATH"Then reload your shell:
source ~/.bashrc
# or
source ~/.zshrcRun:
sensors-cleanRefresh every second:
In watch -c -n 1 sensors-clean, -c keeps ANSI colors enabled and -n 1 sets the refresh interval to 1 second.
watch -c -n 1 sensors-cleanWith custom CPU sampling interval:
watch -c -n 1 'sensors-clean 0.5'Faster refresh:
watch -c -n 0.5 sensors-cleanAfter publishing the repository:
git clone https://github.com/okaybeydanol/sensors-clean.git
cd sensors-clean
chmod +x sensors-clean.sh
./sensors-clean.shInstall as a local command:
mkdir -p ~/.local/bin
cp sensors-clean.sh ~/.local/bin/sensors-clean
chmod +x ~/.local/bin/sensors-clean
sensors-cleanThe extras/ directory includes optional helper scripts for Linux + NVIDIA systems.
These helpers change CPU power profile and NVIDIA PowerMizer mode, then launch sensors-clean.
They do not control fans.
chmod +x extras/daily-mode.sh extras/llm-mode.shDaily mode:
./extras/daily-mode.shDaily mode sets:
- CPU profile:
balanced - NVIDIA PowerMizer: Auto
LLM mode:
./extras/llm-mode.shLLM mode sets:
- CPU profile:
performance - NVIDIA PowerMizer: maximum performance
Notes:
powerprofilesctlis required for CPU power profile switching.nvidia-settingsis required for NVIDIA PowerMizer switching.nvidia-settingsusually requires an active graphical session.- These scripts are optional convenience wrappers, not required for
sensors-clean.sh.
The configs/ directory may include optional example configs for improving sensors labels on specific machines.
Example:
configs/semruk-s8.conf.example
This file is hardware-specific and should be reviewed before installing.
To use it:
sudo cp configs/semruk-s8.conf.example /etc/sensors.d/semruk-s8.conf
sudo sensors -s
sensors-cleanDo not blindly install hardware-specific label configs on a different laptop/workstation. Sensor chip names, NVMe PCI paths, fan labels, and thermal zones may differ between systems.
RAM Freeuses LinuxMemAvailable, not rawMemFree.Mem Controlleris NVIDIA memory-controller activity, not VRAM fill amount.VRAM Usedis the value to watch for local LLM model memory usage.Load Avgis1m / 5m / 15mrunnable/waiting task load, not a percentage.- Red does not always mean danger. For P-State, clocks, fan RPM, and GPU power, red means high load / high performance state.
MIT

