Skip to content

Installation

Gil Burns edited this page Jun 27, 2026 · 15 revisions

Installation

Third Party Patcher is distributed as a signed and notarized .pkg installer.


What the Installer Does

The package installs three command-line binaries and a LaunchDaemon:

File Destination
patcher /usr/local/bin/tpp/patcher
patcherscheduler /usr/local/bin/tpp/patcherscheduler
patcherreport /usr/local/bin/tpp/patcherreport
LaunchDaemon plist /Library/LaunchDaemons/com.gilburns.patcher.scheduler.plist

The postinstall script loads the LaunchDaemon immediately:

/bin/launchctl bootstrap system /Library/LaunchDaemons/com.gilburns.patcher.scheduler.plist

On upgrade, the preinstall script unloads the existing daemon first so binaries can be replaced safely.


Deploying via MDM

Deploy the Patcher PPPC:

  1. Upload the provided Available Software_PPPC.mobileconfig to your MDM or if using Intune, upload the Available_Software_Settings_Catalog_PPPC.json.
  2. Scope it to the machines you intend to install Patcher.
  3. Deploy your PPPC configuration profile before the package.

Deploy the Patcher configuration:

  1. Create and Deploy your Patcher configuration profile before the package (see Preference Keys). (Optional. Without this, it should operate with all the built in default settings.)

Deploy the Package: 3. Upload Third_Party_Patcher-<version>.pkg to your MDM as a managed package. 4. Scope it to the machines you want to patch. 5. Deploy your configuration profiles before the package (see Preference Keys).

The daemon starts automatically at install and runs every 10 minutes. Nothing else is required for basic operation.


Prerequisites

Requirement Notes
macOS 14 Sonoma or later
swiftDialog Required for user-facing prompts. Use patcher ensure in your workflow or deploy it separately.
Network access to GitHub For Installomator label updates and app downloads. Required unless you supply only Managed Labels.

Installing swiftDialog Automatically

patcher ensure checks whether swiftDialog is present and installs or updates it via Installomator if needed:

sudo /usr/local/bin/tpp/patcher ensure

This is safe to include in a postinstall script or as a separate MDM policy.


Directory Layout After First Run

After the scheduler runs its first scan, it creates the following layout under /Library/Application Support/Patcher/:

Patcher/
├── Cache/
├── Config/
│   └── config.json
├── Discovered/
│   └── <label>.plist        # one file per discovered app
├── Installomator/
│   ├── Labels/              # downloaded .sh label files
│   └── Version.txt
└── Managed/
    ├── Labels/              # your custom label files (optional)
    └── Version.txt

Finder window showing the Patcher Application Support layout


Uninstalling

# Stop and remove the daemon
sudo launchctl bootout system/com.gilburns.patcher.scheduler
sudo rm /Library/LaunchDaemons/com.gilburns.patcher.scheduler.plist

# Remove the binaries
sudo rm -rf /usr/local/bin/tpp
sudo rm -rf "/Applications/Available Software.app"

# Remove data (optional — removes history)
sudo rm -rf "/Library/Application Support/Patcher"
sudo rm -rf /Library/Logs/Patcher

Clone this wiki locally