github.com/charlie0129/batt
v0.8.0
#1291 most downloaded on Go modules
charlie0129/batt
What this package is like to depend on
Last release 1 months ago
21 Jul 2026
Release timing varies
gaps range from 8 days to 5 months
Some releases are documented
notes for 10 of 25 stable releases
Nothing withdrawn
no release was ever pulled
3 years old
58 releases · first in 2023
17 releases in the last 12 months
see the full history below
Release timeline
58 releases · Apr 2023 to Jul 2026Releases
latest 58-
v0.8.1-0.20260721142614-0161f4480af621 Jul 2026 pre-releaseNothing published for this version
-
v0.8.021 Jul 2026Release notes
Open source →What's Changed
Highlights
Since v0.7.3:
- macOS Golden Gate Developer Beta 1~3 support. macOS Golden Gate Developer Beta 4 is not yet supported.
- Battery health percentage report in
batt status - Scheduled charge-limit and power-adapter controls. Temporarily disable charge limits or force battery use with
--for, or choose a duration from the GUI.
Commits
Since v0.7.5:
- feat: add
--forflag tobatt disablefor scheduled re-enabling by @PrismaKisar in #143 - feat:
disable-forfeature hardening and GUI features by @charlie0129 in #144 - fix: honor disabled pre-sleep charging protection after missed loops by @charlie0129 in 81442d5
- feat: add
--forinadapter disablecommand by @charlie0129 in f25fef3
Installation
GUI version
- Download
.dmgand open it (right-click open if macOS says it's damaged) - Drag
batt.apptoApplications - macOS may say it's damaged when you try to run it (it's NOT) and wants you to move it to trash. To fix it, run this in Terminal:
sudo xattr -r -d com.apple.quarantine /Applications/batt.app. - Run
batt.app. - Follow the MenuBar UI to install or upgrade.
- Disable macOS's optimized charging:
System Settings->Battery->Battery Health->i-> Trun OFFOptimized Battery Charging. Built-in charge limit also need to be disabled if you are on macOS 26.4 or later.
CLI version
Note
Command-Line version is already included if you have installed the GUI version.
Option 1: Installation Script (Recommended)
bash <(curl -fsSL https://github.com/charlie0129/batt/raw/master/hack/install.sh)Option 2: Homebrew
brew install batt sudo brew services start batt # Do NOT forget sudo.Disable macOS's optimized charging:
System Settings->Battery->Battery Health->i-> Trun OFFOptimized Battery Charging. Built-in charge limit also need to be disabled if you are on macOS 26.4 or later.Upgrade
GUI version
Just follow the installation steps again. After you open the new version of batt.app, click
Upgrade Daemon...upgrade to the new daemon.CLI version
Please use the same method (Installation Script / Homebrew) as you installed to upgrade batt. Using both methods will cause conflicts. If you don't remember how you installed it, you can check the binary location by running
which batt. If it is in/usr/local/bin, you probably used the installation script. If it is in/opt/homebrew/bin, you probably used Homebrew.Option 1: Installation Script
bash <(curl -fsSL https://github.com/charlie0129/batt/raw/master/hack/install.sh) # Yes, the command is the same as installing.
Option 2: Homebrew
Important
If you previously ran
battv0.7.3 or earlier, follow the one-time service-label migration before starting the service. When the Homebrew formula moved from v0.7.3 to v0.7.5, its service label changed fromcc.chlc.batttohomebrew.mxcl.batt.brew update sudo brew services stop batt # Do NOT forget sudo. brew upgrade batt sudo brew services start batt # Do NOT forget sudo.
Homebrew service-label migration
if sudo launchctl print system/cc.chlc.batt >/dev/null 2>&1; then sudo launchctl bootout system/cc.chlc.batt fi sudo rm -f /Library/LaunchDaemons/cc.chlc.batt.plist
Compatibility Matrix
Check your firmware version by running
system_profiler SPHardwareDataType | grep -i firmwarein Terminal. Do NOT rely on macOS version.Firmware Version First macOS release GUI CLI (Prebuilt) CLI (Build from Source) Note 6723.x.xmacOS 11 Big Sur ❌ ❌ ⚠️ 7429.x.x/7459.x.xmacOS 12 Monterey ❌ ⚠️ ✅ 8419.x.x/8422.x.xmacOS 13 Ventura ⚠️ ⚠️ ✅ 101xx.x.xmacOS 14 Sonoma ⚠️ ⚠️ ✅ 118xx.x.xmacOS 15 Sequoia ✅ ✅ ✅ 138xx.x.x/18xxx.x.xmacOS 26 Tahoe ✅ ✅ ✅ 20356.0.0.0.15~20457.0.77.0.2macOS 27 Golden Gate Developer Beta 1~3 ✅ ✅ ✅ Firmware-managed limits; see below 20457.0.125.0.2+macOS 27 Golden Gate Developer Beta 4 ❌ ❌ ❌ Other Unknown ❓ ❓ ❓ - ❌: Unsupported
- ✅: Supported
- ⚠️: Not verified, but expected to work.
- ❓: Unknown, please raise an issue if you have tested it.
Note
Firmware version is different from macOS version. Old macOS versions may have newer firmware, e.g. macOS 15 with firmware
138xx.x.x(macOS Tahoe version). -
v0.7.6-0.20260716083456-889b6d4c7df516 Jul 2026 pre-releaseNothing published for this version
-
v0.7.513 Jul 2026Release notes
Open source →What's Changed
Highlights
v0.7.3 - v0.7.4:
- Basic macOS 27 firmware
20xxxsupport. - Reduced binary size. From 7.4MB -> 2.9MB compressed.
Since v0.7.4:
- Battery health report in
batt status
Commits
Since v0.7.3:
- feat: macos 27 firmware support and capability checks in #142. Thanks @ashwinr64 for investigating SMC keys on macOS 27 #140 comment actuallymentor/battery#469, also @lilianmoraru for the initial PR.
- refactor: remove darwinkit and use native objc instead by @charlie0129 in 7e62b7f
- feat: show battery health in batt status by @charlie0129 in 8148dfc
Installation
GUI version
- Download
.dmgand open it (right-click open if macOS says it's damaged) - Drag
batt.apptoApplications - macOS may say it's damaged when you try to run it (it's NOT) and wants you to move it to trash. To fix it, run this in Terminal:
sudo xattr -r -d com.apple.quarantine /Applications/batt.app. - Run
batt.app. - Follow the MenuBar UI to install or upgrade.
- Disable macOS's optimized charging:
System Settings->Battery->Battery Health->i-> Trun OFFOptimized Battery Charging. Built-in charge limit also need to be disabled if you are on macOS 26.4 or later.
CLI version
Note
Command-Line version is already included if you have installed the GUI version.
Option 1: Installation Script (Recommended)
bash <(curl -fsSL https://github.com/charlie0129/batt/raw/master/hack/install.sh)Option 2: Homebrew
brew install batt sudo brew services start batt # Do NOT forget sudo.Disable macOS's optimized charging:
System Settings->Battery->Battery Health->i-> Trun OFFOptimized Battery Charging. Built-in charge limit also need to be disabled if you are on macOS 26.4 or later.Upgrade
GUI version
Just follow the installation steps again. After you open the new version of batt.app, click
Upgrade Daemon...upgrade to the new daemon.CLI version
Please use the same method (Installation Script / Homebrew) as you installed to upgrade batt. Using both methods will cause conflicts. If you don't remember how you installed it, you can check the binary location by running
which batt. If it is in/usr/local/bin, you probably used the installation script. If it is in/opt/homebrew/bin, you probably used Homebrew.Option 1: Installation Script
bash <(curl -fsSL https://github.com/charlie0129/batt/raw/master/hack/install.sh) # Yes, the command is the same as installing.
Option 2: Homebrew
Important
If you previously ran
battv0.7.3 or earlier withsudo brew services, follow the one-time service-label migration before starting the service. When the Homebrew formula moved from v0.7.3 to v0.7.5, its service label changed fromcc.chlc.batttohomebrew.mxcl.batt.brew update sudo brew services stop batt # Do NOT forget sudo. brew upgrade batt sudo brew services start batt # Do NOT forget sudo.
Homebrew service-label migration
if sudo launchctl print system/cc.chlc.batt >/dev/null 2>&1; then sudo launchctl bootout system/cc.chlc.batt fi sudo rm -f /Library/LaunchDaemons/cc.chlc.batt.plist
Compatibility Matrix
Check your firmware version by running
system_profiler SPHardwareDataType | grep -i firmwarein Terminal. Do NOT rely on macOS version.Firmware Version First macOS release GUI CLI (Prebuilt) CLI (Build from Source) Note 6723.x.xmacOS 11 Big Sur ❌ ❌ ⚠️ 7429.x.x/7459.x.xmacOS 12 Monterey ❌ ⚠️ ✅ 8419.x.x/8422.x.xmacOS 13 Ventura ⚠️ ⚠️ ✅ 101xx.x.xmacOS 14 Sonoma ⚠️ ⚠️ ✅ 118xx.x.xmacOS 15 Sequoia ✅ ✅ ✅ 138xx.x.x/18xxx.x.xmacOS 26 Tahoe ✅ ✅ ✅ 20xxx.x.xmacOS 27 Golden Gate ✅ ✅ ✅ Firmware-managed limits; see README Other Unknown ❓ ❓ ❓ - ❌: Unsupported
- ✅: Supported
- ⚠️: Not verified, but expected to work.
- ❓: Unknown, please raise an issue if you have tested it.
Note
Firmware version is different from macOS version. Old macOS versions may have newer firmware, e.g. macOS 15 with firmware
138xx.x.x(macOS Tahoe version). - Basic macOS 27 firmware
-
v0.7.413 Jul 2026Release notes
Open source →What's Changed
Highlights
- Basic macOS 27 firmware
20xxxsupport. - Reduced binary size. From 7.4MB -> 2.9MB compressed.
Commits
- feat: macos 27 firmware support and capability checks in #142. Thanks @ashwinr64 for investigating SMC keys on macOS 27 #140 comment actuallymentor/battery#469, also @lilianmoraru for the initial PR.
- refactor: remove darwinkit and use native objc instead by @charlie0129 in 7e62b7f
Installation
GUI version
- Download
.dmgand open it (right-click open if macOS says it's damaged) - Drag
batt.apptoApplications - macOS may say it's damaged when you try to run it (it's NOT) and wants you to move it to trash. To fix it, run this in Terminal:
sudo xattr -r -d com.apple.quarantine /Applications/batt.app. - Run
batt.app. - Follow the MenuBar UI to install or upgrade.
- Disable macOS's optimized charging:
System Settings->Battery->Battery Health->i-> Trun OFFOptimized Battery Charging. Built-in charge limit also need to be disabled if you are on macOS 26.4 or later.
CLI version
Note
Command-Line version is already included if you have installed the GUI version.
Option 1: Installation Script (Recommended)
bash <(curl -fsSL https://github.com/charlie0129/batt/raw/master/hack/install.sh)Option 2: Homebrew
Homebrew installation is known to have issues due to breaking changes from Homebrew #141. Use GUI or installation script if you encounter problems.
brew install batt sudo brew services start batt # Do NOT forget sudo.Disable macOS's optimized charging:
System Settings->Battery->Battery Health->i-> Trun OFFOptimized Battery Charging. Built-in charge limit also need to be disabled if you are on macOS 26.4 or later.Upgrade
GUI version
Just follow the installation steps again. After you open the new version of batt.app, click
Upgrade Daemon...upgrade to the new daemon.CLI version
Please use the same method (Installation Script / Homebrew) as you installed to upgrade batt. Using both methods will cause conflicts. If you don't remember how you installed it, you can check the binary location by running
which batt. If it is in/usr/local/bin, you probably used the installation script. If it is in/opt/homebrew/bin, you probably used Homebrew.Option 1: Installation Script
bash <(curl -fsSL https://github.com/charlie0129/batt/raw/master/hack/install.sh) # Yes, the command is the same as installing.
Option 2: Homebrew
Homebrew installation is known to have issues due to breaking changes from Homebrew #141. Use GUI or installation script if you encounter problems.
brew update sudo brew services stop batt # Do NOT forget sudo. brew upgrade batt sudo brew services start batt # Do NOT forget sudo.
Compatibility Matrix
Check your firmware version by running
system_profiler SPHardwareDataType | grep -i firmwarein Terminal. Do NOT rely on macOS version.Firmware Version First macOS release GUI CLI (Prebuilt) CLI (Build from Source) Note 6723.x.xmacOS 11 Big Sur ❌ ❌ ⚠️ 7429.x.x/7459.x.xmacOS 12 Monterey ❌ ⚠️ ✅ 8419.x.x/8422.x.xmacOS 13 Ventura ⚠️ ⚠️ ✅ 101xx.x.xmacOS 14 Sonoma ⚠️ ⚠️ ✅ 118xx.x.xmacOS 15 Sequoia ✅ ✅ ✅ 138xx.x.x/18xxx.x.xmacOS 26 Tahoe ✅ ✅ ✅ 20xxx.x.xmacOS 27 Golden Gate ✅ ✅ ✅ Firmware-managed limits; see README Other Unknown ❓ ❓ ❓ - ❌: Unsupported
- ✅: Supported
- ⚠️: Not verified, but expected to work.
- ❓: Unknown, please raise an issue if you have tested it.
Note
Firmware version is different from macOS version. Old macOS versions may have newer firmware, e.g. macOS 15 with firmware
138xx.x.x(macOS Tahoe version). - Basic macOS 27 firmware
-
v0.7.302 Mar 2026Release notes
Open source →What's Changed
- fix: disable charging when batt execution is interrupted by macos by @charlie0129 in 569ec86 (fixes #123)
Installation
GUI version
- Download
.dmgand open it (right-click open if macOS says it's damaged) - Drag
batt.apptoApplications - macOS may say it's damaged when you try to run it (it's NOT) and wants you to move it to trash. To fix it, run this in Terminal:
sudo xattr -r -d com.apple.quarantine /Applications/batt.app. - Run
batt.app. - Follow the MenuBar UI to install or upgrade.
- Disable macOS's optimized charging:
System Settings->Battery->Battery Health->i-> Trun OFFOptimized Battery Charging. Built-in charge limit also need to be disabled if you are on macOS 26.4 or later.
CLI version
Note
Command-Line version is already included if you have installed the GUI version.
Option 1: Installation Script (Recommended)
bash <(curl -fsSL https://github.com/charlie0129/batt/raw/master/hack/install.sh)Option 2: Homebrew (If you prefer Homebrew)
Homebrew installation is known to have issues due to breaking changes from Homebrew. #141
brew install batt sudo brew services start batt # Do NOT forget sudo.Disable macOS's optimized charging:
System Settings->Battery->Battery Health->i-> Trun OFFOptimized Battery Charging. Built-in charge limit also need to be disabled if you are on macOS 26.4 or later.Upgrade
GUI version
Just follow the installation steps again. After you open the new version of batt.app, click
Upgrade Daemon...upgrade to the new daemon.CLI version
Please use the same method (Installation Script / Homebrew) as you installed to upgrade batt. Using both methods will cause conflicts. If you don't remember how you installed it, you can check the binary location by running
which batt. If it is in/usr/local/bin, you probably used the installation script. If it is in/opt/homebrew/bin, you probably used Homebrew.Option 1: Installation Script
bash <(curl -fsSL https://github.com/charlie0129/batt/raw/master/hack/install.sh) # Yes, the command is the same as installing.
Option 2: Homebrew
Homebrew installation is known to have issues due to breaking changes from Homebrew. #141
brew update sudo brew services stop batt # Do NOT forget sudo. brew upgrade batt sudo brew services start batt # Do NOT forget sudo.
Compatibility Matrix
Firmware Version GUI CLI (Prebuilt) CLI (Build from Source) Note 6723.x.x❌ ❌ ⚠️ 7429.x.x/7459.x.x❌ ⚠️ ✅ 8419.x.x/8422.x.x⚠️ ⚠️ ✅ 10151.x.x⚠️ ⚠️ ✅ 11881.x.x✅ ✅ ✅ 13822.x.x✅ ✅ ✅ 18000.x.x✅ ✅ ✅ 20xxx.x.x❌ ❌ ❌ Wait for future versions of batt Other ❓ ❓ ❓ - ❌: Unsupported
- ✅: Supported
- ⚠️: Not verified, but expected to work.
- ❓: Unknown, please raise an issue if you have tested it.
Note
Firmware version is different from macOS version. You can check your firmware version by running
system_profiler SPHardwareDataType | grep -i firmwarein Terminal. -
v0.7.3-0.20260223135525-98fdbcaf0f1123 Feb 2026 pre-releaseNothing published for this version
-
v0.7.223 Feb 2026Release notes
Open source →What's Changed
TL;DR: The output of
batt statusis more machine-readable. This release is useful for scripting. Regular users can skip this release.- fix: direct CLI output to stdout instead of stderr by @clarabennettdev in #121
- feat: add
--jsonflag tobatt statusfor machine-readable output by @jpesce in #122
Installation
GUI version
- Download
.dmgand open it (right-click open if macOS says it's damaged) - Drag
batt.apptoApplications - macOS may say it's damaged when you try to run it (it's NOT) and wants you to move it to trash. To fix it, run this in Terminal:
sudo xattr -r -d com.apple.quarantine /Applications/batt.app. - Run
batt.app. - Follow the MenuBar UI to install or upgrade.
- Disable macOS's optimized charging:
System Settings->Battery->Battery Health->i-> Trun OFFOptimized Battery Charging
CLI version
Note
Command-Line version is already included if you have installed the GUI version.
Option 1: Installation Script (Recommended)
bash <(curl -fsSL https://github.com/charlie0129/batt/raw/master/hack/install.sh)Option 2: Homebrew (If you prefer Homebrew)
brew install batt sudo brew services start batt # Do NOT forget sudo.Disable macOS's optimized charging:
System Settings->Battery->Battery Health->i-> Trun OFFOptimized Battery ChargingUpgrade
GUI version
Just follow the installation steps again. After you open the new version of batt.app, click
Upgrade Daemon...upgrade to the new daemon.CLI version
Please use the same method (Installation Script / Homebrew) as you installed to upgrade batt. Using both methods will cause conflicts. If you don't remember how you installed it, you can check the binary location by running
which batt. If it is in/usr/local/bin, you probably used the installation script. If it is in/opt/homebrew/bin, you probably used Homebrew.Option 1: Installation Script
bash <(curl -fsSL https://github.com/charlie0129/batt/raw/master/hack/install.sh) # Yes, the command is the same as installing.
Option 2: Homebrew
brew update sudo brew services stop batt # Do NOT forget sudo. brew upgrade batt sudo brew services start batt # Do NOT forget sudo.
Compatibility Matrix
Firmware Version GUI CLI (Prebuilt) CLI (Build from Source) 6723.x.x❌ ❌ ⚠️ 7429.x.x/7459.x.x❌ ⚠️ ✅ 8419.x.x/8422.x.x⚠️ ⚠️ ✅ 10151.x.x⚠️ ⚠️ ✅ 11881.x.x✅ ✅ ✅ 13822.x.x✅ ✅ ✅ Other ❓ ❓ ❓ - ❌: Unsupported
- ✅: Supported
- ⚠️: Not verified, but expected to work.
- ❓: Unknown, please raise an issue if you have tested it.
Note
Firmware version is different from macOS version. You can check your firmware version by running
system_profiler SPHardwareDataType | grep -i firmwarein Terminal. -
v0.7.112 Feb 2026Release notes
Open source →What's Changed
- fix: correctly reset MagSafe LED to system state when batt is disabled (limit=100%) by @charlie0129 in 1017302
- feat: disable calibration when limit is 100 by @charlie0129 in d0888e7
- feat: display different quit tooltip when daemon is not installed by @charlie0129 in dee6bd3
Installation
GUI version
- Download
.dmgand open it (right-click open if macOS says it's damaged) - Drag
batt.apptoApplications - macOS may say it's damaged when you try to run it (it's NOT) and wants you to move it to trash. To fix it, run this in Terminal:
sudo xattr -r -d com.apple.quarantine /Applications/batt.app. - Run
batt.app. - Follow the MenuBar UI to install or upgrade.
- Disable macOS's optimized charging:
System Settings->Battery->Battery Health->i-> Trun OFFOptimized Battery Charging
CLI version
Note
Command-Line version is already included if you have installed the GUI version.
Option 1: Installation Script (Recommended)
bash <(curl -fsSL https://github.com/charlie0129/batt/raw/master/hack/install.sh)Option 2: Homebrew (If you prefer Homebrew)
brew install batt sudo brew services start batt # Do NOT forget sudo.Disable macOS's optimized charging:
System Settings->Battery->Battery Health->i-> Trun OFFOptimized Battery ChargingUpgrade
GUI version
Just follow the installation steps again. After you open the new version of batt.app, click
Upgrade Daemon...upgrade to the new daemon.CLI version
Please use the same method (Installation Script / Homebrew) as you installed to upgrade batt. Using both methods will cause conflicts. If you don't remember how you installed it, you can check the binary location by running
which batt. If it is in/usr/local/bin, you probably used the installation script. If it is in/opt/homebrew/bin, you probably used Homebrew.Option 1: Installation Script
bash <(curl -fsSL https://github.com/charlie0129/batt/raw/master/hack/install.sh) # Yes, the command is the same as installing.
Option 2: Homebrew
brew update sudo brew services stop batt # Do NOT forget sudo. brew upgrade batt sudo brew services start batt # Do NOT forget sudo.
Compatibility Matrix
Firmware Version GUI CLI (Prebuilt) CLI (Build from Source) 6723.x.x❌ ❌ ⚠️ 7429.x.x/7459.x.x❌ ⚠️ ✅ 8419.x.x/8422.x.x⚠️ ⚠️ ✅ 10151.x.x⚠️ ⚠️ ✅ 11881.x.x✅ ✅ ✅ 13822.x.x✅ ✅ ✅ Other ❓ ❓ ❓ - ❌: Unsupported
- ✅: Supported
- ⚠️: Not verified, but expected to work.
- ❓: Unknown, please raise an issue if you have tested it.
Note
Firmware version is different from macOS version. You can check your firmware version by running
system_profiler SPHardwareDataType | grep -i firmwarein Terminal.Full Changelog: v0.7.0...v0.7.1
-
v0.7.1-0.20260112023343-f7c1385e54f712 Jan 2026 pre-releaseNothing published for this version
-
v0.7.012 Jan 2026Release notes
Open source →What's Changed
- fix: swap client and daemon version return value order (#99) by @g-a-c in 18c6eb2
- chore: add error when daemon is too old to report version by @charlie0129 in 2faefc8
- chore: make sure /usr/local/bin exists when installing by @charlie0129 in f7aef55
- feat: new batt schedule command for fully automatic calibration by @brookqin in 5e177d7
- fix: darwinkit cffi by @charlie0129 in 8ed6546
- feat: support setting calibration hold duration and discharge limit by @charlie0129 in 51a686c
Installation
GUI version
- Download
.dmgand open it (right-click open if macOS says it's damaged) - Drag
batt.apptoApplications - macOS may say it's damaged when you try to run it (it's NOT) and wants you to move it to trash. To fix it, run this in Terminal:
sudo xattr -r -d com.apple.quarantine /Applications/batt.app. - Run
batt.app. - Follow the MenuBar UI to install or upgrade.
- Disable macOS's optimized charging:
System Settings->Battery->Battery Health->i-> Trun OFFOptimized Battery Charging
CLI version
Note
Command-Line version is already included if you have installed the GUI version.
Option 1: Installation Script (Recommended)
bash <(curl -fsSL https://github.com/charlie0129/batt/raw/master/hack/install.sh)Option 2: Homebrew (If you prefer Homebrew)
brew install batt sudo brew services start batt # Do NOT forget sudo.Disable macOS's optimized charging:
System Settings->Battery->Battery Health->i-> Trun OFFOptimized Battery ChargingUpgrade
GUI version
Just follow the installation steps again. After you open the new version of batt.app, click
Upgrade Daemon...upgrade to the new daemon.CLI version
Please use the same method (Installation Script / Homebrew) as you installed to upgrade batt. Using both methods will cause conflicts. If you don't remember how you installed it, you can check the binary location by running
which batt. If it is in/usr/local/bin, you probably used the installation script. If it is in/opt/homebrew/bin, you probably used Homebrew.Option 1: Installation Script
bash <(curl -fsSL https://github.com/charlie0129/batt/raw/master/hack/install.sh) # Yes, the command is the same as installing.
Option 2: Homebrew
brew update sudo brew services stop batt # Do NOT forget sudo. brew upgrade batt sudo brew services start batt # Do NOT forget sudo.
Compatibility Matrix
Firmware Version GUI CLI (Prebuilt) CLI (Build from Source) 6723.x.x❌ ❌ ⚠️ 7429.x.x/7459.x.x❌ ⚠️ ✅ 8419.x.x/8422.x.x⚠️ ⚠️ ✅ 10151.x.x⚠️ ⚠️ ✅ 11881.x.x✅ ✅ ✅ 13822.x.x✅ ✅ ✅ Other ❓ ❓ ❓ - ❌: Unsupported
- ✅: Supported
- ⚠️: Not verified, but expected to work.
- ❓: Unknown, please raise an issue if you have tested it.
Note
Firmware version is different from macOS version. You can check your firmware version by running
system_profiler SPHardwareDataType | grep -i firmwarein Terminal.Full Changelog: v0.6.0...v0.7.0
-
v0.6.020 Nov 2025Release notes
Open source →What's Changed
Auto calibration is finally here! Thanks to the work by @brookqin. It will automatically complete a full charging cycle to help calibrate reported battery percentage. If you have suggestions or encounter problems, please open GitHub issues.
- chore: add app icon by in #82 by @invisiblepixel in #83
- feat: auto calibration workflow and SSE event by @brookqin in #90
- feat: add a warning about mismatched client and daemon versions by @charlie0129 in #93
- fix: make sure charging is enabled in charging phase during calibration by @charlie0129 in #97
Installation
GUI version
- Download
.dmgand open it (right-click open if macOS says it's damaged) - Drag
batt.apptoApplications - macOS may say it's damaged when you try to run it (it's NOT) and wants you to move it to trash. To fix it, run this in Terminal:
sudo xattr -r -d com.apple.quarantine /Applications/batt.app. - Run
batt.app. - Follow the MenuBar UI to install or upgrade.
- Disable macOS's optimized charging:
System Settings->Battery->Battery Health->i-> Trun OFFOptimized Battery Charging
CLI version
Note
Command-Line version is already included if you have installed the GUI version.
Option 1: Installation Script (Recommended)
bash <(curl -fsSL https://github.com/charlie0129/batt/raw/master/hack/install.sh)Option 2: Homebrew (If you prefer Homebrew)
brew install batt sudo brew services start batt # Do NOT forget sudo.Disable macOS's optimized charging:
System Settings->Battery->Battery Health->i-> Trun OFFOptimized Battery ChargingUpgrade
GUI version
Just follow the installation steps again. After you open the new version of batt.app, click
Upgrade Daemon...upgrade to the new daemon.CLI version
Please use the same method (Installation Script / Homebrew) as you installed to upgrade batt. Using both methods will cause conflicts. If you don't remember how you installed it, you can check the binary location by running
which batt. If it is in/usr/local/bin, you probably used the installation script. If it is in/opt/homebrew/bin, you probably used Homebrew.Option 1: Installation Script
bash <(curl -fsSL https://github.com/charlie0129/batt/raw/master/hack/install.sh) # Yes, the command is the same as installing.
Option 2: Homebrew
brew update sudo brew services stop batt # Do NOT forget sudo. brew upgrade batt sudo brew services start batt # Do NOT forget sudo.
Compatibility Matrix
Firmware Version GUI CLI (Prebuilt) CLI (Build from Source) 6723.x.x❌ ❌ ⚠️ 7429.x.x/7459.x.x❌ ⚠️ ✅ 8419.x.x/8422.x.x⚠️ ⚠️ ✅ 10151.x.x⚠️ ⚠️ ✅ 11881.x.x✅ ✅ ✅ 13822.x.x✅ ✅ ✅ Other ❓ ❓ ❓ - ❌: Unsupported
- ✅: Supported
- ⚠️: Not verified, but expected to work.
- ❓: Unknown, please raise an issue if you have tested it.
Note
Firmware version is different from macOS version. You can check your firmware version by running
system_profiler SPHardwareDataType | grep -i firmwarein Terminal.New Contributors
Full Changelog: v0.5.3...v0.6.0
-
v0.5.4-0.20251019081133-5ecb2748b00f19 Oct 2025 pre-releaseNothing published for this version
-
v0.5.310 Oct 2025Release notes
Open source →What's Changed
- feat: add
always-offoption to MagSafe LED control by @wanderingmeow in #70 - chore: fix incorrect power metrics on M4 Pro chips by @peterneutron in #78
Installation
GUI version
- Download
.dmgand open it (right-click open if macOS says it's damaged) - Drag
batt.apptoApplications - macOS may say it's damaged when you try to run it (it's NOT) and wants you to move it to trash. To fix it, run this in Terminal:
sudo xattr -r -d com.apple.quarantine /Applications/batt.app. - Run
batt.app. - Follow the MenuBar UI to install or upgrade.
- Disable macOS's optimized charging:
System Settings->Battery->Battery Health->i-> Trun OFFOptimized Battery Charging
CLI version
Note
Command-Line version is already included if you have installed the GUI version.
Option 1: Installation Script (Recommended)
bash <(curl -fsSL https://github.com/charlie0129/batt/raw/master/hack/install.sh)Option 2: Homebrew (If you prefer Homebrew)
brew install batt sudo brew services start batt # Do NOT forget sudo.Disable macOS's optimized charging:
System Settings->Battery->Battery Health->i-> Trun OFFOptimized Battery ChargingUpgrade
GUI version
Just follow the installation steps again. After you open the new version of batt.app, click
Upgrade Daemon...upgrade to the new daemon.CLI version
Please use the same method (Installation Script / Homebrew) as you installed to upgrade batt. Using both methods will cause conflicts. If you don't remember how you installed it, you can check the binary location by running
which batt. If it is in/usr/local/bin, you probably used the installation script. If it is in/opt/homebrew/bin, you probably used Homebrew.Option 1: Installation Script
bash <(curl -fsSL https://github.com/charlie0129/batt/raw/master/hack/install.sh) # Yes, the command is the same as installing.
Option 2: Homebrew
brew update sudo brew services stop batt # Do NOT forget sudo. brew upgrade batt sudo brew services start batt # Do NOT forget sudo.
Compatibility Matrix
Firmware Version GUI CLI (Prebuilt) CLI (Build from Source) 6723.x.x❌ ❌ ✅ 7429.x.x/7459.x.x❌ ✅ ✅ 8419.x.x/8422.x.x✅ ✅ ✅ 10151.x.x✅ ✅ ✅ 11881.x.x✅ ✅ ✅ 13822+✅ ✅ ✅ - ❌: Unsupported
- ✅: Supported
Note
Firmware version is different from macOS version. You can check your firmware version by running
system_profiler SPHardwareDataType | grep -i Firmwarein Terminal.New Contributors
- @wanderingmeow made their first contribution in #70
Full Changelog: v0.5.2...v0.5.3
- feat: add
-
v0.5.205 Sep 2025Release notes
Open source →What's Changed
- fix: reintroduce Power Flow via ObjC observer + selector NSTimer by @peterneutron in #66
Installation
GUI version
- Download
.dmgand open it (right-click open if macOS says it's damaged) - Drag
batt.apptoApplications - macOS may say it's damaged when you try to run it (it's NOT) and wants you to move it to trash. To fix it, run this in Terminal:
sudo xattr -r -d com.apple.quarantine /Applications/batt.app. - Run
batt.app. - Follow the MenuBar UI to install or upgrade.
- Disable macOS's optimized charging:
System Settings->Battery->Battery Health->i-> Trun OFFOptimized Battery Charging
CLI version
Note
Command-Line version is already included if you have installed the GUI version.
Option 1: Installation Script (Recommended)
bash <(curl -fsSL https://github.com/charlie0129/batt/raw/master/hack/install.sh)Option 2: Homebrew (If you prefer Homebrew)
brew install batt sudo brew services start batt # Do NOT forget sudo.Disable macOS's optimized charging:
System Settings->Battery->Battery Health->i-> Trun OFFOptimized Battery ChargingUpgrade
GUI version
Just follow the installation steps again. After you open the new version of batt.app, click
Upgrade Daemon...upgrade to the new daemon.CLI version
Please use the same method (Installation Script / Homebrew) as you installed to upgrade batt. Using both methods will cause conflicts. If you don't remember how you installed it, you can check the binary location by running
which batt. If it is in/usr/local/bin, you probably used the installation script. If it is in/opt/homebrew/bin, you probably used Homebrew.Option 1: Installation Script
bash <(curl -fsSL https://github.com/charlie0129/batt/raw/master/hack/install.sh) # Yes, the command is the same as installing.
Option 2: Homebrew
brew update sudo brew services stop batt # Do NOT forget sudo. brew upgrade batt sudo brew services start batt # Do NOT forget sudo.
Compatibility Matrix
Firmware Version GUI CLI (Prebuilt) CLI (Build from Source) 6723.x.x❌ ❌ ✅ 7429.x.x/7459.x.x❌ ✅ ✅ 8419.x.x/8422.x.x✅ ✅ ✅ 10151.x.x✅ ✅ ✅ 11881.x.x✅ ✅ ✅ 13822+✅ ✅ ✅ - ❌: Unsupported
- ✅: Supported
Note
Firmware version is different from macOS version. You can check your firmware version by running
system_profiler SPHardwareDataType | grep -i Firmwarein Terminal.Full Changelog: v0.5.1...v0.5.2
-
v0.5.2-0.20250901085348-910655bcc53c01 Sep 2025 pre-releaseNothing published for this version
-
v0.5.101 Sep 2025Nothing published for this version
-
v0.5.021 Aug 2025Nothing published for this version
-
v0.4.2-0.20250715033007-ca55ecb8eead15 Jul 2025 pre-releaseNothing published for this version
-
v0.4.2-0.20250714090853-ac5a2838752a14 Jul 2025 pre-releaseNothing published for this version
-
v0.4.114 Jul 2025Nothing published for this version
-
v0.4.010 Jul 2025Nothing published for this version
-
v0.4.0-alpha.1.0.20250703092302-f07c582ac4ce03 Jul 2025 pre-releaseNothing published for this version
-
v0.4.0-alpha.1.0.20250703070239-9e8838ee212103 Jul 2025 pre-releaseNothing published for this version
-
v0.4.0-alpha.124 Jun 2025 pre-releaseNothing published for this version
-
v0.3.8-0.20250428054312-fa629712d9ae28 Apr 2025 pre-releaseNothing published for this version
-
v0.3.702 Mar 2025Nothing published for this version
-
v0.3.618 Feb 2025Nothing published for this version
-
v0.3.517 Feb 2025Nothing published for this version
-
v0.3.5-beta.1.0.20250206073005-f9d889e2e1c806 Feb 2025 pre-releaseNothing published for this version
-
v0.3.5-beta.106 Feb 2025 pre-releaseNothing published for this version
-
v0.3.421 Jan 2025Nothing published for this version
-
v0.3.312 Nov 2024Nothing published for this version
-
v0.3.3-0.20241112064541-18ce7dfbb65712 Nov 2024 pre-releaseNothing published for this version
-
v0.3.209 Oct 2024Nothing published for this version
-
v0.3.2-0.20241009013041-ee66300b0e1909 Oct 2024 pre-releaseNothing published for this version
-
v0.3.2-0.20241008111945-f95136fd1dd108 Oct 2024 pre-releaseNothing published for this version
-
v0.3.108 Oct 2024Nothing published for this version
-
v0.3.1-0.20241004072026-0dc59ebca58304 Oct 2024 pre-releaseNothing published for this version
-
v0.3.018 Sep 2024Nothing published for this version
-
v0.2.126 Nov 2023Nothing published for this version
-
v0.2.1-0.20231126034236-90df4aaefb9326 Nov 2023 pre-releaseNothing published for this version
-
v0.2.1-0.20230928131010-f2e130db725428 Sep 2023 pre-releaseNothing published for this version
-
v0.2.026 Sep 2023Nothing published for this version
-
v0.1.1-0.20230703045028-2a124d780f3703 Jul 2023 pre-releaseNothing published for this version
-
v0.1.005 May 2023Nothing published for this version
-
v0.1.0-beta.4.0.20230501081209-a9801c1db89a01 May 2023 pre-releaseNothing published for this version
-
v0.1.0-beta.418 Apr 2023 pre-releaseNothing published for this version
-
v0.1.0-beta.3.0.20230418114306-6a6fd98e30c918 Apr 2023 pre-releaseNothing published for this version
-
v0.1.0-beta.307 Apr 2023 pre-releaseNothing published for this version
-
v0.1.0-beta.2.0.20230407134404-36841230faca07 Apr 2023 pre-releaseNothing published for this version
-
v0.1.0-beta.205 Apr 2023 pre-releaseNothing published for this version
-
v0.1.0-beta.1.0.20230405123213-b8d11be4b66d05 Apr 2023 pre-releaseNothing published for this version
-
v0.1.0-beta.104 Apr 2023 pre-releaseNothing published for this version
-
v0.1.0-alpha.1.0.20230404100312-da9c9056effa04 Apr 2023 pre-releaseNothing published for this version
-
v0.1.0-alpha.102 Apr 2023 pre-releaseNothing published for this version
-
v0.0.0-20250623025635-660e2491e62723 Jun 2025 pre-releaseNothing published for this version
-
v0.0.0-20230402114111-b42c3e9e956302 Apr 2023 pre-releaseNothing published for this version