Execute a script with GUI Access before login

PreLoginAgents

macOS supports the ability to run graphical applications pre-login:

Running Agents Before Login

Most software that displays a user interface does not run prior to the user logging in. However, in some rare cases, it may be necessary to create a graphical agent that does.

By default, OS X does not allow any application to draw content prior to login. If you need to do so, your agent must call the setCanBecomeVisibleWithoutLogin: method on its windows. For more information, see the documentation for that method and the PreLoginAgents sample code.

The trick is to add the following lines to your /Library/LaunchAgents launchd plist:

<key>LimitLoadToSessionType</key>
<string>LoginWindow</string>

The executable must be stored in /Library/PrivilegedHelperTools.

We used this ability to show a notification window pre-login for Power Manager pending events.

This functionality may not be supported in the latest macOS; we have not relied on it for a long while.