A live, color-coded temperature dashboard for your terminal.
A CLI port of the Windows TempInfo hardware monitor. Run it with tempinfo.
Real readings from a Ryzen 7 9800X3D desktop with both its integrated Radeon and an RTX 5070 Ti, captured with tempinfo v0.2.0.
- ๐ Live dashboard that refreshes in place (default every second). Ctrl-C exits cleanly.
- ๐ท๏ธ Names every device: your CPU model, motherboard, each drive, the Wi-Fi card, and every GPU, each in its own panel.
- ๐ฎ iGPU and dGPU side by side: integrated and discrete GPUs are both shown and tagged, e.g.
AMD Radeon 610M (iGPU)next toNVIDIA GeForce RTX 5070 Ti (dGPU). - ๐จ Color by thermal headroom: every reading gets a bar and a color for how close it is to its limit.
- ๐ฑ๏ธ App-menu entry with its own icon: launching it opens your default terminal running
tempinfo. - ๐ซ Never makes numbers up: if nothing can be read, it says "no sensors readable".
- ๐ Read-only: it reads sensors and draws them. It never changes anything on your system.
Drives get hot sooner than CPUs, so each kind of sensor has its own limits:
| Sensor | Cool | Warm | Hot |
|---|---|---|---|
| CPU / GPU | |||
| Motherboard / other | |||
| Storage (NVMe / SSD) | |||
| Fans |
| Platform | Coverage |
|---|---|
| ๐ง Linux / NixOS | Complete: every hwmon sensor (CPU, motherboard, NVMe/SATA, AMD/Intel GPUs, Wi-Fi, fans), plus NVIDIA GPUs through the driver's NVML library. Devices are named from /proc/cpuinfo, DMI, drive models, and lspci |
| ๐ macOS | Best effort: powermetrics, which needs root. Run sudo tempinfo; otherwise you get "no sensors readable" |
| ๐ช Windows | Best effort: ACPI thermal zones via WMI/PowerShell (usually needs an Administrator terminal), plus NVIDIA GPUs through NVML |
NVIDIA GPUs are read straight from the driver library, so nvidia-smi isn't needed and readings still work when nvidia-smi itself is broken.
TempInfoCLI is not in nixpkgs. The repo ships its own flake instead, so you add it as a flake input.
nix run github:fatumorg/TempInfoCLI1. Add the input to your system flake.nix:
{
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
tempinfocli = {
url = "github:fatumorg/TempInfoCLI";
inputs.nixpkgs.follows = "nixpkgs";
};
};
}inputs.nixpkgs.follows makes TempInfoCLI build against your system's nixpkgs instead of pulling a second copy.
2. Pass inputs through to your modules in the same file:
{
outputs = { nixpkgs, ... }@inputs: {
nixosConfigurations.myhost = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = { inherit inputs; };
modules = [ ./configuration.nix ];
};
};
}3. Install the package. System-wide, in configuration.nix:
{ pkgs, inputs, ... }:
{
environment.systemPackages = [
inputs.tempinfocli.packages.${pkgs.stdenv.hostPlatform.system}.default
];
}Or for one user with Home Manager, in home.nix. This needs home-manager.extraSpecialArgs = { inherit inputs; }; in your flake:
{ pkgs, inputs, ... }:
{
home.packages = [
inputs.tempinfocli.packages.${pkgs.stdenv.hostPlatform.system}.default
];
}4. Rebuild:
sudo nixos-rebuild switch --flake .#myhost
tempinfoThe package also installs the TempInfoCLI app-menu entry and its icon, so it shows up in your launcher right after the rebuild.
| Goal | How |
|---|---|
| Update to the latest commit | nix flake update tempinfocli, then rebuild |
| Pin to this release | url = "github:fatumorg/TempInfoCLI/v0.3.0"; |
| Install without NixOS (any Nix) | nix profile install github:fatumorg/TempInfoCLI |
| Hack on it | nix develop inside a clone |
From a clone, nix-shell builds the package from default.nix and puts tempinfo on your PATH. Or build it standalone with nix-build && ./result/bin/tempinfo.
git clone https://github.com/fatumorg/TempInfoCLI
cd TempInfoCLI
pip install -e .
tempinfoOn Linux, install pciutils (for lspci) to get full GPU and Wi-Fi names. Without it, those panels fall back to driver names such as amdgpu.
| Command | What it does |
|---|---|
tempinfo |
live dashboard |
tempinfo --once |
print one snapshot and exit |
tempinfo --json |
print sensors as JSON and exit |
tempinfo --stream |
print one JSON line per refresh, for bars and widgets |
tempinfo --interval 2 |
refresh every 2s (minimum 0.2) |
tempinfo --no-color |
plain output |
tempinfo --version |
print tempinfo 0.3.0 |
When the output is piped or redirected, tempinfo prints one snapshot instead of the live view.
--json gives one object per sensor, including the device it belongs to and the warn and hot thresholds behind the colours (null for readings that are not temperatures):
[
{
"group": "amdgpu",
"label": "edge",
"value": 46.0,
"unit": "ยฐC",
"kind": "gpu",
"device": "AMD Radeon 610M (iGPU)",
"warn": 75,
"hot": 90
},
{
"group": "nvidia",
"label": "GPU core",
"value": 52.0,
"unit": "ยฐC",
"kind": "gpu",
"device": "NVIDIA GeForce RTX 5070 Ti (dGPU)",
"warn": 75,
"hot": 90
}
]--stream keeps running and prints one line per --interval, each one {"time": <ms>, "sensors": [...]} with the same objects, flushed right away. It is meant for other programs, such as the SylTemp plugin in Sylvaris.
- โ๏ธ Nix: nothing to do. The package ships
tempinfo.desktopand the icon. Your launcher runs it in your default terminal. - ๐ง Linux (pip): run
./packaging/linux/install-desktop-entry.shto add the same entry and icon under~/.local/share. - ๐ช Windows: double-click
packaging\windows\install-shortcut.bat(or run the.ps1) to add Desktop and Start Menu shortcuts that open a console runningtempinfo.
pip install pytest && pytestThe Nix build runs the same suite.
MIT, see LICENSE.
