58

I leave my MacBook plugged in for days at a time, so the battery stays charged to 100%. Despite Apple claims to the contrary*, I believe that the battery's capacity would be better preserved if I could keep it at an 80% state-of-charge. Is there any command or setting that would let me disable charging from the power adapter?

Here are various options, (1) being my most preferred:

  1. A setting to automatically maintain battery at 80% SoC (like my Tesla has)
  2. A setting/command to use the AC adapter for running power only ("not charging" state)
  3. A command to tell my Mac to totally ignore the AC adapter power

(2) could be cobbled into (1) with some kind of script. Even if not possible from the Mac itself, (3) could be cobbled together with an IOT switch. But with (3), it's unclear the lower maintained SoC would outweigh the cost of the additional cycling.

* As of 11 Feb 2022, I can no longer find Apple claims that it's best to fully charge the battery.

1

7 Answers 7

35

Use bclm (Intel MacBook only)

Follow the instructions on github:

1. Download signed and notarized binary from releases.
# Alternatively, you can also get it from homebrew or compile it manually. Read github readme for more details.

2. Extract battery tool
$ unzip bclm.zip
$ sudo cp bclm /usr/local/bin

# 3. Set battery limit
$ sudo bclm write 80

# 4. Verify battery limit to 80%
$ blcm read

# 5. Reset the limit back to 100% when needed
$ sudo bclm write 100

Notes:

  • It might be better if you set it even lower, for example, 60% or 70%. Then, before you need to use it on battery for a long time, sudo python3 main.py -r. You can automate this switching between 80% and full using launchd (read man launchd.plist).
  • macOS show charge approximately 3-5% greater than the real value, so it may feel like the tool is not working initially. Use coconutbattery (GUI) or ioreg -l | awk '$3~/Capacity/{c[$3]=$5}END{OFMT="%.3f";max=c["\"MaxCapacity\""];print(max>0?100*c["\"CurrentCapacity\""]/max:"?")}' to calculate real battery charge level.
  • If you are using macOS Catalina or higher, you need to turn off the "Optimised battery charging" function for the tool to work properly, otherwise the value you set might be overwritten.
  • There is also a GUI version: https://github.com/godly-devotion/charge-limiter. Both work by setting the BCLM key in SMC to a custom value.

For Apple Silicon Macs and macOS 11 (Big Sur) and higher, use AlDente.

Alternatively, there is more lightweight tool with a command line version: battery.

0
17

macOS 10.15.5 on a Mac notebook with Thunderbolt 3 ports has this option (even a bit smarter) embedded, see Optimised battery charging.

https://support.apple.com/kb/HT211094

System Preferences: Battery

3
  • 36
    Unfortunately, "even a bit smarter" is failing for me. The OS has yet to figure out when to stop at 80%, and I doubt it ever will (my routines are unpredictable) Jan 7, 2021 at 12:14
  • 12
    Indeed. Not very smart at all :) I would much prefer to have a manual setting, instead of having to rely on hacks like given earlier.
    – Faruk D.
    Nov 9, 2021 at 14:09
  • If your 'routines are unpredictable', then that suggests you are actually unplugging it every now and again and using the battery, which means you don't need to keep it at 80% so much. By far a bigger factor in ageing is heat.
    – benwiggy
    Mar 6 at 7:50
6

You can try AlDente (there is also a Pro Version):

  • Charge Limiter allows you to set your maximum charging percentage between 20 and 100 percent. You can either set it by using the slide bar or by typing in the desired percentage in the field above and pressing enter afterwards.
  • Discharge - This feature allows your MacBook to run completely on Battery even if it is plugged in. Therefore, you can actively discharge your MacBook to a more healthy percentage. Unfortunately, while Discharge is activated, clamshell mode is not supported due to technical limitations.
2
  • AlDente has downsides, though. It's an app that runs, consumes noticeable amounts of CPU time, occupies space in the menu bar and overall does many more things. I wish there was a simpler solution for only limiting the charge to 80% on Apple Silicon macs. Sep 7, 2022 at 16:41
  • @JanRychter I added a simpler solution to my answer.
    – Joy Jin
    Jan 2 at 3:56
2

Tried below and it worked.

Open Terminal and run

xcode-select --install
git clone --recursive https://github.com/DevNulPavel/osx_battery_charge_limit
cd osx_battery_charge_limit
sudo python3 main.py -s 80

I set limit to 70 and it does stop charging until 72%

0
1

There is also Energiza Pro. It supports Apple silicon MacBooks and allows you to set flexible charging limits. (Disclaimer: I'm the developer.)

enter image description here

1

enter image description here

just wanted to share something interesting that I noticed about my MacBook battery. I am running MacOS v13.2.1 and I realized that my battery is automatically stopping charging at 80%. I even have an option to fully charge it if I need to.

After doing some research, I found out that this feature is designed to help prolong the lifespan of the battery by reducing the amount of time it spends at full charge. I think it's a really cool feature that I wasn't aware of before.

If any of you have a MacBook running MacOS v13.2.1 or later, you might want to check if this feature is enabled on your device.

0

I think all the open source and other apps already mentioned here either on comments or answers... But there is one more lightweight app that isn't mentioned here is called Charge Limiter

New contributor
Alan Turing is a new contributor to this site. Take care in asking for clarification, commenting, and answering. Check out our Code of Conduct.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .