Charge limit
Pick a limit from 20 to 100%. On macOS 26 and later, the Mac's own charge limit does the work from 80%.
Charge limit, discharge, calibration and scheduling, from the menu bar. Free, open source, no account.
Preview of the ChargeKeeper menu: battery at 80%, charging paused at the limit, the limit slider, discharge and full charge buttons, and the power flow from the adapter to the MacBook.
Looking up the latest release…
On first launch, macOS asks you to allow ChargeKeeper's background service in System Settings > General > Login Items. That service is what talks to the battery.
Keeping a battery between 50 and 80% slows its wear. ChargeKeeper does it for you, even when the app is closed.
Pick a limit from 20 to 100%. On macOS 26 and later, the Mac's own charge limit does the work from 80%.
Run from the battery while plugged in, down to your limit. Start it by hand or let it start on its own.
Recharge only once the level drops below a range, instead of topping up after every percent.
A full cycle: 100%, down to 10%, back to 100%, one hour of rest, then your limit.
Charging pauses above the temperature you set, checked in five-minute windows.
Watts from the adapter and the battery to the Mac, live. Warns you when the adapter is too weak.
Set a limit, calibrate, charge to 100% or toggle Low Power Mode at set times. Missed tasks can run on wake.
Every action in the Shortcuts app, and chargekeeperctl on the command line.
ChargeKeeper only goes online to check for updates on GitHub. No account, no telemetry, no personal data collected.
That update check contacts github.com, which sees your IP address and the app version. Everything else stays on your Mac.
This website is hosted by GitHub Pages, which logs visitors' IP addresses (see GitHub's privacy statement). Your browser asks api.github.com for the latest release. No cookies, no analytics: only your language choice is kept in your browser (localStorage). Fonts are served from this site.
Changing how the battery charges requires administrator rights. A small service runs as root and does only that; the menu bar app talks to it through a local socket that only administrators can use. You approve it once in System Settings.
MacBooks with Apple silicon, on macOS 14 or later. Intel Macs are not supported.
macOS's built-in limit stops at 80%. Below that, ChargeKeeper switches between battery and adapter around your limit, so the level moves by about 1%.
ChargeKeeper checks the latest GitHub release on startup, then every 6 hours. Each update is signed: the app checks the signature, installs it and restarts its service.
With the menu closed, the app uses no CPU and about 20 to 30 MB of memory; the service about 30 MB. The power flow animation only runs while it is on screen.
Homebrew puts it on your PATH. With the .dmg, link it once: sudo ln -s /Applications/ChargeKeeper.app/Contents/MacOS/chargekeeperctl /usr/local/bin/chargekeeperctl, then chargekeeperctl status.
Quit ChargeKeeper and move it to the Trash. With Homebrew: brew uninstall --zap chargekeeper.
Publisher: Vlor999, private individual, non-commercial. Contact: GitHub issues.
Host: GitHub, Inc., 88 Colin P. Kelly Jr. Street, San Francisco, CA 94107, USA.
ChargeKeeper is provided as is, without warranty (MIT license). It uses undocumented macOS interfaces that may change: use it at your own risk. Not affiliated with or endorsed by Apple.
Apple, Mac, MacBook, MagSafe and macOS are trademarks of Apple Inc., registered in the U.S. and other countries and regions.