Open-source project
ilya-zlobintsev/LACT avatar
ilya-zlobintsev/LACT

LACT: Linux GPU Configuration and Monitoring for AMD, Nvidia, and Intel

Linux GPU Configuration And Monitoring Tool

5,677 stars154 forksRustMIT

At a glance

What is it?
LACT is a Rust application for controlling and monitoring AMD, Nvidia, and Intel GPUs on Linux. It provides a GTK4 graphical interface and a system daemon (lactd) for power limits, fan curves, overclocking, undervolting, settings profiles, and historical metric charts, without requiring command-line interaction for day-to-day use.
Who is it for?
LACT is the right tool for Linux desktop users with AMD, Nvidia, or Intel GPUs who want a graphical interface for power management, fan control, and overclocking without writing shell scripts or editing sysfs files directly. AMD support is the most complete: overclocking and undervolting via voltage offset are fully documented, and RDNA3+ cards gain access to acoustic and thermal target settings.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 2 days ago.
What is it written in?
Mainly Rust, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 30, 2026, and from our analysis. They are not legal advice.

Editorial analysis

What LACT Does and Who Needs It

Linux does not ship a built-in graphical tool for GPU power management or overclocking. The kernel exposes GPU controls through sysfs entries and driver interfaces, but reading and writing them requires knowing the right file paths and acceptable value ranges. LACT wraps these interfaces in a GTK4 application with labeled controls and real-time charts. A system daemon named lactd handles the actual hardware interaction, runs independently of the graphical session, and persists settings across reboots. The GUI connects to lactd over a Unix socket. This split means that power profiles and fan curves set through LACT survive Wayland or X11 session restarts. The application targets AMD GPUs as its primary audience, with Nvidia and Intel support added in later versions. Settings profiles that activate automatically based on running processes (for example, applying an overclocked profile when a specific game is running) add automation beyond manual adjustment. The monitoring tab provides configurable historical charts for power draw, temperature, and clock frequency over time, and can export that data as a CSV file. Throttling events are displayed in the monitoring view as well, showing which thermal or power limits caused a clock reduction.

Feature Coverage by GPU Vendor

AMD GPUs have the broadest feature coverage. LACT reports VBIOS version, VRAM type, manufacturer, and bus width; hardware unit counts including Compute Units; and Resizable BAR status. Power cap adjustment and power state selection are AMD-only features. Fan curve customization is available for AMD and Nvidia. Overclocking covers GPU and VRAM clock configuration, and undervolting uses a voltage offset for most AMD cards. For RDNA3 and later AMD architectures, firmware-level thermal and acoustic targets are also exposed. Nvidia support provides fan control and GPU/VRAM clock configuration but requires the proprietary Nvidia driver with CUDA libraries installed. The README states explicitly that the Flatpak is available for Nvidia users and that missing proprietary drivers result in no Nvidia management capability. Intel GPU support is present but the README does not detail its specific feature set.

LACT's feature list includes an OpenTelemetry metrics exporter, documented in docs/EXPORTER.md. This allows the daemon to push GPU metrics (power consumption, temperature, clock frequencies, VRAM utilization) to any OpenTelemetry-compatible collector, which then routes data to Prometheus, Grafana, or other observability platforms. For server or headless environments, this exporter can run without the GTK4 GUI: the Makefile includes a build-release-headless target that compiles the daemon without the graphical interface. The Docker support documented in docs/DOCKER.md is specifically for this service-only, no-GUI deployment. Settings profiles that activate automatically based on running processes are implemented through either detecting specific process names or through integration with gamemode status, making it possible to apply a performance-focused power profile automatically when a game launches and revert when it exits.

Installing LACT

Installation methods vary by distribution. On Arch Linux, LACT is in the official repositories:

code
pacman -S lact

On Debian 12 and Ubuntu 22.04 or later, download a .deb from the releases page (older distributions are not supported because they do not ship GTK4). On Fedora, use the Copr repository or an RPM from releases. On NixOS, the package is available in nixpkgs. For Bazzite and Fedora Atomic, the Flatpak is the recommended path. Solus users install from the official repository:

code
eopkg it lact

After installation, enable and start the daemon:

code
sudo systemctl enable --now lactd

The GUI connects to lactd over a Unix socket. By default, the socket is owned by the wheel or sudo group, so on most distributions the default user already has access. On OpenSUSE and some other configurations, socket permissions may need to be set manually in /etc/lact/config.yaml by specifying admin_user or admin_group under the daemon section. Development builds from the latest commit are available from the test-build release tag on GitHub, with the actual build date listed next to the attached package files rather than next to the release itself.

AMD Overclocking: The Required Driver Option

AMD overclocking in LACT requires enabling an option in the amdgpu kernel driver. Without it, the overclocking controls do not appear in the interface. The wiki page at github.com/ilya-zlobintsev/LACT/wiki/Overclocking-(AMD) documents the exact kernel parameter to set. Once the parameter is active, the overclocking tab exposes GPU clock, VRAM clock, and voltage offset controls. For RDNA3 and newer GPUs, additional firmware controls for thermal target temperature and acoustic limit frequency are also available in the GUI. The wiki also documents how to recover from a bad overclock that prevents the system from booting: a recovery procedure at github.com/ilya-zlobintsev/LACT/wiki/Recovering-from-a-bad-overclock walks through removing the offending settings from /etc/lact/config.yaml before the next boot.

