{"id":19407633,"url":"https://github.com/jakeroggenbuck/auto-clock-speed","last_synced_at":"2025-04-05T15:05:27.109Z","repository":{"id":36979201,"uuid":"383692525","full_name":"JakeRoggenbuck/auto-clock-speed","owner":"JakeRoggenbuck","description":"A utility to check stats about your CPU, and auto regulate clock speeds to help with either performance or battery life.","archived":false,"fork":false,"pushed_at":"2025-03-06T02:36:50.000Z","size":2774,"stargazers_count":39,"open_issues_count":53,"forks_count":10,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-05T15:05:16.814Z","etag":null,"topics":["cli","cpu","linux","rust"],"latest_commit_sha":null,"homepage":"https://autoclockspeed.org","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JakeRoggenbuck.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE-MIT","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-07-07T06:11:04.000Z","updated_at":"2025-03-24T19:03:54.000Z","dependencies_parsed_at":"2023-09-25T08:23:54.820Z","dependency_job_id":"f3fb9327-369d-4a41-8d5b-13984331e24d","html_url":"https://github.com/JakeRoggenbuck/auto-clock-speed","commit_stats":{"total_commits":861,"total_committers":11,"mean_commits":78.27272727272727,"dds":0.5168408826945412,"last_synced_commit":"cd84ee06fad57296f86018c4f8d3859360a2de14"},"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JakeRoggenbuck%2Fauto-clock-speed","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JakeRoggenbuck%2Fauto-clock-speed/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JakeRoggenbuck%2Fauto-clock-speed/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JakeRoggenbuck%2Fauto-clock-speed/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JakeRoggenbuck","download_url":"https://codeload.github.com/JakeRoggenbuck/auto-clock-speed/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247353731,"owners_count":20925329,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","cpu","linux","rust"],"created_at":"2024-11-10T12:03:19.099Z","updated_at":"2025-04-05T15:05:27.049Z","avatar_url":"https://github.com/JakeRoggenbuck.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Auto Clock Speed Banner Logo](https://user-images.githubusercontent.com/35516367/169680198-99d02746-22f7-433d-a9a1-d8858edef512.png)\n[![Rust](https://img.shields.io/github/actions/workflow/status/jakeroggenbuck/auto-clock-speed/rust.yml?branch=main\u0026style=for-the-badge)](https://github.com/JakeRoggenbuck/auto-clock-speed/actions)\n[![Crates Version](https://img.shields.io/crates/v/autoclockspeed?style=for-the-badge)](https://crates.io/crates/autoclockspeed)\n[![Downloads](https://img.shields.io/crates/d/autoclockspeed?style=for-the-badge)](https://crates.io/crates/autoclockspeed)\n![GitHub code size in bytes](https://img.shields.io/github/languages/code-size/jakeroggenbuck/auto-clock-speed?style=for-the-badge)\n![Commits since last release](https://img.shields.io/github/commits-since/jakeroggenbuck/auto-clock-speed/latest?style=for-the-badge)\n\n#### [ACS Upstream](https://github.com/jakeroggenbuck/auto-clock-speed) - [autoclockspeed.org](https://autoclockspeed.org) - [Our crates.io](https://crates.io/crates/autoclockspeed) - [ACS Github Org](https://github.com/autoclockspeed)\n\nA utility to check stats about your CPU, and auto regulate clock speeds to help with either performance or battery life.\nThis program is designed for Linux and Intel laptops, although it should theoretically work on AMD systems and sometimes desktops as well.\nIf you encounter any issues or bugs, please refer to the [wiki](https://github.com/JakeRoggenbuck/auto-clock-speed/wiki) to see if there is a solution.\n\n![acs](https://user-images.githubusercontent.com/35516367/199084229-aee15ac5-bd86-41e9-b7fc-22517e21e6f0.png)\n\n## Quickstart\n```\ncargo install autoclockspeed\n```\n\nNow you can run `acs monit`.\n\nView [#install-latest-release](https://github.com/JakeRoggenbuck/auto-clock-speed?tab=readme-ov-file#install-latest-release) for more info.\n\n## Goals\n- First and foremost, this is a project to learn about Rust and Linux\n- Secondly, try to improve upon AdnanHodzic's already amazing [auto-cpufreq](https://github.com/AdnanHodzic/auto-cpufreq)\n- Add options to display raw output of governors, clockspeed, turbo, battery, etc. for use in scripts or display panels like polybar.\n\n\n## Want to help? Yay! Welcome!\n- Read our [CONTRIBUTING.md](CONTRIBUTING.md) for some helpful tips\n- Find an issue - [\"good first issue\"](https://github.com/JakeRoggenbuck/auto-clock-speed/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) recommended\n- Feel free to ask questions!\n\n\n## Install Latest Release\nIf you have cargo on your machine, skip to step 3\n\n1. Go to [`rustup.rs`](https://rustup.rs/) to install rust.\n\n2. Setup rust\n   ```sh\n   rustup override set stable\n   rustup update stable\n   ```\n   \n3. Clone the project and install\n   ```sh\n   git clone https://github.com/JakeRoggenbuck/auto-clock-speed\n\n   cargo install --path auto-clock-speed\n\n   # This is needed to have the root version of acs match the local installed version\n   sudo cp ~/.cargo/bin/acs /usr/bin/acs\n   ```\n   \n   Note: If you receive error `linker 'cc' not found`, then you need to install a C compiler (gcc, cmake, etc.) first.\n   \n\u003chr\u003e\n\nNote: The latest release of acs can also be installed locally with the following\n```sh\ncargo install autoclockspeed\n```\n\n## Tested Devices\nAuto clock speed has been tested to work on the following devices. If you have a device that is not listed please submit a pull request.\n\n| Functionality | Description |\n| ------------- | ----------- |\n| Working | All parts of ACS are fully functional, the computer has enough data to make decisions on governor changes and can be run in edit mode |\n| Mostly Working | ACS is unable to understand some data from the computer however certain data (like battery life, battery condition, temperature etc) which is non essential in making governor decisions, is missing |\n| Partially Working | ACS is able to mostly work, although with one or more significant caveat (i.e. jailbreak on Apple devices or root access on Android) |\n| Barely Working | ACS is unable to be run in edit mode due to missing data from the system, monit mode may still work however functionality is limited. If you have a system that falls under this category please open an issue |\n| Borked | ACS cannot find any useful data. Please open an issue |\n\n| Device Name | Functionality | Notes |\n| ----------- | ------------- | ----- |\n| Dell XPS 13 9360 | Working | |\n| Dell Latitude 7480 | Working | |\n| Steam Deck | Working | Edit mode not necessary (use built in governor switcher) |\n| Thinkpad T400 | Working | |\n| Thinkpad T460 | Working | |\n| Thinkpad X230 | Working | |\n| Thinkpad X301 | Working | |\n| Thinkpad W540 | Working | |\n| ThinkPad X1 Carbon Gen 1 | Working | |\n| ThinkPad X1 Extreme Gen 1 | Working | |\n| Thinkpad P1 Gen 4 (Intel Core) | Working | |\n| Thinkpad P14 Gen 2 (AMD) | Mostly Working | See [#443](https://github.com/JakeRoggenbuck/auto-clock-speed/issues/443) |\n| OnePlus 9 Pro (Snapdragon 888 SoC) | Partially Working | Needs root access; compile from source through termux |\n| iPad Pro Gen 6 | Borked | Compiles with iSH, but cannot access any data |\n\n\n## In Action\n[![image](https://user-images.githubusercontent.com/35516367/170888770-cf20411e-2b21-43a5-9636-bf6a6b545346.png)](https://www.youtube.com/watch?v=QTnv4pommN4)\n\n## New Interactive Mode\n![image](https://user-images.githubusercontent.com/35516367/170414026-2466ee6b-fd6c-48f0-bec8-127237116baf.png)\n\n## Systemd\nIn order to have auto-clock-speed start when you restart your computer you must follow these instructions\n```sh\n# IMPORTANT: Modify the service file (acs.service) in the\n# project directory to include the path to the binary file \n# (usually /home/username/.cargo/bin/acs)\n```\n\n```sh\n# In the auto clock speed directory run this command to\n# move the service file into your systemd directory\nsudo cp acs.service /etc/systemd/system/\n```\n\n```sh\n# Start and enable the service\nsudo systemctl start acs\nsudo systemctl enable acs\n\n# Check service is up and running\nsystemctl status acs\n```\n## Systemctl command\nThe line after `[Service]` in `acs.service` is the command that will be run. You may want to add or remove arguments, mainly `--quiet`.\n```\n[Unit]\nDescription=Manages Clock Speed\n\n[Service]\nExecStart=/home/your-user-here/.cargo/bin/acs run --no-animation --quiet\n\n[Install]\nWantedBy=multi-user.target\n```\n\n## Config\n### Using default config\n```sh\nWARN: Using default config. Create file '/etc/acs/acs.toml' for custom config or run 'acs initconfig' to setup default config automatically.\n```\nThis warning recommends creating a config file, use the initconfig command to automatically create one for you!\n\n```sh\nsudo acs initconfig\n```\n\n### This is an example config\nalso the default settings if no config is provided\n\n```toml\n# acs.toml\npowersave_under = 20\noverheat_threshold = 80\nactive_rules = [ \"battery_percent_rule\", \"lid_open_rule\", \"ac_charging_rule\", \"cpu_usage_rule\" ]\n```\n\n## Turn Off\nIf you would like to turn off auto-clock-speed, here are the steps.\u003cbr\u003e\nNote: This should be done during testing of acs run mode.\n```sh\n# Temporarily stop (only lasts until reboot)\nsudo systemctl stop acs\n\n# Permanently stop until turned on\nsudo systemctl disable acs\n```\n\n## Uninstall\nHere is how to uninstall the binary and the systemctl service.\n```sh\n# Remove local binary\ncargo uninstall acs\n\n# Remove system shared binary\nrm /usr/bin/acs\n\n# Remove systemctl entry\nrm /etc/systemd/system/acs.service\n```\n\n## Example Usage\nHere are some examples of how acs can be used.\n```sh\n# Monitor mode\nacs monitor\n\n# Run as root\nsudo acs run\n\n# Get all speeds\nacs get speeds\n\n# Select gov from dmenu\nsudo acs set gov $(acs get available-govs --raw | dmenu)\n```\n\n## Detailed usage\nDetailed usage can be found on our [wiki](https://github.com/JakeRoggenbuck/auto-clock-speed/wiki/Detailed-Usage)  \n\n## Help\n```\nAutomatic CPU frequency scaler and power saver\n\nUSAGE:\n    acs \u003cSUBCOMMAND\u003e\n\nFLAGS:\n    -h, --help       Prints help information\n    -V, --version    Prints version information\n\nSUBCOMMANDS:\n    daemon         Controls interaction with a running daemon\n    get            Get a specific value or status\n    help           Prints this message or the help of the given subcommand(s)\n    initconfig     Initialize config\n    interactive    Interactive mode for auto clock speed commands\n    monitor        Monitor each cpu, it's min, max, and current speed, along with the governor\n    run            Run the daemon, this checks and edit your cpu's speed\n    set            Set a specific value\n    showconfig     Show the current config in use\n```\n\n\u003c!--       _\n       .__(.)\u003c (qwak)\n        \\___)   \n ~~~~~~~~~~~~~~~~~~--\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjakeroggenbuck%2Fauto-clock-speed","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjakeroggenbuck%2Fauto-clock-speed","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjakeroggenbuck%2Fauto-clock-speed/lists"}