Repository navigation
Home
Outset automatically processes packages and scripts during the boot sequence, user logins, or on demand.
- macOS 10.15+
Outset is triggered by launchd so there is no interactive mode in production. For testing purposes, one may manually invoke the command(s), and progress will write to stdout:
sudo /usr/local/outset/outset --boot
/usr/local/outset/outset --login
Available options can be seen by invoking the built in help:
/usr/local/outset/outset --help
Items are processed from subdirectories of /usr/local/outset/. The directory determines when an item runs, in which context, and how often:
| Directory | Runs | Context | Frequency |
|---|---|---|---|
boot-once/ |
at boot | root | once (item is deleted after processing) |
boot-every/ |
at boot | root | every boot |
login-window/ |
at the login window | root | every time the login window appears |
login-once/ |
at user login | user | once per user |
login-every/ |
at user login | user | every login |
login-privileged-once/ |
at user login | root | once per user |
login-privileged-every/ |
at user login | root | every login |
on-demand/ |
when triggered | user | once (directory is emptied after processing) |
on-demand-privileged/ |
when triggered | root | once (directory is emptied after processing) |
See How Outset Works for full details of each run mode. Scripts can also be delivered as MDM payloads instead of files on disk, run in the background by prefixing the filename with _, and verified before execution with script signing.
From macOS 13 onwards, launchd items appear in System Settings as "Login Items" and users have the opportunity to enable or disable unless they are configured as managed by an MDM.
Managing multiple login items individually can be tedious and can appear messy and confusing to the user.
Outset is designed to make the life of a system administrator easier by providing a way to securely run login scripts, managed under a single login item.