A lightweight keyboard-driven TUI for monitoring and overclocking your NVIDIA GPU on Linux.
- Monitor GPU utilization, VRAM, temps, fan, power, throttling, and more
- Configurable plots to graph metrics over time
- Overclock core/memory speeds and adjust power limits*
- Toggle manual fan overrides*
*Requires root; the GPU driver intentionally requires this. Run with sudo greenline.
Warning
Overclocking is risky, make sure you know what you're doing. Start conservative, change one variable at a time, and carefully monitor temps and fan speed. It is very difficult to cause permanent damage, but very easy to bring about system instability, screen freezes, driver crashes, or reduced hardware lifespan. I take no responsibility for hardware damage.
Greenline is built for x86-64 Linux (glibc ≥ 2.34). It supports consumer NVIDIA GPUs with an architecture of Maxwell or higher. It depends on the NVML library which is only included with the proprietary NVIDIA drivers.
Nix:
nix profile install github:mpatankar6/greenline
# Or if you just want to try it out
nix run github:mpatankar6/greenlineAUR:
# WIP
# paru -S greenlineGURU:
# WIP
# emerge greenlineFor other distros, tarballs can be found in Releases.
With Nix: Use the dev shell; it handles dependencies and the NVML library
path on NixOS. Loads automatically with direnv, or run nix develop.
Otherwise: Both Clang and GCC are supported, and you should use a version with good C23 support. You'll need CMake, Ninja, and pkg-config to build. With pkg-config, check you have the required dependencies:
pkg-config --exists nvidia-ml ncursesw && echo "found" || echo "missing"cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=Debug
cmake --build build
cmake --build build --target analyze # Optional
run-clang-tidy -quiet -p build # OptionalDevelopment builds run with ASan and UBSan.
To run unit tests after building:
ctest --test-dir build --output-on-failureWith Nix:
nix build
nix profile install . # Optionally install to Nix profileOtherwise:
cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=Release
cmake --build build
sudo cmake --install build # Optionally install to /usr/local/bin- Support for non-NVIDIA GPUs
- We would need an alternative implementation of
gpu.cfor AMD, Apple, Intel, etc. Then it can be subbed in at link time. Problem is I don't have the hardware to test. I'm open to contributions though.
- We would need an alternative implementation of
- Fan curves
- TUIs aren't ergonomic for this, LACT is a good program for this.
- Process management
- Not a focus, nvtop does this well.
- Persistence on reboot
- Greenline is light and daemonless with no root service applying settings in the background. A reboot always returns the GPU to stock, so a bad overclock can never follow you across a restart.
Copyright (C) 2026 Mihir Patankar
This project is licensed under the GNU General Public License v3.0 or later - see the LICENSE file for details.
