Mac battery draining fast: diagnose and fix it from the terminal
Check battery health, hunt down CPU-hungry and sleep-blocking processes, and tune sleep settings to stop fast battery drain on macOS.
What this covers
Fast battery drain on a Mac usually comes from one of three places: an aging battery, a process burning CPU in the background, or something preventing the machine from sleeping. This guide walks through all three in order, using only built-in terminal tools, so you can pinpoint the cause and apply the right fix.
Symptom
Check battery health and cycle count first
Before blaming software, find out whether the battery itself is worn out. The cycle count tells you how much life the battery has used, and the condition line (Normal / Service Recommended) tells you whether macOS considers it degraded. A high cycle count or a 'Service Recommended' condition means fast drain is expected hardware aging, not a settings problem. If the condition is Normal, move on to software causes.
pmset -g batt shows charge state; system_profiler SPPowerDataType adds condition and cycle count.
$ pmset -g batt && system_profiler SPPowerDataType | grep -E "Cycle Count|Condition|Full Charge Capacity"Find processes burning CPU
A runaway process is the most common software cause of fast battery drain. Take a one-shot snapshot sorted by CPU and look at the top entries. A background app, browser tab, or stuck helper process sitting near 100% CPU will drain the battery even when the screen is idle. Note the process name — you can look up its full command line later with pgrep to decide what it belongs to.
Print a single top-style report sorted by CPU instead of watching a live updating screen.
$ top -l 1 -o cpuSee what is preventing sleep
Battery often drains while the Mac sits 'closed' or idle because something holds a power assertion that blocks sleep. List all active assertions: each entry names the app or service and why it keeps the machine awake (audio playback, screen sharing, a scheduled task, etc.). If an app you don't need is listed with 'Preventing sleep', that's your drain.
List every power assertion — the named reason an app, audio stream, or screen share blocks sleep.
$ pmset -g assertionsReview your sleep settings on battery
Aggressive settings — long display sleep timers, disabled standby, or 'Prevent sleep on battery' options — quietly shorten battery life. Read the current configuration, shown separately for battery and charger. Note the values for displaysleep, sleep, and standbydelay on the Battery section so you know what you're changing in the next step.
pmset -g custom prints the live sleep configuration separately for battery and charger.
$ pmset -g customTune how quickly the Mac hibernates
If the Mac spends hours in normal sleep instead of entering deep hibernation, standby power drains accumulate. Increase standbydelay so the machine transitions to hibernation sooner when left asleep, cutting overnight/weekend drain. This uses sudo and changes system power settings, so apply it deliberately — the original value (10800 seconds) can be restored with the undo command if behavior changes unexpectedly.
Adjust how long your Mac sleeps normally before hibernating, using pmset standbydelay.
$ sudo pmset -a standbydelay 86400▾ Undo
$ sudo pmset -a standbydelay 10800Watch overall power behavior over time
After fixing the culprit, confirm the machine behaves normally: CPU should idle low, and the battery discharge rate should drop. A live system monitor shows CPU, memory, and process activity in one screen, so leave it running for a few minutes — idle CPU near zero and no surprising top processes mean the fix worked.
Watch CPU, memory, disk, network and process widgets in one screen.
$ btmHow to confirm it worked
Idle CPU stays near zero, no unexpected process holds a power assertion, and the battery holds charge overnight after the sleep settings change.
Undo everything
Every command above can be reverted. Run these in order to undo all of it.
$ sudo pmset -a standbydelay 10800Review before running — some steps may not be independent.
Sources
- pmset — power management settings (macOS man page)Evidence: Documents -g batt, which prints charge percentage and power source.
- system_profiler — hardware reports (macOS man page)Evidence: SPPowerDataType exposes cycle count, condition, and full-charge capacity of the battery.
- top — display and update sorted information about processes (macOS)Evidence: The page documents -l for logging mode (one shot) and notes that -u is an alias equivalent to "-o cpu -O time", confirming -o cpu sorts by CPU usage.
- top(1) man pageEvidence: The synopsis shows -l <samples> ("Use logging mode and display <samples> samples") and -o <key> for the sort-order column, with cpu as a valid key.
- Power Management - Apple DeveloperEvidence: Apple's documentation of sleep states and power management on macOS, the mechanism pmset controls.
- bottom documentationEvidence: Official bottom docs covering widgets and flags.
- Homebrew formula: bottomEvidence: Installs bottom, which provides the btm binary.
Last verified: 2026-09-21
Related guides
Find the process overheating your Mac with one-shot CPU snapshots, live monitors and disk/network tracing, then fix the cause and verify the machine cools down.
Find out what is waking your Mac and stop it, using only built-in macOS power-management tools.
A terminal-first walkthrough to find what is holding your external disk open on macOS and eject it safely, from quitting apps to forcing an unmount.