auto-cpufreq is a free, open source monitoring & observability project written in Python and released under GPL-3.0. It has 7,760 GitHub stars, 356 forks and 79 open issues, and was last pushed 6 days ago. On this registry it ranks #59 of 191 tracked projects in Monitoring & Observability, with 5 head-to-head comparisons available.

What is auto-cpufreq?

auto-cpufreq is a GPL-3.0 Python daemon and command-line tool that watches a Linux laptop's battery state, CPU usage, CPU temperature, and system load, then adjusts CPU frequency and power settings automatically for users who want longer battery life without giving up responsiveness.

What it is

auto-cpufreq lives in the Linux power-management ecosystem and is written in Python. It runs either as a background daemon or as a one-off command-line session, and it reads the hardware signals that matter for power decisions: laptop battery state, CPU usage, CPU temperature, and overall system load. It is published from the AdnanHodzic/auto-cpufreq repository under the GPL-3.0 licence, with 7,760 stars, 356 forks, and 79 open issues at the time of writing, and the project's homepage is foolcontrol.org. Topics attached to the repository include battery, boost, cli, cpu, daemon, frequency, governor, laptop, linux, and management, which describes its scope accurately.

The concrete problem it solves is that the stock Linux CPU frequency scaling setup is largely static. A default governor does not reason about the combination of remaining battery, thermal headroom, and current load, so a laptop tends to sit at one extreme: either a performance governor that drains the battery and runs hot, or a powersave policy that feels sluggish under real work. auto-cpufreq replaces that manual governor selection and the ad-hoc shell scripts people write around it. It exposes a configuration file for tuning its own thresholds, and it provides a --force option for overriding the governor, so the user keeps final say over the policy instead of hand-editing sysfs entries.

Key capabilities

  • Monitors battery state, CPU usage, CPU temperature, and system load, and adjusts CPU frequency and power behaviour from those inputs.
  • Runs as a daemon with dedicated lifecycle commands: install the daemon, update it, or remove it.
  • Interactive inspection modes: monitor and live, plus auto-cpufreq --stats for printed statistics.
  • Graphical interface available from v2.0 onward, alongside the CLI.
  • Overrides for the two settings laptop users most often want to force: governor override via --force and turbo mode override via --turbo.
  • Platform Profiles and Intel HWP Dynamic Boost support, plus battery charging thresholds and Battery config.
  • Bluetooth control at boot through the bluetooth_boot_off and bluetooth_boot_on actions, and the ability to ignore selected power supplies.

Who uses it and how

  • Laptop users on Linux who want the machine to react to being on battery versus plugged in without manual intervention.
  • Users on Snap-based distributions, who install from the Snap Store and additionally run the power_helper.py script that ships with the Snap package.
  • Arch-based users, who install from the AUR, and NixOS users, who use the Nix Flake build.
  • Users who want a persistent policy, who install the daemon so corrections happen continuously in the background rather than only when a command is run.
  • Contributors and co-maintainers: the README states the project is actively looking for co-maintainers and developers, and points to a Discord server and a discussions thread for that purpose.

Getting started

Installation is handled by the auto-cpufreq-installer script, or alternatively through the Snap Store, the AUR package for Arch-based distributions, or NixOS. From there, the daemon is installed and updated through the project's own daemon commands.

How it compares

No comparable or competing tools are named in the facts for this entry, so auto-cpufreq stands alone in this registry. It is best understood as a self-hosted Linux power-management utility rather than a hosted service.

When to use it — and when not to

A self-hoster must run a daemon with the elevated access that governor, Platform Profile, and battery threshold changes require, and Snap installations carry the extra power_helper.py step. Machines without a battery, such as servers and desktops, gain little from the battery-state logic that drives the tool. The project also carries 79 open issues and is explicitly asking for co-maintainers, so anyone depending on it in a managed fleet should weigh that maintenance capacity.

project readme (upstream, from github) — read inline

auto-cpufreq

Linux Build Nix Flake

