display and alter power management settings

pmset -g [option]
pmset [-a | -b | -c | -u] [setting value] [...]
pmset -u [haltlevel percent] [haltafter minutes] [haltremain minutes]
pmset schedule [cancel | cancelall] type date+time [owner]
pmset repeat cancel
pmset repeat type weekdays time
pmset relative [wake | poweron] seconds
pmset [touch | sleepnow | displaysleepnow | boot]
manages power management settings such as idle sleep timing, wake on administrative access, automatic restart on power loss, etc.

processes may dynamically override power management settings by using I/O Kit power assertions. Whenever processes override any system power settings, pmset will list those processes and their power assertions in -g and -g assertions. See caffeinate(8).


Modify settings . specify one or more setting & value pairs on the command-line . The -a, -b, -c, -u flags determine whether the settings apply to battery ( -b ), charger (wall power) ( -c ), UPS ( -u ) or all ( -a ). Use a minutes argument of 0 to set the idle time to never for sleep disksleep and displaysleep Run as root in order to modify any settings. SETTINGS
displaysleepdisplay sleep timer; replaces 'dim' argument in 10.4 (value in minutes, or 0 to disable)
disksleepdisk spindown timer; replaces 'spindown' argument in 10.4 (value in minutes, or 0 to disable)
sleepsystem sleep timer (value in minutes, or 0 to disable)
wompwake on ethernet magic packet (value = 0/1). Same as "Wake for network access" in the Energy Saver preferences.
ringwake on modem ring (value = 0/1)
powernapenable/disable Power Nap on supported machines (value = 0/1)
autorestartautomatic restart on power loss (value = 0/1)
lidwakewake the machine when the laptop lid (or clamshell) is opened (value = 0/1)
acwakewake the machine when power source (AC/battery) is changed (value = 0/1)
lessbrightslightly turn down display brightness when switching to this power source (value = 0/1)
halfdimdisplay sleep will use an intermediate half-brightness state between full brightness and fully off (value = 0/1)
smsuse Sudden Motion Sensor to park disk heads on sudden changes in G force (value = 0/1)
hibernatemodechange hibernation mode. Please use caution. (value = integer)
hibernatefilechange hibernation image file location. Image may only be located on the root volume. Please use caution. (value = path)
ttyskeepawakeprevent idle system sleep when any tty (e.g. remote login session) is 'active'. A tty is 'inactive' only when its idle time exceeds the system sleep timer. (value = 0/1)
networkoversleepthis setting affects how OS X networking presents shared network services during system sleep. This setting is not used by all platforms; changing its value is unsupported.
destroyfvkeyonstandbyDestroy File Vault Key when going to standby mode. By default File vault keys are retained even when system goes to standby. If the keys are destroyed, user will be prompted to enter the password while coming out of standby mode.(value: 1- - Destroy, 0 - Retain)


-g settings currently in use.
pmset -g System-wide power settings:
Currently in use:
lidwake 1
autopoweroff 1
standbydelayhigh 86400
autopoweroffdelay 28800
standbydelaylow 10800
standby 1
proximitywake 0
ttyskeepawake 1
hibernatemode 3
gpuswitch 2
powernap 1
hibernatefile /var/vm/sleepimage
ls -l /var/vm/sleepimage -rw------T 1 root wheel 1073741824 Oct 23 01:30 /var/vm/sleepimage highstandbythreshold 50
displaysleep 28
sleep 1 (sleep prevented by sharingd)
acwake 0
halfdim 1
tcpkeepalive 1
disksleep 0
-g custom displays custom settings for all power sources.
-g cap displays which power management features the machine supports.
pmset -g cap
Capabilities for Battery Power:
-g sched displays scheduled startup/wake and shutdown/sleep events.
Scheduled power events:
[0] wake at 10/25/23 09:00:00 by '' User visible: true
[1] wake at 10/25/23 09:00:00 by '' User visible: true

[30] wake at 10/25/23 09:00:00 by '' User visible: true
[31] wake at 10/25/23 09:00:00 by '' User visible: true

[72] wake at 10/25/23 09:00:00 by '' User visible: true
[73] wake at 10/25/23 10:15:00 by '' User visible: true
-g ups displays UPS emergency thresholds.
-g ps / batt displays status of batteries and UPSs.
pmset -g ps
Now drawing from 'Battery Power'
-InternalBattery-0 (id=10420323) 46%; discharging; 4:32 remaining present: true

