{"id":20479547,"url":"https://github.com/sebastian-xyz/yablo","last_synced_at":"2025-10-29T06:47:48.882Z","repository":{"id":169647601,"uuid":"294995066","full_name":"sebastian-xyz/yablo","owner":"sebastian-xyz","description":"Yet Another Battery Life Optimizer for Linux 🐧","archived":false,"fork":false,"pushed_at":"2021-09-27T13:45:15.000Z","size":135,"stargazers_count":12,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-27T04:33:32.976Z","etag":null,"topics":["battery-life","cli","daemon","energy-consumption","energy-efficiency","laptop","linux","optimization","optimizer","systemd","yet-another"],"latest_commit_sha":null,"homepage":"","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/sebastian-xyz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2020-09-12T17:41:05.000Z","updated_at":"2024-08-17T07:00:13.000Z","dependencies_parsed_at":"2023-06-09T07:46:19.875Z","dependency_job_id":null,"html_url":"https://github.com/sebastian-xyz/yablo","commit_stats":{"total_commits":38,"total_committers":1,"mean_commits":38.0,"dds":0.0,"last_synced_commit":"35964a0cd5b6b02fd5291875cc8d344833e7bdb9"},"previous_names":["sebastian-xyz/yablo"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sebastian-xyz%2Fyablo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sebastian-xyz%2Fyablo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sebastian-xyz%2Fyablo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sebastian-xyz%2Fyablo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sebastian-xyz","download_url":"https://codeload.github.com/sebastian-xyz/yablo/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248721224,"owners_count":21151065,"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":["battery-life","cli","daemon","energy-consumption","energy-efficiency","laptop","linux","optimization","optimizer","systemd","yet-another"],"created_at":"2024-11-15T15:44:37.054Z","updated_at":"2025-10-29T06:47:43.858Z","avatar_url":"https://github.com/sebastian-xyz.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# YABLO\n**Y**et **A**nother **B**attery **L**ife **O**ptimizer for Linux 🐧\n\nYablo reduces the energy consumption of the CPU by automatically setting the CPU governor and Turbo Boost dependend on the battery state and system load.\nIt is highly inspired by [auto-cpufreq](https://github.com/AdnanHodzic/auto-cpufreq).\nThe application is written in Rust.\n\n![Running yablo daemon](images/yablo_daemon.png \"Running yablo daemon\")\n\n### Features\n- automatically sets CPU governor dependend on battery state and load\n- automatically activates or deactivates Turbo Boost dependend on battery state and load\n- saves energy by reducing the power consumption by the CPU\n\n### CLI\nAvailable flags\n- `-d`, `--debug`:  Shows debug/system info\n- `-h`, `--help`: Prints help information\n- `-l`, `--live`: Prints information and applies suggested CPU optimizations\n- `--log`: View live CPU optimization log made by daemon\n- `-m`, `--monitor`: Suggests CPU optimizations for the current load\n- `-u`, `--update-config`: Reloads the systemd daemon \n- `-V`, `--version`: Prints version information\n\n## Config\n\nThe configuration file is stored at `/etc/yablo/config.toml`.\nIt allows setting the following parameters separately for the battery states `plugged_in` and `on_battery`\n\n### On AC power (`plugged_in`)\n- `governor` (*String*): sets the default governor for low system load\n- `turbo` (*Bool*): allows disabling Turbo Boost to save energy\n- `second_stage_governor` (*String*): sets a different governor for high system load or CPU usage. Can be used to compensate for a disabled turbo boost when running on battery (optional, default: `performance`)\n- `turbo_delay` (*Integer*): sets the delay in seconds before the Turbo gets activated (optional, default: 0)\n- `loadperc_threshold` (*Float*): sets the threshold value for the cpu load (optional, default: `20.0`)\n- `loadavg_threshold` (*Float*): set the threshold value for the load average (optional, default: `(50.0 * num_cpus)/100.0`)\n\n### On Battery power (`on_battery`)\n- `governor` (*String*): sets the default governor for low system load\n- `turbo` (*Bool*): allows disabling Turbo Boost to save energy\n- `second_stage_governor` (*String*): sets a different governor for high system load or CPU usage. Can be used to compensate for a disabled turbo boost when running on battery (optional, default: `powersave`)\n- `turbo_delay` (*Integer*): sets the delay in seconds before the Turbo gets activated (optional, default: 0)\n- `battery_threshold` (*Integer*): sets the threshold value for the battery capacity to limit the energy consumption on load battery states - turbo completly disabled (optional, default: `0`)\n- `low_battery_governor` (*String*): sets the governor that is used on low battery states (optinal, default: `powersave`)\n- `loadperc_threshold` (*Float*): sets the threshold value for the cpu load (optional, default: `30.0`)\n- `loadavg_threshold` (*Float*): set the threshold value for the load average (optional, default: `(75.0 * num_cpus)/100.0`)\n\n### Default config\n```toml\n# /etc/yablo/config.toml\n[plugged_in]\ngovernor = \"performance\"\nturbo = true\n\n[on_battery]\ngovernor = \"powersave\"\nturbo = true\n\n```\n\n## Installation\n\n### Install script\n\nThe easiest way is to use the install script. It checks for system compatability and installs all the components.\nIt also prompts if you want to start and enable the systemd service to have `yablo` always running.\n\n```bash\ngit clone https://github.com/sebastian-xyz/yablo.git\ncd yablo\nsudo ./install_script $(whoami)\n```\nThe install script allows to choose between the compilation of the binary locally or downloading it from GitHub and check the integrity using a hashsum.\nIt also deploys a remove script in the `PATH` to remove the whole program without manual intervention.\nJust run `yablo_remove` everything will be removed.\n\n**Note**: The username is necessary for the installation if the binary is not compiled locally to avoid downloading the binary as root.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsebastian-xyz%2Fyablo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsebastian-xyz%2Fyablo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsebastian-xyz%2Fyablo/lists"}