Automatic CPU speed & power optimizer for Linux. Actively monitors laptop battery state, CPU usage, CPU temperature, and system load, ultimately allowing you to improve battery life without making any compromises.

For tl;dr folks:

If you're having a problem with auto-cpufreq, before (submitting an issue), it is strongly recommended to use the auto-cpufreq-genAI-chatbot to get an immediate answer to your question.

Example of auto-cpufreq GUI (available >= v2.0)

Example of auto-cpufreq GUI (available >= v2.0)

Example of auto-cpufreq --stats CLI output

Example of auto-cpufreq CLI output

Looking for developers and co-maintainers

Index

Why do I need auto-cpufreq?

One of the problems with Linux today on laptops is that the CPU will run in an unoptimized manner which will negatively impact battery life. For example, the CPU may run using the "performance" governor with turbo boost enabled regardless of whether it's plugged into a power outlet or not.

These issues can be mitigated by using tools like indicator-cpufreq or cpufreq, but those still require manual action from your side which can be daunting and cumbersome.

Tools like TLP (which I used for numerous years) can help extend battery life, but may also create their own set of problems, such as losing turbo boost.

Given all of the above, I needed a simple tool that would automatically make CPU frequency-related changes and save battery life, but let the Linux kernel do most of the heavy lifting. That's how auto-cpufreq was born.

Please note: auto-cpufreq aims to replace TLP in terms of functionality, so after you install auto-cpufreq it's recommended to remove TLP. Using both for the same functionality (i.e., to set CPU frequencies) will lead to unwanted results like overheating. Hence, only use both tools in tandem if you know what you're doing.

One tool/daemon that does not conflict with auto-cpufreq in any way, and is even recommended to have running alongside, is thermald.

Supported architectures and devices

Only devices with an Intel, AMD, or ARM CPU are supported. This tool was developed to improve performance and battery life on laptops, but running it on desktops/servers (to lower power consumption) should also be possible.

Features

  • Monitoring
    • Basic system information
    • CPU frequency (system total & per core)
    • CPU usage (system total & per core)
    • CPU temperature (total average & per core)
    • Battery state
    • System load
  • CPU frequency scaling, governor, and turbo boost management based on
    • Battery state
    • CPU usage (total & per core)
    • CPU temperature in combination with CPU utilization/load (to prevent overheating)
    • System load
  • Automatic CPU & power optimization (temporary and persistent)
  • Platform Profile monitoring and configuration, when exposed by the Linux platform driver
    • Current platform profile
    • Available profiles
    • Platform Profile provider(s)
    • Separate charger and battery configuration
  • Settings battery charging thresholds (limited support)

Installing auto-cpufreq

auto-cpufreq-installer

As auto-cpufreq relies on git based versioning, users are advised to install auto-cpufreq using git clone method only. Downloading source code as a zip/from release will emit build error like these.

Get source code, run installer, and follow on-screen instructions:

git clone https://github.com/AdnanHodzic/auto-cpufreq.git
cd auto-cpufreq && sudo ./auto-cpufreq-installer

Snap Store

Please note: while all auto-cpufreq >= v2.0 CLI functionality will work as intended, the GUI won't be available on Snap package installs due to Snap package confinement limitations. Hence, please consider installing auto-cpufreq using auto-cpufreq-installer.

auto-cpufreq is available on the Snap Store or via CLI:

sudo snap install auto-cpufreq

Please note:

  • Make sure snapd is installed and snap version is >= 2.44 for auto-cpufreq to fully work due to [

readme truncated — read the full docs on github

Frequently asked questions

Is auto-cpufreq free to use?

auto-cpufreq is open source under the GPL-3.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does auto-cpufreq do?

Automatic CPU speed & power optimizer for Linux

What is auto-cpufreq written in?

auto-cpufreq is primarily written in Python. Its source is publicly available at https://github.com/AdnanHodzic/auto-cpufreq, and it has 7,760 GitHub stars.