Conflict with power-profiles-daemon

Many Linux distributions install power-profiles-daemon by default, and it can override the amdgpu performance level setting that LACT configures. On LACT 0.7.5 and later combined with power-profiles-daemon 0.30 and later, LACT automatically detects the conflict and disables the amdgpu action in power-profiles-daemon. On older versions of either package, the conflict must be resolved manually by creating a systemd drop-in file. The README provides the exact content:

code
[Service]
ExecStart=
ExecStart=/usr/libexec/power-profiles-daemon --block-action=amdgpu_dpm

Place this in /etc/systemd/system/power-profiles-daemon.service.d/override.conf, adjusting the /usr/libexec path to match the actual binary location on the system. This conflict does not affect Nvidia or Intel GPUs. The README includes a note to check the actual path using systemctl status power-profiles-daemon before writing the override file, since the binary may be at /usr/bin/power-profiles-daemon on some distributions. Getting the path wrong in ExecStart causes the daemon to fail to start rather than silently behaving incorrectly, so the error surfaces immediately.

LACT vs. CoreCtrl

CoreCtrl is a Qt-based Linux GPU management application that also targets AMD hardware primarily. The two applications cover similar ground: power limits, fan curves, and overclocking through a graphical interface. The key architectural difference is that LACT uses a system daemon (lactd) that runs independently of the desktop session and persists settings across session restarts, while CoreCtrl runs as a standard user application. LACT also supports Nvidia and Intel GPUs, which CoreCtrl does not. LACT ships automatic settings profiles triggered by running processes, which CoreCtrl's application profiles provide as well. LACT is written in Rust; CoreCtrl is written in C++. For AMD-only setups where either application is available, the choice comes down to toolkit preference (GTK4 vs. Qt) and whether the daemon architecture matters for the specific use case.

The LACT repository workspace structure reflects its modular design: lact-daemon handles hardware interaction, lact-gui provides the GTK4 interface, lact-cli wraps the daemon API in a command-line tool, lact-client is the shared client library, lact-schema defines the data structures exchanged between daemon and clients, and lact is the top-level binary that ties them together. The CLI (lact-cli) is a practical tool for checking GPU state in scripts or headless environments where the GUI is unavailable. LACT supports Flatpak distribution through Flathub, and the flatpak/ directory in the repository contains the manifest and notes about Flatpak-specific behavior, including how the Flatpak service setup handles socket permissions differently from a native installation. The Cargo.toml workspace uses the 2024 Rust edition and optimizes the release profile with LTO and symbol stripping to reduce binary size.

Editorial conclusion

LACT is the right tool for Linux desktop users with AMD, Nvidia, or Intel GPUs who want a graphical interface for power management, fan control, and overclocking without writing shell scripts or editing sysfs files directly. AMD support is the most complete: overclocking and undervolting via voltage offset are fully documented, and RDNA3+ cards gain access to acoustic and thermal target settings. Nvidia support requires the proprietary driver with CUDA libraries; without those, the daemon will not manage Nvidia hardware. Before enabling AMD overclocking, the amdgpu kernel module option documented in the wiki must be set, or the overclocking controls will not appear. Teams running LACT in a server or headless context can use the OpenTelemetry metrics exporter and skip the GTK4 GUI entirely. The last push was on 2026-09-26 and the project is MIT licensed.

Frequently asked questions

Does Lact support Nvidia?

Yes. LACT supports Nvidia GPUs for fan control and clock configuration. Nvidia support requires the proprietary Nvidia driver with CUDA libraries installed; without them, LACT cannot manage Nvidia hardware.

How can I overclock my GPU in Linux?

LACT provides a graphical overclocking interface for AMD and Nvidia GPUs on Linux. For AMD, you must first enable the required amdgpu kernel option documented in the LACT wiki. Enable the lactd daemon with sudo systemctl enable --now lactd, then open LACT and use the overclocking tab.

What is lact in Linux?

LACT is the Linux GPU Control Application. It is a Rust GTK4 program that provides a graphical interface for monitoring and configuring AMD, Nvidia, and Intel GPUs on Linux, including power limits, fan curves, overclocking, undervolting, and automatic settings profiles.

What are the differences between CoreCtrl and LACT?

LACT uses a system daemon (lactd) that persists settings across session restarts and supports AMD, Nvidia, and Intel GPUs. CoreCtrl is a user-space Qt application focused primarily on AMD. LACT is written in Rust with GTK4; CoreCtrl is written in C++ with Qt.

Official sources

  1. ilya-zlobintsev/LACT on GitHub
  2. Issues
  3. License: MIT
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/ilya-zlobintsev-lact.svg)](https://hysenlabs.com/projects/ilya-zlobintsev-lact)