Choose when your MagSafe charger's LED turns green.
Out of the box, macOS keeps the MagSafe LED amber until the battery hits 100%. MagHue is a tiny menu bar app that lets you pick the percentage instead. Set it to 80% and the LED turns green the moment your battery reaches 80% while charging, and back to amber if it ever drops below. Perfect if you use a charge limit and your Mac never reaches 100%.
- Apple Silicon MacBook with a MagSafe 3 port (2021 or later MacBook Pro / Air).
- macOS 14 Sonoma or later.
- Any charge cable with a MagSafe LED (the stock Apple ones).
Paste this into Terminal (⌘-Space, type "Terminal") and press Enter:
curl -fsSL https://raw.githubusercontent.com/kamenlevi/MagHue/main/scripts/install.sh | bashIt downloads the latest release, puts MagHue.app into /Applications and opens it. Nothing to build, no Xcode tools needed, and no macOS security dialog: command-line downloads skip the quarantine that browser downloads get.
Then click the MagHue icon in the menu bar, press Install Helper… and enter your admin password once. That's it.
Grab MagHue.zip from the latest release,
unzip it and drag MagHue.app into Applications. Because browsers quarantine
downloads and MagHue isn't notarized (that costs $99/year), the first launch
shows "Apple could not verify…". Click Done, open System Settings →
Privacy & Security, scroll down and press Open Anyway. It's a one-time
step.
xcode-select --install # only if you've never installed the CLT
git clone https://github.com/kamenlevi/MagHue.git
cd MagHue
make install # builds and copies MagHue.app to /Applications
open /Applications/MagHue.appIf the build fails, the script prints which step broke and the Swift version it used. Capture it and send the last 40 lines, which is the useful part. No need for the whole log:
make install > /tmp/maghue-build.log 2>&1
tail -40 /tmp/maghue-build.logOpen an issue with that output. It's usually a toolchain difference rather than anything about your Mac.
- Threshold slider: pick the battery percentage (10-100%) at which the LED turns green while on power; below it the LED shows the usual amber.
- Three LED modes: Custom (green at your chosen level, amber below it), Off (dark while plugged in), or System (stock macOS behavior). Each has a one-line explanation in the app.
- Charge to Full once: a one-shot button that lifts the macOS charge limit so the battery fills to 100% this time (handy before travel), then restores your limit automatically once it's full. Shown only on Macs whose firmware exposes the charge-limit keys.
- Automation: an Automation tab where you schedule the light to change at set times: pick the days, a start and end (a clock time, or sunset / sunrise), and what the light does in that window (Off, Green, Amber, System, or Custom). For example, keep the light off from sunset to sunrise every day. Sunrise/sunset are computed locally from your location, with no network access.
- Optional extras: a notification when the threshold is reached (off by default). Launch at login is on by default and can be turned off.
- Works even when the app is closed: a tiny background helper keeps the LED correct at all times.
Apple Silicon Macs expose an SMC key called ACLC that selects the MagSafe LED
color (0 system, 1 off, 3 green, 4 amber). Writing SMC keys requires
root, so MagHue installs a small launchd daemon
(com.kamenlevi.maghue.helper) that watches the battery and the config file
and writes that one key. The menu bar app is just the UI; the daemon does the
work, which is why the LED stays correct even when the app isn't running.
Charge to Full works through the firmware charge-limit keys (bfF0/bfD0/
bfE0), the same mechanism macOS's own Charge Limit uses. MagHue lifts the
limit, waits for 100%, then restores your exact previous setting. If your Mac's
firmware doesn't expose the full key set, the button simply doesn't appear and
MagHue never touches charging at all.
Yes. ACLC only changes what the LED indicates. It has no effect on
charging current, voltage, battery management, or anything else. It's the same
mechanism macOS itself uses to drive the LED, and value 0 hands control
straight back to the system. Open-source tools like
batt and
BatFi have written this key for years. The
helper resets the LED to system control whenever it shuts down or is
uninstalled.
SECURITY.md spells out what runs with which privileges, every SMC key the helper writes, and how to report a problem privately.
Click Uninstall Helper in the popover (asks for your password, removes the
daemon, and returns the LED to macOS), then delete /Applications/MagHue.app.
Manual removal, if you ever need it:
sudo launchctl bootout system/com.kamenlevi.maghue.helper
sudo /Library/PrivilegedHelperTools/com.kamenlevi.maghue.helper --reset
sudo rm /Library/PrivilegedHelperTools/com.kamenlevi.maghue.helper \
/Library/LaunchDaemons/com.kamenlevi.maghue.helper.plist
sudo rm -rf "/Library/Application Support/MagHue" /Library/Logs/MagHuemaghue-helper --probe(inContents/Resourcesof the app, or.build/debugafterswift build) prints whether your Mac exposes theACLCkey and what the current battery state is.- Helper logs:
/Library/Logs/MagHue/helper.logandlog show --predicate 'subsystem == "com.kamenlevi.maghue"' --last 1h.
make appbuildsdist/MagHue.app,make installcopies it to/Applications,make zippackages it.dist/MagHue.app/Contents/MacOS/MagHue --screenshot docsre-renders the README images above from the live interface. It draws into an offscreen bitmap (no screen-recording permission needed) and writes nothing to your settings or the helper's config file.
Peter Levi, author of Variety, took part in developing MagHue. The Donate button in the app goes to his PayPal for that reason.
MagHue: choose when your MagSafe charger's LED turns green. Copyright © 2026 Kamen Levi.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. See LICENSE.
In short: fork it, change it, ship it, but anything you distribute that's built on it has to stay under the GPL, with its source available. It can't be folded into a closed-source app.

