PSCaffeinate

1.1.0

PSCaffeinate prevents Windows from sleeping -- a drop-in equivalent of the macOS caffeinate command. Supports all major caffeinate flags (-d, -i, -s, -u), timeout (-t), wait-for-PID (-w), and running a subprocess, using the Win32 SetThreadExecutionState API. Exports Invoke-Caffeinate with the alias caffeinate.

Minimum PowerShell version

5.1

Installation Options

Copy and Paste the following command to install this package using PowerShellGet More Info

Install-Module -Name PSCaffeinate

Copy and Paste the following command to install this package using Microsoft.PowerShell.PSResourceGet More Info

Install-PSResource -Name PSCaffeinate

You can deploy this package directly to Azure Automation. Note that deploying packages with dependencies will deploy all the dependencies to Azure Automation. Learn More

Manually download the .nupkg file to your system's default download location. Note that the file won't be unpacked, and won't include any dependencies. Learn More

Owners

Copyright

(c) 2026 Ray Piller. MIT License.

Package Details

Author(s)

  • Ray Piller

Tags

caffeinate sleep power idle display Windows productivity SetThreadExecutionState

Functions

Invoke-Caffeinate caffeinate

PSEditions

Desktop Core

Dependencies

This module has no dependencies.

Release Notes

v1.1.0 - Fix: ES_USER_PRESENT is deprecated on modern Windows and caused SetThreadExecutionState to silently fail; -u now substitutes display + idle-sleep prevention. Fix: POSIX-style bundled flags (caffeinate -disu) now work via a wrapper function with hashtable splatting. Added return-value checking and periodic re-assertion of sleep prevention every 30s.

FileList

Version History

Version Downloads Last updated
1.1.0 (current version) 4 5/9/2026
1.0.0 4 5/9/2026