-g pslog displays an ongoing log of power source (battery and UPS) state.
outputs every minute.
pmset -g pslog
Logging IORegisterForSystemPower sleep/wake messages
pmset is in logging mode now. Hit ctrl-c to exit.
2020-10-23 11:17:52 -0400 IOPSNotificationCreateRunLoopSource
Now drawing from 'Battery Power'
-InternalBattery-0 (id=10420323) 45%; discharging; 4:22 remaining present: true
2020-10-23 11:18:34 -0400
2020-10-23 11:18:34 -0400
2020-10-23 11:18:34 -0400 IOPSNotificationCreateRunLoopSource
-InternalBattery-0 (id=10420323) 45%; discharging; 4:12 remaining present: true
++insert charger
2020-10-23 11:19:22 -0400
2020-10-23 11:19:22 -0400 IOPSNotificationCreateRunLoopSource
Now drawing from 'AC Power'
-InternalBattery-0 (id=10420323) 45%; AC attached; not charging present: true
2020-10-23 11:19:22 -0400
2020-10-23 11:19:22 -0400
2020-10-23 11:19:22 -0400
2020-10-23 11:19:22 -0400
2020-10-23 11:19:29 -0400
2020-10-23 11:19:29 -0400 IOPSNotificationCreateRunLoopSource
-InternalBattery-0 (id=10420323) 45%; charging; (no estimate) present: true
2020-10-23 11:19:29 -0400
2020-10-23 11:20:29 -0400
2020-10-23 11:20:29 -0400 IOPSNotificationCreateRunLoopSource
-InternalBattery-0 (id=10420323) 46%; charging; 1:59 remaining present: true
2020-10-23 11:20:29 -0400
2020-10-23 11:20:29 -0400
2020-10-23 11:21:29 -0400
2020-10-23 11:21:29 -0400 IOPSNotificationCreateRunLoopSource
-InternalBattery-0 (id=10420323) 47%; charging; 1:54 remaining present: true
2020-10-23 11:21:29 -0400
2020-10-23 11:21:29 -0400
++Remove charger
2020-10-23 11:25:10 -0400
2020-10-23 11:25:10 -0400 IOPSNotificationCreateRunLoopSource
-InternalBattery-0 (id=10420323) 47%; discharging; 3:21 remaining present: true
2020-10-23 11:25:10 -0400

2020-10-23 11:26:10 -0400
2020-10-23 11:26:10 -0400 IOPSNotificationCreateRunLoopSource
++Start heavy graphics application
-InternalBattery-0 (id=10420323) 46%; discharging; 3:11 remaining present: true
2020-10-23 11:26:10 -0400
2020-10-23 11:26:10 -0400

2020-10-23 12:05:58 -0400
2020-10-23 12:05:58 -0400
2020-10-23 12:05:58 -0400
2020-10-23 12:05:58 -0400 IOPSNotificationCreateRunLoopSource
-InternalBattery-0 (id=10420323) 79%; charging; 1:25 remaining present: true
-g rawlog displays an ongoing log of battery state as read directly from battery.
pmset -g rawlog
pmset is in RAW logging mode now. Hit ctrl-c to exit.
* Battery matched at registry = 7427
10/23/20 12:09:03
AC; Charging; 76%; Cap=4312: FCC=5627; Design=6559; Time=1:19; 1991mA; Cycles=993/1000; Location=0;
Polled boot=10/21/20 18:57:35; Full=10/23/20 12:08:58; User visible=10/23/20 12:07:58

