The software titles to enable the Active Intervals feature for even when not included in the InstallOrUpdate or UpdateOnly preference keys. These software titles might be updated using the patch command line tool in scripted workflows external to the Patch Agent.
Defines a set of applications to install during a device's first-run experience. Configure CatalogIDs with the apps to install; optional inner keys control ordering, error handling, and re-install behavior. See Mac Onboarding for the full feature reference, common use cases, and the CLI counterpart.
Supported inner keys
CatalogIDs (array of catalog slugs) is the only required key. PreserveOrder (Bool, default true) sequences the installs in declared order while still downloading concurrently — useful for Setup Your Mac or Jamf Setup Manager workflows with dependency chains. HaltOnError (Bool, default false) stops the onboarding run when an install fails. SkipIfInstalled (Bool, default true) skips apps that are already installed. MaxDeviceAgeSeconds (Integer, unset by default) is an optional safety gate that skips Onboarding on devices older than the configured threshold; useful when deploying fleet-wide profiles that you don't want firing on existing devices.
Triggering Mac Onboarding
Mac Onboarding fires automatically at agent startup. You can also trigger it manually with sudo patch onboard install — useful for testing or for invoking onboarding from Self Service workflows. Companion patch onboard list and patch onboard reset subcommands let you inspect configured onboarding apps and reset onboarding state for re-runs.
The Patch Agent runs every 4 hours by default. You can adjust this interval time for your environment.
info
This key is configured in seconds. The minimum setting is 600 seconds (10 minutes) and there is currently no maximum.
<key>RunInterval</key> <integer>600</integer>
SkipFirstPatchAgentRun
When Alectrona Patch runs for the first time, it performs what is called a "Patch Agent Run" where it runs all configured installs/updates. You can skip the first Patch Agent Run by setting this key to true.
<key>SkipFirstPatchAgentRun</key> <true/>
StartupJitterMin
The minimum number of seconds the Patch Agent waits before its first scheduled Patch Run after agent startup. Combined with StartupJitterMax, this creates a random jitter window that spreads first-boot network requests across a fleet rather than firing all at once.
info
Default is 10 seconds. Pair with StartupJitterMax (default 60 seconds) to control the jitter window.
Tuning
These defaults are pragmatic starting points, not measured against any specific fleet. If your fleet's boot-time network initialization or MDM profile delivery typically takes more (or less) time, adjust both values accordingly.
<key>StartupJitterMin</key> <integer>10</integer>
StartupJitterMax
The maximum number of seconds the Patch Agent waits before its first scheduled Patch Run after agent startup. Combined with StartupJitterMin, this creates a random jitter window that spreads first-boot network requests across a fleet.
info
Default is 60 seconds. If set lower than StartupJitterMin, the agent uses StartupJitterMin as a fixed delay and logs a warning.
<key>StartupJitterMax</key> <integer>60</integer>
RunOnConstrainedNetworks
Set to false to pause automatic updates when connected to expensive networks like cellular, personal hotspots, or network interfaces in Low Data Mode.
<key>RunOnConstrainedNetworks</key> <false/>
ActiveIntervals
The Patch Agent will attempt to silently update any recently deferred app that exists in the InstallOrUpdate or UpdateOnly keys immediately after that app has been terminated by the user (even during an interval period). You can disable this behavior by setting to false.
<key>ActiveIntervals</key> <false/>
RemovePatchSymlink
Set to true to remove the symlink located at /usr/local/bin/patch. This will remove patch from the user's $PATH and allows for accessing the built-in BSD patch command without using its full path.
Don't Forget
When setting this key to true you will need to access the Patch CLT at its full path in Terminal or custom scripts.
<key>RemovePatchSymlink</key> <true/>
ReconAfterInstall
Set to true to perform a Jamf Pro inventory update after a software title is installed or updated using the Patch Agent.
<key>ReconAfterInstall</key> <true/>
DeferIfRunning
If an app is running when an update occurs, setting this key to true will suppress the Classic Update Dialog and automatically perform a deferral.
info
This setting only affects the Classic Update Dialog. It does not suppress Notification Center, popover, or banner notifications from the Patch Menu Bar app.
<key>DeferIfRunning</key> <true/>
RespectDND
Set to true to suppress Patch update notifications (Classic Update Dialog, popover, and banner deliveries) for users that have Do Not Disturb (DND) enabled. Has no effect on Notification Center deliveries — the system handles focus state there.
<key>RespectDND</key> <true/>
RespectMeetings
Set to true to suppress Patch update notifications (Classic Update Dialog, popover, and banner deliveries) for users that are likely in a Zoom, Webex Meetings, or Microsoft Teams meeting. Has no effect on Notification Center deliveries — the system handles focus state there.
<key>RespectMeetings</key> <true/>
UpdateMAS
Set to true to attempt to update and convert Mac App Store (MAS) apps to their non-MAS counterpart.
info
This feature only applies to apps you have configured Alectrona Patch to manage updates for using either the InstallOrUpdate or UpdateOnly keys. Additionally, it only affects Mac App Store apps that have a supported non-Mac App Store counterpart (there are relatively few of these).
<key>UpdateMAS</key> <true/>
Make It Easy
All of these preferences can be effortlessly configured with our Patch Desktop app.