-g assertions displays a summary of power assertions. Assertions may prevent system sleep or display sleep. Available
pmset -g assertions
2020-10-23 12:10:58 -0400
Assertion status system-wide:
BackgroundTask 0
ApplePushServiceTask 0
UserIsActive 1
PreventUserIdleDisplaySleep 0
PreventSystemSleep 0
ExternalMedia 0
PreventUserIdleSystemSleep 1
NetworkClientActive 0
Listed by owning process:
pid 206(hidd): [0x000124ba000998c8] 00:00:00 UserIsActive named: " serviceID:10000623b name:AppleHIDKeyboardEve product:Apple Internal Keyb eventType:3"
Timeout will fire in 10800 secs Action=TimeoutActionRelease
pid 5962(UserEventAgent): [0x00015ec2000ba2d3] 00:33:43 BackgroundTask named: ""
Created for PID: 13555.
pid 400(mds_stores): [0x000166a9000ba346] 00:00:00 BackgroundTask named: ""
pid 6014(sharingd): [0x000165470001a323] 00:05:54 PreventUserIdleSystemSleep named: "Handoff"
Kernel Assertions: 0x100=MAGICWAKE
id=503 level=255 0x100=MAGICWAKE mod=10/23/20, 11:38 AM description=llw0 owner=IOSkywalkNetworkBSDClient
id=504 level=255 0x100=MAGICWAKE mod=10/23/20, 11:37 AM description=en0 owner=en0
Idle sleep preventers: IODisplayWrangler

-g assertionslog shows a log of assertion creations and releases.
-g sysload displays the "system load advisory" - a summary of system activity available from the IOGetSystemLoadAdvisory
pmset -g sysload
2020-10-23 12:12:22 -0400
combined level = OK
- user level = OK
- battery level = Great
- thermal level = Great

-g sysloadlog displays an ongoing log of lives changes to the system load advisory.
-g ac / adapter will display details about an attached AC power adapter.
-g log displays a history of sleeps, wakes, and other power management events. This log is for admin & debugging puroses.
-g uuid displays the currently active sleep/wake UUID; correlate sleep/wake activity within one sleep cycle. history
-g uuidlog displays the currently active sleep/wake UUID, and prints a new UUID as they're set by the system.
-g history debugging . Prints a timeline of system sleeplwake UUIDs, when enabled with boot-arg io=0x3000000.
-g historydetailed Prints driver-level timings for a sleep/wake. Pass a UUID as an argument.
-g powerstate [class names] Prints the current power states for I/O Kit drivers. Caller may provide one or more I/O Kit class names (separated by spaces) as an argument.
if no classes are provided, it will print all drivers' power states.
-g powerstatelog [-i interval] [class names] Periodically prints the power state residency times for some drivers. Caller may provide one or more I/O Kit class names (separated by spaces). If no classes are provided, it will log the IOPower plane's root registry entry. Caller may specify a polling interval, in seconds with -i polling interval; otherwise it defaults to 5 seconds.
-g stats Prints number sleeps and wakes since boot.
pmset -g stats
Sleep Count:118
Dark Wake Count:109
User Wake Count:12

-g systemstate Prints the current power state of the system and available capabilites.

pmset -g systemstate
Current System Capabilities are: CPU Graphics Audio Network
Current Power State: 4

-g everything Prints output from every argument under the GETTING header. This is useful for quickly collecting all the output that pmset provides.


hibernatemode supports values of 0, 3, or 25. Whether or not a hibernation image gets written is also dependent on the values of standby and autopoweroff

For example, on desktops that support standby a hibernation image will be written after the specified standbydelay time. To disable hibernation images completely, ensure hibernatemode standby and autopoweroff are all set to 0.

hibernatemode = 0 default on desktops. not saving memory up to persistent storage, must wake from the contents of memory;
Loses context on power loss. This is sleep.
hibernatemode = 3 default on portables. stores memory to persistent storage (the disk), and powers memory during sleep.
Wakes from memory, unless a power loss forces it to restore from hibernate image.
hibernatemode = 25 is only settable via pmset. copy memory to persistent storage and removes memory power .
Restores from disk image.
"hibernation" - slower sleeps, slower wakes, and better battery life, hibernatefile file must be located on the root volume.


standby hibernate after it has slept for a specified time period. This setting defaults to ON for supported hardware. The setting standby will be visible in pmset -g if the feature is supported on this machine.
standbydelay specifies the delay, in seconds, before writing the hibernation image to disk and powering off memory for Standby.
autopoweroff is enabled by default on supported platforms as an implementation of Lot 6 to the European Energy-related Products Directive. After sleeping for seconds, the system will write a hibernation image and go into a lower power chipset sleep. Wakeups from this state will take longer than wakeups from regular sleep.
autopoweroffdelay the delay, in seconds, before entering autopoweroff mode.


UPS-specific arguments are only valid following the -u option. UPS settings also have an on/off value. Use a -1 argument instead of percent or minutes to turn any of these settings off. If multiple halt conditions are specified, the system will halt on the first condition that occurs in a low power situation.
haltlevel when draining UPS battery, battery level at which to trigger an emergency shutdown (value in %)
haltafter when draining UPS battery, trigger emergency shutdown after this long running on UPS power (value in minutes, or 0 to disable)
haltremain when draining UPS battery, trigger emergency shutdown when this much time remaining on UPS power is esti- mated (value in minutes, or 0 to disable) Note: None of these settings are observed on a system with support for an internal battery, such as a laptop. UPS emer- gency shutdown settings are for desktop and server only.


pmset allows you to schedule system sleep, shutdown, wakeup and/or power on. "schedule" is for setting up one-time power events, and "repeat" is for setting up daily/weekly power on and power off events. Note that you may only have one pair of repeating events scheduled - a "power on" event and a "power off" event. For sleep cycling applications, pmset can schedule a "relative" wakeup or poweron to occur in seconds from the end of system sleep/shutdown, but this event cannot be cancelled and is inherently imprecise. type - one of sleep, wake, poweron, shutdown, wakeorpoweron date/time - "MM/dd/yy HH:mm:ss" (in 24 hour format; must be in quotes) time - HH:mm:ss weekdays - a subset of MTWRFSU ("M" and "MTWRF" are valid strings) owner - a string describing the person or program who is scheduling this one-time power event (optional)


-g 'batt' or 'ps' will show the state of all attached power sources.
-g 'pslog' or 'rawlog' is normally used for debugging, such as isolating a problem with an aging battery.
boot tell the kernel that system boot is complete (normally LoginWindow does this). May be useful to Darwin users.
touch PM re-reads existing settings from disk.
noidle pmset prevents idle sleep by creating a PM assertion to prevent idle sleep(while running; hit ctrl-c to cancel). This argument is deprecated in favor of caffeinate(8). Please use caffeinate(8) instead.
sleepnow causes an immediate system sleep. restoredefaults. Restores Energy Saver settings to their default values. (Like clicking "Restore Defaults" in Energy Saver GUI).
displaysleepnow causes display to go to sleep immediately. resetdisplayambientparams. resets the ambient light parameters for certain displays.


Set displaysleep to a 5 minute timer on battery power,
pmset -b displaysleep 5
Set displaysleep to 10, disksleep to 10, system sleep to 30, and turns on WakeOnMagicPacket for ALL power sources (AC, Battery, and UPS) as appropriate
pmset -a displaysleep 10 disksleep 10 sleep 30 womp 1
Restore the system's energy settings to their default values. For a system with an attached and supported UPS, this instructs the system to perform an emergency shutdown when UPS battery drains to below 40%.
pmset -u haltlevel 40
For a system with an attached and supported UPS, this instructs the system to perform an emergency shutdown when UPS battery drains to below 25%, or when the UPS estimates it has less than 30 minutes remaining runtime. The system shuts down as soon as either of these conditions is met.
pmset -u haltlevel 25 haltremain 30
For a system with an attached and supported UPS, this instructs the system to perform an emergency shutdown after 2 min- utes of running on UPS battery power.
pmset -u haltafter 2
Schedules the system to automatically wake from sleep on July 4, 2016, at 8PM.
pmset schedule wake "07/04/16 20:00:00"
Schedules a repeating shutdown to occur each day, Tuesday through Saturday, at 11AM.
pmset repeat shutdown TWRFS 11:00:00
Schedules a repeating wake or power on event every tuesday at 12:00 noon, and a repeating sleep event every night at 8:00 PM.
pmset repeat wakeorpoweron T 12:00:00 sleep MTWRFSU 20:00:00
Prints the power management settings in use by the system.
pmset -g
Prints a snapshot of battery/power source state at the moment.
pmset -g batt
If your system suddenly sleeps on battery power with 20-50% of capacity remaining, leave this command running in a Terminal window. When you see the problem and later power and wake the computer, you'll be able to detect sudden discontinu- ities (like a jump from 30% to 0%) indicative of an aging battery. pmset -g pslog




All changes made through pmset are saved in a persistent preferences file (per-system, not per-user) at /Library/Preferences/SystemConfiguration/

Scheduled power on/off events are stored separately in /Library/Preferences/SystemConfiguration/ pmset modifies the same file that System Preferences Energy Saver modifies.